Проблема при воссоздании 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, так как все файлы на диске выглядят нормально.


Вы пробовали команду "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


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:сделал свое дело!


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.


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.


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 и выбрать способ загрузки.


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


На шаге 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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.