Как диспетчер загрузки Windows обнаруживает BCD?

363
Sergei Tachenov

Я пытаюсь понять процесс загрузки Windows. Я дошел до менеджера загрузки EFI, загружающего менеджер загрузки Windows. Но затем он должен получить доступ к BCD, чтобы продолжить загрузку ОС или цепную загрузку следующего менеджера загрузки. Как именно он находит BCD?

Например, в моей системе есть два диска BCD на диске GPT: один в ESP, другой в разделе «Зарезервировано системой», который был клонирован со старого MBR-диска. Диспетчер загрузки смотрит на ESP просто потому, что диск GPT? Он смотрит в «текущую» папку (есть ли вообще такая вещь на данном этапе, если еще не загружена ОС)? Или это более сложный алгоритм?

Любопытный факт: если я удалю раздел «Зарезервировано системой», менеджер загрузки не запустится, жалуясь на отсутствие BCD. И все же, если я внесу некоторые изменения в оба BCD (например, установлю разные тайм-ауты), то будут использованы настройки BCD ESP, как и ожидалось.

1
@ Джохан, разве это не должен быть ответ вместо комментария? Sergei Tachenov 6 лет назад 0
Я изменил комментарий к ответу. Johan Myréen 6 лет назад 0
BCD с жесткого диска MBR не будет использоваться загрузкой Windows, если в UEFI установлен на жесткий диск GPT. Ramhound 6 лет назад 0
@ Ramhound, можно так подумать. Но моя система отказывается загружаться без этого активного раздела, жалуясь на отсутствие BCD. Я пытаюсь понять, почему, между прочим. Sergei Tachenov 6 лет назад 0
Таким образом, в этот момент отсутствует создание раздела и его создание. Тонны вопросов о том, как это сделать. Ramhound 6 лет назад 0
@Ramhound, воссоздание раздела не проблема, у меня есть полная резервная копия. Я сделал это прямо сейчас. Проблема в том, чтобы выяснить, * зачем * это вообще нужно. Sergei Tachenov 6 лет назад 0

1 ответ на вопрос

2
Johan Myréen

Диспетчер загрузки ищет BCD на ESP, потому что это единственный раздел, известный на этом этапе, и микропрограмма, вероятно, может только читать разделы FAT. Путь к BCD ( /EFI/Microsoft/Boot/BCD) на ESP, вероятно, жестко закодирован. UEFI был разработан с самого начала для поддержки сосуществования программного обеспечения от разных поставщиков и /EFI/Microsoftявляется «игровой площадкой» Microsoft для ESP.

Прошивка, да, но обязательно менеджер загрузки может читать NTFS. В противном случае он не сможет загрузить Windows. Более того, если я удаляю раздел System Reserved (NTFS), Boot Manager отказывается работать, жалуясь на отсутствие BCD. И все же, он, безусловно, использует ESP BCD. Цифры. Sergei Tachenov 6 лет назад 0
Вы правы в том, что менеджер загрузки может читать NTFS по указанной вами причине. Тем не менее, имеет смысл хранить BCD на ESP вместе с Boot Manager, поскольку BCD - это то, что направляет то, что Boot Manager должен делать дальше, потенциально на основе ввода от пользователя. Прошивка запускается (определяется переменными в энергонезависимой памяти) `bootx64.efi`, который запускает` bootmgr.efi`, который читает BCD и обычно загружает `winload.exe`, который находится на диске C :. Теоретически, `bootx64.efi` может быть загружен из NTFS, но тогда` bootx64.efi` должен знать, как читать NTFS. Johan Myréen 6 лет назад 0
Да, имеет смысл. Что не так, так это то, что моя система не загружается без загрузочного раздела NTFS (System Reserved). Sergei Tachenov 6 лет назад 0