Пересоздание файла хранилища данных конфигурации загрузки (BCD)

Материал из СисадминВики (SysadminWiki.ru)
Перейти к: навигация, поиск

Файл BCD (Boot Configuratin Data) - преемник boot.ini начиная с Windows Vista. Он содержит информацию о загрузчиках операционных систем (и их параметрах), доступных на компьютере и располагается на активном разделе в папке boot.

В случае его удаления или повреждения (неправильной настройки) ОС перестаёт загружаться. Повреждение может быть также если разбить RAID массив, на котором находилась ОС.


В работающей ОС параметры BCD файла можно редактировать так:

  • Пуск
  • Компьютер
  • Свойства (контекстное меню)
  • Дополнительные параметры системы (меню слева)
  • Дополнительно (вкладка)
  • Загрузка и восстановление (раздел)
  • Параметры (кнопка)


В не загружающейся ОС файл BCD придётся восстанавливать с помощью команд BCDboot[1] или BCDEdit[2]

Возможное сообщение о повреждении BCD может выглядеть так:

File: \Boot\BCD

Status: 0xc0000034

Info: The Windows Boot Configuration Data file is missing required information


  • Для восстановление или пересоздания BCD файла загружаемся с дистрибутива Windows, выбираем язык и открываем командную строку Shift+F10.
    • Если восстанавливаем BCD на RAID, то проходим дальше в процедуре установки ОС до момента, когда установщику можно будет передать драйвера RAID контроллера. Когда контроллер определён и RAID опознан появятся разделы.
    • Проверить доступность дисков и файлов на них можно запустив notepad.exe и использовать его как файловый менеджер через Файл - Открыть (Ctrl+O). Кстати, на этом этапе можно скопировать на флэшку важную информацию с повреждённого диска, используя для этого навигацию по папкам и комбинацию Ctrl+C и Ctrl+V.
  • Пробуем восстановить BCD файл автоматически:
bootrec /RebuildBCD
  • Если это не помогло, то создаём BCD файл заново с помощью BCDEdit[2]:
    • Создаём пустой файл,
    • добавляем (импортируем) его,
    • создаём запись для диспетчера загрузки bootmgr (приемник ntldr до Windows Vista),
    • указываем, что он будет отвечать за загрузку
    • указываем время ожидания при выборе ОС
    • создаём запись в списке доступных ОС
bcdedit /createstore bcd
bcdedit /import bcd
bcdedit /create {bootmgr}
bcdedit /set {bootmgr} device boot
bcdedit /timeout 10
bcdedit /create /d "Windows 2012" /application osloader
  • После выполнения последней команды программа вернёт глобальный уникальный идентификатор диска (GUID), который используем для определения записи по-умолчанию, т.е. та ОС, которая будет загружаться когда выйдет время ожидания загрузчика.
bcdedit /default {<GUID>}
  • Если мы не уверены на каком томе у нас находится ОС, то ищем папку Windows. Это можно делать перебирая диски:
C:
dir
D:
dir
E:
dir

или открыв Ноутпад (notepad.exe) как описано выше. Обычно системная папка называется Windows и находится она на томе (диске) D. В работающей ОС этот том имеет букву С, т.к. первый раздел, который сейчас определился как С, обычно скрыт, имеет метку "System Reserved" и не имеет буквы, чтобы не быть доступным для пользователя.


  • Определяем параметры созданной записи
bcdedit /set {default} device partition=d:
bcdedit /set {default} path\windows\system32\boot\winload.exe
bcdedit /set {default} osdevice partition=d:
bcdedit /set {default} systemroot \Windows
bcdedit /set {default} detecthal yes
  • Закрываем список ОС

bcdedit /displayorder {default} /addlast

  • На этом всё. Перезагружаем компьютер и загружаемся в штатном режиме.


Сноски


  1. BCDboot - параметры команды
  2. 2,0 2,1 BCDEdit - параметры команды


См. также