Как восстановить файл BCD на MBR?

Как восстановить файл BCD на MBR?

07.06.2019 0 Автор GodKnowses

Windows не загружается, или как восстановить файл BCD на MBR в Windows?

Менеджер загрузки в современных ОС Windows для загрузки оной использует специальный файл BCD (Boot Configuration Data – он же файл данных конфигурации загрузки). В файле содержится информация об установленных системах и параметрах загрузки для каждой из них (если их несколько):

где находится bcd файл

Если BCD повреждён и информация в файле не читается, Windows не загрузится. На фоне этого сразу после включения компьютера пользователь, скорее всего, видит сообщение от менеджера загрузки примерно следующего содержания:

Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: \Boot\BCD
Error code: 0xc0000034

или

Windows failed to start. A recent hardware or software change might be the cause...

windows failed to start

Первое, что приходит на ум в этом случае, так это следовать инструкциям менеджера восстановления загрузки, полагаясь на его возможности. С этим он часто справляется сам (просто не все из нас умеют выжидать и умело этим инструментом пользоваться). Но, если вы столкнулись с повторяющейся проблемой

Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: \Boot\BCD

давайте попробуем воссоздать BCD файл вручную с нуля. Ещё раз повторюсь – эта схема применима на компьютерах с таблицей MBR. Для UEFI (GPT) написана другая статья. Здесь я показываю процесс для Windows 7, но для других, более новых версий вся информация также актуальна.

Как узнать тип таблицы загрузочной записи?

У Windows режим загрузки UEFI вместо Legacy? Вам в статью Как восстановить загрузчик EFI?

Что нам понадобится?

Пробуем восстановить BCD на MBR автоматически

  • из компьютера вынимаем все лишние флешки и удаляем прочие не принимающие в работе устройства с USB-интерфейсом
  • загружаемся с флешки/диска с Windows
  • через Shift + F10 выходим на командную консоль cmd

shift +f10 для выхода в cmd

  • попробуйте восстановить файл автоматически с помощью специально на то утилиты командой:
bootrec /RebuildBCD
  • перезагружайтесь в свою копию Windows…
wpeutil reboot

пересоздание BCD

  • и проверяйте, не прокатило ли. Если нет…

Пробуем восстановить BCD на MBR вручную

Снова используем загрузочную Windows, выходя на ту же консоль, в которой…

  • …проверяем список дисков и разделов командами:
diskpart
list volume

зарезервированный системой диск с

Синтаксис дальнейших команд зависит от того, на сколько разделов разбит ваш жёсткий диск и каким “макаром” устанавливалась система. Дело в том, что обычно ещё перед установкой любая копия Windows сразу просит пользователя отщипнуть кусок 100-700 Мб для создания резервного раздела (он же Зарезервированный, и он же помечен в Diskpart как диск С) на случай восстановления после повреждения системных файлов. При этом присваиваемые разделам буквы утилитой Diskpart отличаются от привычных в Проводнике Windows. Так что с буквами к томам на период работы с BCD лучше сразу привыкнуть и запомнить их. Если вы не профессионал и боитесь запутаться в разделах – запишите их и размеры томов.

  • покидаем Diskpart командой
exit
  • в освободившемся окне cmd создаём ссылки на загрузчик и загрузочный сектор:
bootrec.exe /fixmbr
bootsect.exe /nt60 all /force

ссылки на загрузчик и загрузочный сектор

  • убиваем повреждённый файл BCD за ненадобностью:
del c:\boot\bcd

где с – буква Зарезервированного раздела. Сразу создадим на том же диске пустой, временный файл bcd.temp:

bcdedit /createstore c:\boot\bcd.tmp

временный bcd файл

  • в нём для менеджера загрузки системы создадим точку входа bootmgr:
bcdedit.exe /store c:\boot\bcd.tmp /create {bootmgr} /d "Windows Boot Manager"

 

запись bootmgr

  • всё это дело из файла bcd.temp переносим в BCD:
bcdedit.exe /import c:\boot\bcd.tmp
  • закрепим загрузчик на диске С (пусть он так и останется настоящим, Зарезервированным разделом), откуда Windows загружалась ранее и будет продолжать загружаться:
bcdedit.exe /set {bootmgr} device partition=c:

закрепление загрузчика

  • пока мы тут, можно изменить время ожидания загрузки, выставив, скажем, 5 сек.:
bcdedit.exe /timeout 5
  • временный bcd.temp нам более не нужен; от него избавляемся:
del c:\boot\bcd.tmp
  • Таким образом, у вас появился новый файл с работоспособными параметрами загрузки. Время добавить строчки входа для всех версий Windows, которые были до того установлены. Если это одна Windows, то и следующую команду можно ввести в единственном экземпляре:
bcdedit.exe /create /d "Винда" /application osloader

точка входа по умолчанию

Если всё сделано правильно, утилита должна вернуть уникальный GUID идентификатор загрузчика на манер:

Запись {xxxxx-xxx-xxxxx-xxxx-xxxxxxx} была создана успешно.

  • Давайте прикажем загрузчику использовать этот вход в качестве системы по умолчанию (не промахнитесь в символах, чтобы не было ошибки Указана недопустимая запись по умолчанию):
bcdedit /default {xxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxx}
  • Это ещё не всё. Загрузчик на месте, но системные файлы-то остались на другом диске (специально созданные разделы, где вы хранили ТОЛЬКО пользовательские данные – не в счёт). Я так понимаю, это, скорее всего, диск D (у меня, впрочем, это диск Е). На него загрузчику нужно обязательно показать. С оглядкой на нужную букву вводим команды по порядку:
bcdedit.exe /set {default} device partition=e:
bcdedit.exe /set {default} osdevice partition=e:
bcdedit.exe /set {default} path \Windows\system32\winload.exe
bcdedit.exe /set {default} systemroot \Windows
  • Точка входа по умолчанию скрыта, так что давайте сделаем её видимой для наших глаз:
bcdedit.exe /displayorder {default} /addlast
  • перезагружаемся прямо из консоли:
wpeutil reboot

Вот и всё. Закрывайте консоль и грузитесь в свою копию Windows. Сразу позволю себе напомнить, что после успешной загрузки в Windows лучше задаться вопросом о причинах, вызвавших повреждение BCD.

Успехов.