Данные и разделы конфигурации загрузки Windows

Данные и разделы конфигурации загрузки Windows

Начиная с Vista, Windows хранит меню загрузки в хранилище Boot Configuration Data (BCD). Я сегодня посмотрел на свое, и вот запись для единственного экземпляра Win7:

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {89491629-36d4-11df-938c-f89ebe5d401b}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {89491621-36d4-11df-938c-f89ebe5d401b}
nx                      OptIn

Пути ARC в boot.ini, похоже, исчезли - эта загрузочная запись имеет C:для идентификации диска, с которого загружается Win7. Но разве буквы дисков не являются произвольными в Windows? Как она узнает, какой физический диск и раздел соответствует C, не заглядывая сначала в реестр?

решение1

BCD на самом деле является кустом реестра, обычно монтируемым в реестре в ключе HKLM\BCD00000000. Вы можете использовать regedit для экспорта этого ключа в виде файла .reg и изучить фактические данные, которые хранит BCD. Формат данных device/osdevice недокументирован и довольно неясен, но вы найдете идентификатор диска, который встречается в таблице разделов, и линейный адрес сектора 1-го сектора рассматриваемого раздела среди этих данных. Буквы дисков Windows используются bcdedit для представления этих данных в предположительно более понятной форме.

решение2

Путь BCD физически не хранится как буква диска. Я возился с консолью восстановления; как только вы меняете букву диска загрузочного раздела и снова вызываете BCDEdit, буква диска волшебным образом меняется и в BCD. Вероятно, это что-то похожее на путь ARC, и BCDEdit абстрагирует это.

Связанный контент