В статье «Восстанавливаем систему с помощью Bootsect», опубликованной в предыдущем номере, речь шла о том, как восстановить систему Windows 7/R2, которая перестала загружаться. В частности, были даны пояснения, касающиеся загрузочной записи Windows 7/R2 и приложения Bootmgr. .
Рабочий файл BCD обычно включает как минимум два объекта. Во-первых, это диспетчер загрузки, содержащий всю загрузочную информацию, в частности указание на то, какой элемент списка загрузки операционных систем следует использовать по умолчанию, и время ожидания выбора пользователя, если существует несколько элементов списка загрузки операционных систем. Во-вторых, файл содержит хотя бы один элемент загрузки операционных систем. Порядок создания этих объектов описан ниже.
Начнем с удаления всех существующих файлов BCD и создания нового пустого файла. По странному свойству Bcdedit, сперва надлежит создать новый файл BCD в каком-либо месте, а затем «импортировать» его, то есть скопировать все его содержимое в «официальный» файл BCD в папке \boot активного тома. Это можно сделать с помощью двух команд, вводимых в окне командной строки с повышенными привилегиями:
bcdedit/createstore bcd bcdedit/import bcd
Эти команды работают независимо от того, существует папка \boot\bcd в нужном месте либо в загрузочном томе вообще нет файлов BCD. После выполнения описанных выше действий вновь созданный файл BCD больше не нужен, и его можно удалить.
Теперь создадим диспетчер загрузки для файла BCD с помощью следующей команды:
bcdedit/create {bootmgr}
Отметим параметр/create в этом варианте команды вместо применявшегося ранее /create store. Этот параметр позволяет создавать различные виды объектов BCD. С использованием данного параметра в комбинации с идентификатором {bootmgr} создается диспетчер загрузки. Я опускаю описание использования команды с параметром /d, которое содержится в любом примере, который я смог найти в Интернете. При создании диспетчера загрузки эта информация не нужна.
Диспетчер загрузки не требует сложной настройки. Необходимо лишь указать загрузочный том и время ожидания выбора пользователем элемента списка загрузки операционных систем:
bcdedit/set {bootmgr} device boot bcdedit/timeout 30
Перейдем к созданию элемента списка загрузки операционных систем, который укажет диспетчеру загрузки выполнить загрузку Windows из файлов в папке \Windows одного из томов системы. Обычно таким томом является диск C, однако в случае загрузки из среды предустановки Windows (WinPE) необходимо проверить, на каком диске находится папка \Windows, поскольку в WinPE он может называться D или E.
Создадим элемент списка загрузки операционных систем:
bcdedit/create/d "Windows 7"/application osloader
Параметры /create (без идентификатора) и /application osloader указывают на то, что элемент списка загрузки операционных систем создается для Vista и более поздней версии Windows. Параметр /d содержит метку, которую диспетчер загрузки указывает, предлагая варианты элементов списка загрузки операционных систем. После выполнения команды система возвращает новый глобально уникальный идентификатор (GUID), который нужно вставить в следующую команду:
bcdedit/default {}
На данном этапе мы имеем «голый» объект, для которого нужно установить некоторые значения с помощью команды Bcdedit/set, рассматривавшейся в предыдущих выпусках, посвященных Bcdedit. Какие значения следует устанавливать? Ответ прост. Берем выходные данные Bcdedit, полученные для исправной копии Windows, и используем их как модель. В моем случае папка \Windows находится на диске D, поэтому я ввожу следующее:
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
Наконец, вводим следующую команду, чтобы система Windows «увидела» элемент списка загрузки операционных систем должным образом:
bcdedit/displayorder {default}/addlast
Попробуйте это проделать на тестовой системе, и вы очень быстро решите проблемы с загрузкой.
Марк Минаси (www.minasi.com/gethelp) — старший редактор журнала Windows IT Pro, сертифицированный системный инженер по продуктам Microsoft