Настройки параметров загрузки гипервизора при помощи программы 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

Comments (7)

  1. Alex A says:

    Ну, про NTDSUTIL это вы зря.

    Кривой она может казаться лишь при недостатке навыка работы с ней (а 99% администраторов она не нужна, как и bcdedit).

    Я правильно понял, что вы вставили второй жесткий диск, скопировали на него ОС, и хотите перенести bootbcd, а после сделать диск загрузочным?

    Есть множество программ для бэкапа BCD. Я дома эту процедуру делаю перед каждым добавлением очередного жесткого диска.

  2. Alex A says:

    Гм, насколько я понимаю, вы можете сначала создать бэкап копию BCD ключем /export, а потом объявить эту копию основной ключем /import.

    Скачайте BCD.docx с сайте, там все есть:

    Make a Non-system Store into the System Store

    Systems can have any number of BCD stores. However, there can be only one system store, and it controls the boot process. The /import command replaces the contents of the system store with the contents of a specified non-system store. To preserve the contents of the current system store, run the /export command to create a backup copy of the system store. To restore the original system store, import the backup copy.

    The following commands save a backup copy of the system store and import a non-system store into the system store. NewStoreName is the fully-qualified name of the file that contains the non-system store, and BackupStoreName is the fully-qualified name of the file that contains the backup store.

    bcdedit /export BackupStoreName

    bcdedit /import NewStoreName

  3. Alex A says:

    Ну, а возвращсясь к NTFSUtil – она должна быть консольной, черно-белой, ASCIIшной итд, чтобы можно было восстановить сервер потерминалу (через LPT порт, а не RDP).

    Сейчас, к счастью, начался процесс создания интерфейсов управления всем из командной строки.

    Если честно, то я жду к Windows Server CODENAME "Seven" замены NTDSUtil на версию на PowerShell. Но не думаю, что это реально многое меняет, – просто становится легче скриптовать конкретные задачи и читать текст.

  4. Fahrain says:

    Тому, кто придумал хранить информацию о загрузке в редактируемом только специальными утилитами файл – следует настучать по кумполу 🙂 Тому кто разрабатывал BCDEdit – оторвать руки. Кривее и неудобнее пожалуй только консольная утилита Ntdsutil для управления Active Directory.

    Сравнительно недавно встал вопрос перемещения бета-версии Windows Server 2008 на другой физический диск, т.к. на том диске где она была установлена начали появлять бэд-блоки. Процесс перемещения занял 3-4 часа, из них 2 часа я потратил на поиск способа внести информацию в Bootbcd, расположенный не на диске С:. Так вот – _это невозможно в принципе_. Т.е. совсем. Никак. К счастью – помогла утилита Startup Repair tool с загрузочного диска.

    P.S.: В случае WinXP процесс исправления информации с какого физического диска загружаться занял бы пару минут максимум.

  5. Fahrain says:

    >Я правильно понял, что вы вставили второй жесткий диск, скопировали на него ОС, и хотите перенести bootbcd, а после сделать диск загрузочным?

    Собственно делалось все так:

    – были установлены Windows Server Backup Features

    – при их помощи сделан бекап диска C: (на работающей системе которую бекапили, удаленно через Remote Desktop! – за это 5+ разработчикам 🙂 )

    – полученный бекап был развернут на другой физический диск

    – после чего начались поиски "как бы заставить систему оттуда загрузиться?"

    ЕДИНСТВЕННЫЙ найденный мной способ было использование утилиты восстановления поврежденной загрузочной записи с загрузочного диска Vista. (Причем аналогичной утилиты на загрузочном диске Windows Server 2008 RC0 – не было. Ну да ладно – все-таки бета)

    Кстати система практически сразу запустилась с нового диска. Единственное, что надо было сделать – это поправить привязку физических дисков к буквам в разделе реестра HKLMSystemMountedDevices

    После чего система стабильно работала еще 3 месяца. Вот за бекап – разработчикам огромное спасибо, лучше я еще не видел. Но! Проблема переноса загрузчика заняла 80% времени по сравнению с остальными, что явно неправильно

    ————

    Что же касается NTDSUTIL… Не знаю как вас, но меня несколько смущает утилита в виндовс, написанная в классическом *nix стиле. Я уж не говорю о том, что команды состоящие из пары длиннющих слов которые надо вводить вручную несколько, хм… устарели?

    Кстати, альтернативой вполне мог быть интерфейс а-ля начала 90-х (помните quickBasic?)

  6. Fahrain says:

    Хорошо, попробуем зайти с другой стороны. Итак:

    1. Имеем восстановленный на новый жесткий диск сервер 2008 (или Висту – в данном случае это непринципиально). Диск новый, имеет размер разделов, отличный от исходных -> бекап был восстановлен пофайлово.

    2. Считаем что предыдущий диск умер (сгорел, например)

    Итак, первое что нам нужно сделать – это записать загрузчик на новый раздел. Лично я делал это через Vista BootManager v1.1, но это не принципиально, можно и стандартной командой обойтись.

    Второй шаг – это конфигурирование BCD для того, чтобы загрузчик смог загрузить наш сервер.

    Примечание: Чтобы жизнь совсем раем не казалась – считаем что поблизости других ОС типа Vista нет, за исключением "лежащего" сервера и загрузочного DVD с ним.

    Итак, если мы собираемся конфигурировать BCD вручную – мы сталкиваемся со следующими препятствиями:

    а) Необходимо указать утилите BCDEdit что мы собираемся редактировать (если я правильно понимаю) non-system store расположенную на жестком диске.

    б) нам необходим GUID диска. Как его получить?

    в) следуя инструкции отдать около 5 команд с ничего не говорящим большинству названиями параметров.

    Итого, в сухом остатке – _быстро_ это _вручную_ сделать вряд ли получится. А теперь вспомним boot.ini из WinXP, который смог бы поправить даже ребенок…

    ——————-

    Собственно, про что я уже который комментарий пытаюсь сказать: ОС Windows изначально рассчитана на конфигурирование с помощью GUI. Я не имею ничего против консольных утилит управление которыми идет с помощью параметров командной строки – это удобно для разных пакетных задач. Но! К этим консольным утилитам должен быть как минимум довесок в виде GUI которое позволяет сделать все то же самое мышкой. Сейчас же складывается нездоровая тенденция "возврата к корням" – чистая командная строка, куча специализированных утилит с параметрами, которые помнят только те, кто ими постоянно пользуется. Осталось сделать последний шаг – добавить в систему команду man и получим *nix глазами Microsoft…

  7. Fahrain says:

    >Ну, а возвращсясь к NTFSUtil – она должна быть консольной, черно-белой, ASCIIшной итд, чтобы можно было восстановить сервер потерминалу (через LPT порт, а не RDP).

    Что касается ntdsutil (да и bcdedit – тоже), то я еще раз повторяю, вспомните времена QuickBasic, Turbo Pascal 7.0: текстовый режим, эмуляция 3D при помощи символов псевдографики, кнопочки, чекбоксы, поля ввода – все на псевографике… Вот это как раз то, что нужно!

Skip to main content