Проблема при воссоздании BCD в Windows 7 64bit - не найдено требуемое системное устройство

66

При обновлении драйверов NVIDIA произошел сбой при установке Windows 7, поэтому я работаю над устранением ущерба.

Что я могу сделать: я могу загрузить установку Windows с USB-накопителя и загрузить загрузочный компакт-диск Hiren . Хотя автоматическое восстановление Windows не удается, я могу получить доступ к командной строке при загрузке установки Windows с USB-накопителя, и я вижу свой диск и все свои данные.

Что я не могу сделать: я не могу загрузиться в Windows - я получаю это сообщение:

Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:
1. Insert Windows CD and run a repair your computer option.
File: /Boot/BCD
Status: 0xc000000f
Info: an error occurred while attempting to read the boot configuration data.

Кажется, что-то не так с моим / Boot / BCD, поэтому я пытаюсь воссоздать его с нуля. Я перепробовал все методы, описанные здесь (включая восстановление Windows, которое не удалось ), и у меня остался последний (в нижней части этой страницы). Когда я набираю следующую команду, как в учебнике:

bcdedit.exe /import c:\boot\bcd.temp

... происходит сбой со следующей ошибкой:

The store import operation has failed.
The requested system device cannot be found.

Многие результаты Google говорят, что я должен использовать diskpart, чтобы активировать свой раздел, однако он уже установлен как активный.

Кроме того, когда я пытаюсь это:

bcdedit /enum

Сбой с похожим сообщением:

The boot configuration data store could not be opened.
The requested system device cannot be found.

Кто-нибудь знает, что означает это сообщение об ошибке и какое запрошенное системное устройство?

Я бы хотел избежать переустановки Windows, так как все файлы на диске выглядят нормально.

Domchi
источник
Вы пробовали команду "bootrec / RebuildBcd"? (без кавычек)
Моав
4
Да, он позволяет мне выбрать установку Windows, но когда я это делаю, происходит сбой с «Запрошенное системное устройство не может быть найдено».
Домчи
Пожалуйста, введите просто bcdedit и опубликуйте ответ.
ThatGuyInIT
1
Windows 7 по умолчанию не сохраняет BCD или загрузочную информацию в разделе C: она хранит ее в разделе размером 100 МБ, и этот раздел должен быть активным, а не C:
ThatGuyInIT
2
Шон, я получаю то же сообщение об ошибке при вводе bcdedit, что и при вводе bcdedit / enum, см. Выше.
Домчи

Ответы:

55

Не имеет непосредственного отношения к вашей проблеме, как вы ее решили, а скорее к исходному описанию (в частности, «Запрашиваемое системное устройство не может быть найдено» в операциях BCD, несмотря на все попытки воссоздать / восстановить):

Эта ошибка может произойти, если вы загружаетесь с USB-накопителя, и ваш BIOS поддерживает данный USB-слот, а среда Windows PE / repair - нет!

Я потратил два дня, вырывая волосы, борясь с этой проблемой (хранилище BCD ВСЕГДА было недоступно с ошибкой «Запрашиваемое системное устройство не может быть найдено», независимо от того, что я сделал), только чтобы обнаружить, что проблема была просто Слот USB Я подключил свою загрузочную флешку. Подключив ее к другому (usb 2.0 вместо usb 3.0) слоту, стандартные действия по исправлению работали нормально.

Что еще хуже, я позже обнаружил, что это было связано с подключением не того слота и разрешением среды аварийного восстановления, чтобы попытаться авторемонтировать, что я сначала испортил!


Обновление: другой пользователь (улучшенные компьютеры) связался со мной, чтобы подтвердить, что это также случилось с ними; поскольку все их USB-слоты не были распознаны Windows 7 PE, им пришлось извлечь диск и выполнить ремонт на другом компьютере.


Обновление: мне было трудно даже переустановить Windows на моем ноутбуке. Из этого поста я узнал и понял, что Windows 7 PE не распознает USB-накопитель. Хотя он загрузился с образа USB-накопителя по какой-то причине, он не смог запустить процесс установки. После целого дня усилий, наконец, я попробовал это с DVD, и это сработало. Я использую Lenovo W520

