2

Начиная с Vista, Windows хранит меню загрузки в хранилище данных конфигурации загрузки (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 не произвольны в Windows? Как он узнает, какой физический диск и раздел соответствует C, не глядя сначала на реестр?

2 ответа2

2

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .