Настройки параметров загрузки гипервизора при помощи программы BCDEdit

База данных конфигураций загрузки (BCD) содержит настройки, которые определяют — как запускаются ОС Windows Vista и Windows Server 2008. В предыдущих версиях ОС эти настройки указывались в файле текстовом Boot.ini на системном разделе (при использовании BIOS) или в энергонезависимой памяти (NVRAM, при использовании EFI). Сейчас параметры BCD хранятся в файле \Boot\bcd активного раздела (или на системном разделе EFI для систем с поддержкой EFI). Этот файл уже не отредактируешь в Блокноте — и даже те, кто подключат его (или его копию) как куст в реестр, навряд ли смогут уверенно вносить изменения напрямую. Настройка загрузчика Windows, который выполняется до операционной системы, производится утилитой командной строки BCDEdit.exe. Она служит для создания, удаления, редактирования и дополнения записей в хранилище BCD. Программа BCDEdit находится в папке %SysterRoot%\System32.

Почему было принято решение о переходе от Boot.ini к BCD?

Хранилище BCD было разработано в процессе усовершенствования механизма описания конфигурации загрузки. Разработка новых моделей микрокода (firmware) — таких, как EFI — привела к тому, что для абстрагирования от этого микрокода потребовался новый интерфейс. Он должен быть расширяемым и интероперабельным — то есть совместимым с системами производства третьих сторон. Эта новая разработка послужила основной для многих новых функций Windows Vista — например, средства восстановления при загрузке (Startup Repair tool).

Что можно сделать с помощью BCDEdit?

В настоящее время BCDEdit поддерживает следующие функции:

  • Создание хранилища BCD для последующей установки Windows Server 2008.
  • Добавление записей в существующее хранилище BCD.
  • Изменение существующих записей в хранилище BCD.
  • Удаление записей из хранилища BCD.
  • Экспорт записей из хранилища BCD.
  • Импорт записей в хранилище BCD.
  • Вывод текущих параметров.
  • Запрос записей определенного типа.
  • Применение глобальных изменений (ко всем записям).
  • Изменение времени ожидания по умолчанию.

Дополнительно почитать о возможностях BCDEdit можно в статье Vista TechCenter (оригинал) или более подробно в материалах Windows Hardware Developer Central (на английском языке).

При чем тут гипервизор?

С выходом beta-версии Hyper-V BCD, очевидно, должна была получить возможность хранить также и настройки гипервизора — т.к. он стартует еще до загрузки ядра ОС.

К сожалению, в настоящее время ни на официальном сайте Microsoft, ни где бы то ни было еще нет информации о том, какие именно появились изменения. Это необходимо исправить. :)

Итак, в BCD появился новый объект, называемый hypervisorsettings. Вы можете использовать его для включения режима отладки и настройки параметров запуска гипервизора. Данный объект наследуется объектом bootloadersettings, так что вы можете вносить изменения единожды для всех записей загрузчика в хранилище конфигураций. Однако, настраивать параметры запуска гипервизора можно и индивидуально для каждой записи загрузчика.

Привожу ключи программы BCDEdit, позволяющие модифицировать параметры запуска гипервизора:

bcdedit /set {ID} HYPERVISORLAUNCHTYPE { Type }
bcdedit /hypervisorsettings DebugType [debugport:Port] [baudrate:Baud][channel:Channel]
bcdedit /set {ID} HYPERVISORDEBUG {ON|OFF}
bcdedit /set {ID} HYPERVISORPATH { Path }
bcdedit /set {ID} HYPERVISORDEBUGTYPE {DebugType}
bcdedit /set {ID} HYPERVISORDEBUGPORT { Port }
bcdedit /set {ID} HYPERVISORBAUDRATE { Baud }
bcdedit /set {ID} HYPERVISORCHANNEL { Channel }

Настройки гипервизора в BCDEdit

Параметр

Значение

ID

Указывает GUID(ы) ОС. Допустимо значение {current} для указания текущей ОС.

Type

Настраивает тип запуска гипервизора. Тип может иметь значения AUTO или OFF. AUTO обозначает автоматическую загрузку гипервизора. OFF отключает запуск гипервизора, — например, на тот случай, если вам нужно пользоваться гибернацией (hibernate) или для тестирования.

Path

Путь к исполняему файлу гипервизора относительно каталога %SystemRoot%\system32. Например, HvTfix64.exe или perf\hvix64.exe.

Эта настройка работает также, как указание путей для Kernel или Hal.

DebugType

Настраивает тип отладчика. Отладчик может иметь значения SERIAL или 1394.

Port

Для отладчика в режиме SERIAL указывает используемый порт COM.

Baud

Для отладчика в режиме SERIAL указывает пропускную способность (baud rate) порта.

Channel

Для отладчика в режиме 1394 указывает канал IEEE1394 (FireWire), который будет использоваться для отладки.

Примеры

Следующие команды установят автоматический режим запуска гипервизора с отключенным режимом отладки:

bcdedit /set {current} hypervisorlaunchtype AUTO

bcdedit /set {current} hypervisordebug Off

Следующие команды установят автоматический режим запуска гипервизора с использованием глобальных параметров режима отладки (по умолчанию — COM1, 115200 baud):

bcdedit /set {current} hypervisorlaunchtype AUTO

bcdedit /set {current} hypervisordebug On

Следующие команды установят автоматический режим запуска гипервизора с использованием отладчика на 21 канале шины IEEE1394 (для конкретной записи загрузчика):

bcdedit /set {current} hypervisorlaunchtype AUTO

bcdedit /set {current} hypervisordebug On

bcdedit /set {current} hypervisorchannel 21

bcdedit /set {current} hypervisordebugtype 1394

Следующая команда отключит запуск гипервизора:

bcdedit /set {current} hypervisorlaunchtype OFF

Следующая команда установит запуск гипервизора из исполняемого файла %systemroot%\system32\hvIceCap.exe:

bcdedit /set {current} hypervisorpath hvIceCap.exe