Tao
источник
2
Потратив всего 3 часа на отладку этого сообщения об ошибке, я не могу вас отблагодарить. Серьезно, спасибо! Я никогда бы не подумал, что использование слота USB3 могло бы стать причиной этого.
Корбин
4
+1 Ого, вот и здесь! Просто спас мне жизнь после передела плохого передела.
mellamokb
Я очень рад, что у меня 2 накопителя usb2.0. Сначала я был раздражен ими (предпочитая все usb3), но теперь я понимаю, насколько они полезны. Мне было интересно, почему моя мышь не работает во время восстановления. Это должно было предупредить меня, что он по какой-то причине не распознает порты 3.0.
сахарин
Спасибо! это просто исправило мою неудачную попытку использовать bootrec для исправления клонированного диска. Поп Win7 восстановить USB-флешку в другом слоте, и вы готовы пойти LOL
Майкл Нильсен
6
Потрясающая находка. К сожалению, это не было решением в моем случае. Эта ошибка также может быть вызвана попыткой восстановить установку Windows UEFI с USB-накопителя, который был загружен в режиме без UEFI. Смотрите мой ответ: superuser.com/a/959489/178217
Ян-Филипп Герке
50

Ничто из других ответов не помогло в моем случае, и у меня не было возможности загрузить Windows RE с DVD. Надеюсь, этот ответ попал мне в глаза.

Я попробовал решения из связанных руководств и закончил без BCD вообще (фактически я не знаю, было ли это там в начале). Итак, то, что спасло меня от переустановки всей системы, было:

bcdboot.exe C:\Windows /s C:

Надеюсь, это кому-нибудь поможет.


Обновление: это, наконец, сработало для меня с одной маленькой модификацией. Моя проблема была объединенной проблемой многих из перечисленных здесь (загрузка с флешки, прикручивание начальной рабочей BOOT).

Моя проблема состояла в том, что RE зарегистрировал мой диск Windows как D:\, в то время как это было C:\нормально. Бег bcdboot.exe D:\Windows /s C:сделал свое дело!

IMY
источник
3
Больше ничего не работало, но это помогло!
bourbaki4481472
3
Ты мой герой.
Эрвин
О боже, это было так просто. Ничего из того, что не взломал BCD вручную!
Bigbio2002
Вот и все. Если вы загружаетесь с USB-накопителя, то вы должны использовать этот метод, используя диск D: для обновления хранилища (-й) в D :.
razor7
bcdboot.exe D: \ Windows / s C: работал для меня, так как в то время как в строке восстановления cmd он видел мой диск, у меня были все мои вещи как D:
user1821961
19

Итак, вот как я наконец решил это.

Воссоздание BCD, как в главе учебника «ядерный холокост», о котором я упоминал в своем вопросе, в конце концов сработало, но с одной небольшой модификацией. Я получил идею в этой теме . Кажется, что сообщение, которое я получил, сообщало мне, что bcdedit не может найти магазин BCD. Итак, вместо того, чтобы вводить это:

bcdedit /import c:\boot\bcd.temp

... мне нужно было только вручную указать магазин:

bcdedit /store c:\Boot\BCD /import c:\boot\bcd.temp

Это также необходимо для остальных команд в руководстве:

bcdedit /store c:\Boot\BCD <the rest of the command>

С этой модификацией все команды в учебнике работают как положено. Когда я воссоздал BCD, я смог загрузить свою оригинальную Windows.

Domchi
источник
9
Это очень странно, так как bcdedit /? storeговорит, что This option may not be used with the /createstore, /import, or /export commands. попытка использовать его в любом случае приводит к тому, The store import command is invalid. что она работает для вас.
Дэйв
Та же ошибка здесь ... У кого-нибудь есть подсказка?
PLPeeters
2
Дейв прав в своем утверждении, что /storeфлаг не может быть использован с /importфлагом - просто столкнись с этим сам. Решение состоит в том, чтобы не создавать временное хранилище и импортировать, а просто создавать и работать с реальным хранилищем, используя /storeфлаг для всех команд. Я только что пробежал по этому пути, чтобы исправить мою систему, и она работает. Я отредактировал ответ выше, чтобы исправить это.
Натан Браун
так где же редактирование?
Джордж Бирбилис
@NathanBrown: можете ли вы объяснить, что вы имеете в виду? Еще лучше добавить полный ответ? Какие команды вы использовали, чтобы исправить это?
Ади Шавит
14

Та же проблема возникает, когда установка Windows на диске настроена для загрузки UEFI, но процесс восстановления предпринимается с помощью команд, сохраненных на USB-накопителе, который был загружен в режиме без UEFI («устаревший»).

Итак, представьте, что у вас есть загрузочный установочный USB-диск Windows 8, который не может быть загружен в режиме UEFI, но только в устаревшем режиме. Можно подумать, что можно просто изменить настройки BIOS с загрузки UEFI на устаревшую загрузку. И, фактически, после этого изменения USB-накопитель можно загрузить, и, конечно, можно получить доступ к командной строке Windows. Однако в этой ситуации нельзя «восстановить» установку Windows на диске, который ранее был установлен и использовался в режиме UEFI.

В этом сценарии (режим загрузки «legacy» и загрузка с установочного USB-диска Windows 8) выполнение bootrec /rebuildbcdзавершается с ошибкой The requested system device cannot be found. И BCDBoot C:\Windowsтерпит неудачу сFailure when attempting to copy boot files.

Решение

  1. создать надлежащий UEFI-загрузочный USB-накопитель (например, с Rufus, как описано здесь ), а затем
  2. переключить BIOS из «унаследованного» режима загрузки обратно в режим загрузки UEFI, а затем
  3. загрузка с USB-накопителя

Процесс ремонта, начатый оттуда, был успешным в моем случае: BCDBoot C:\Windowsзатем успешно сBoot files successfully created.

Первоначальной проблемой было «Код ошибки: 0xc0000034 - в файле данных конфигурации загрузки отсутствует необходимая информация» в Windows 8, как обсуждалось здесь .

Ян-Филипп Герке
источник
Принудительный режим UEFI в BIOS позволил мне успешно продолжить (и закончить!) Сброс / перераспределение разделов с ранее созданного диска восстановления из Windows 8.
mlt
благодарю вас! Я провел все выходные, пытаясь починить мою систему без переустановки Windows. Этот ответ окончательно решил это для меня. Мне пришлось создать соответствующий устаревший загрузочный USB-накопитель BIOS, потому что мои окна были установлены с использованием устаревшего BIOS (а не UEFI, как я впервые поверил). Установка Windows и режим загрузки с USB-накопителя должны совпадать. в противном случае , bootrec /rebuildbcdи bcdeditкоманды будут терпеть неудачу.
Буджу
2

У меня была другая причина и решение этой проблемы. В моем случае проблема заключалась в том, что я использовал Windows 7 Enterprise ISO для создания загрузочной USB-флешки с Unetbootin, следуя инструкциям здесь: http://www.webupd8.org/2010/10/create-bootable-windows-7 -usb-drive.html . В основном в инструкциях говорится, что нужно отформатировать USB-накопитель с помощью ntfs и использовать Unetbootin v494 (устаревший), у которого все еще была функция, позволяющая использовать накопители, отформатированные с помощью ntfs (эта возможность исчезла в более поздних версиях).

Что-то легкомысленное в затылке подсказало мне, что нестандартная процедура вызовет головную боль, но я проигнорировал ее.

После часа поиска по форуму кто-то где-то упомянул: «Не используйте загрузочный USB-накопитель, поскольку среда восстановления увидит эту таблицу разделов, а не реальную на жестком диске», или что-то в этом роде.

Найдено мой USB привод CD-ROM, поставить реальный диск там, и побежал bootrec /fixmbr, bootrec /fixbootи bootrec /rebuildbcdбез каких - либо проблем. Затем Windows запустилась нормально, как из grub, так и после выбора дополнительного жесткого диска из списка загрузки BIOS.

Johann
источник
2
The requested system device cannot be found.

У меня было то же сообщение об ошибке, когда я пытался восстановить Windows после преобразования моего жесткого диска из MBR в GPT. Когда я попробовал автоматическое восстановление, Windows даже сообщила, что установленная версия не была совместимой версией Windows. Я обнаружил, что в BIOS MSI есть два варианта загрузки с DVD-ROM, которые выглядят примерно так:

SATA3:DVD Drive
UEFI:DVD Drive

Запуск UEFI начнется только тогда, когда я выберу его вручную. В противном случае он все равно будет загружаться с DVD-диска, но не в режиме UEFI. После того, как я выбрал UEFI, я мог как вручную, так и автоматически восстанавливать свою систему Windows 7.

Теперь я полностью отключил загрузку с CD / DVD, заставив меня использовать загрузочное меню BIOS и выбрать способ загрузки.

wimh
источник
1

В таких ситуациях я обнаружил, что EasyBCD действительно очень полезен. Я предлагаю вам сделать это и посмотреть, может ли это вас спасти.

Надеюсь, что это помогает чувак. Ура!

Джеймс Т Снелл
источник
Я бы хотел, но для запуска EasyBCD мне нужна загрузочная Windows 7. Которого у меня нет. Учебник по восстановлению BCD, с которым я работаю выше, и который я не могу выполнить, на самом деле взят с сайта EasyBCD. Можно ли запустить EasyBCD из консоли восстановления Windows или из Linux ...?
Домчи
Не удается установить его на Windows XP, которая поставляется с загрузочным компакт-диском Hiren, установка завершается неудачно, когда предполагается установить .NET, и автоматически отменяется. Но даже если я установил его, WinXP не видит диск NTFS с BCD ...
Domchi
В конце концов, мне удалось установить EasyBCD на другой компьютер и проверить его на BCD-файле, который я там скопировал. Но мне так и не удалось сделать что-нибудь полезное с этим ...
Домчи
1

Загрузите установочный диск Windows 7 x64 и запустите восстановление при запуске, но отмените его до того, как оно начнет пытаться восстановить, вы увидите ссылку для расширенных параметров, которая позволит вам получить доступ к командной строке, вам нужно будет создать раздел размером 100 МБ. активен, если вы сделали раздел ОС активным по ошибке.

  1. Вставьте установочный диск Windows 7 x64 в дисковод и запустите компьютер.
  2. Нажмите клавишу, когда вам будет предложено.
  3. Выберите язык, время, валюту, клавиатуру или способ ввода и нажмите кнопку Далее.
  4. Нажмите Восстановить ваш компьютер.
  5. Выберите операционную систему, которую вы хотите восстановить, и нажмите кнопку Далее.
  6. В диалоговом окне «Параметры восстановления системы» нажмите «Командная строка».

    diskpart выберите диск 0 выберите часть 1 активна

Перезагрузитесь и загрузитесь обратно на установочный диск Windows 7 x64.

bcdedit /export C:\BCD_Backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.old
bootrec /RebuildBcd

http://support.microsoft.com/kb/927392

ThatGuyInIT
источник
На шаге 5. У меня нет операционных систем в списке. У меня нет раздела 100 МБ, никогда не было, и мой раздел уже активен, как я сказал в своем вопросе. Я перепробовал все те подсказки, которые вы упомянули в КБ, но bootrec / RebuildBcd выдает ошибку: «Запрошенное системное устройство не может быть найдено».
Домчи
Похоже, плохой жесткий диск или поврежденная файловая система. Запустите chkdsk / r. Вы также можете протестировать жесткий диск с помощью живого диска Linux, такого как PartedMagic partedmagic.com , который имеет инструмент GSmartControl для проверки жестких дисков на наличие ошибок и запуска тестов SMART. Он также содержит тестовый диск для вызова инструмента, который можно использовать для восстановления файловой системы cgsecurity.org/wiki/TestDisk
ThatGuyInIT
Жесткий диск и файловая система в порядке - я вижу все данные из среды PartedMagic Linux. Кроме того, TestDisk был тем, что я ранее использовал для исправления MBR. До того, как я использовал TestDisk, я даже не мог получить доступ к разделу. Моя проблема, безусловно, в неправильном файле BCD, и я действительно хотел бы знать, почему я не могу воссоздать его и что такое запрошенное системное устройство, которое он не может найти.
Домчи
Вы можете просто нажать [Shift] + [F10] на шаге 3, чтобы перейти к подсказке!
Пиксель Битворкс 13.12.16
0

В моем случае ни одно из вышеприведенных решений не помогло.

Перезагрузка виртуальной машины Windows Server 2016 в VMware Esxi 6.5 завершилась неудачно с сообщением «ОС не найдена». Я подозревал, что обновление было установлено во время выключения. Я не смог исправить это с помощью diskpart, bootrec, bcdedit и восстановления из резервной копии. Это также не имело ничего общего с режимом EFI (безопасная загрузка) или BIOS.

Решением было изменение Systemdrive (назад) на SCSI Device 0: 0.

Дополнительный диск, который я добавил за несколько недель до этого, имел SCSI Device 0: 0, а Systemdrive был 0: 1. Как это могло произойти, я не знаю, но я подозреваю, что ошибка в Vsphere Web-Client.

Тим Хэгеле
источник