Обнаружение UEFI (ESP)

712
Jordan Davis

Обнаруживает ли менеджер загрузки UEFI ESP внутри GPT на каждом устройстве хранения на основе переменных глобальной области видимости (конфигурации загрузки), хранящихся в NVRAM?


Чтение загрузки UEFI из Википедии:

В отличие от BIOS, UEFI не полагается на загрузочный сектор, вместо этого определяя менеджер загрузки как часть спецификации UEFI. Когда компьютер включен, менеджер загрузки проверяет конфигурацию загрузки и, основываясь на ее настройках, загружает и выполняет указанный загрузчик операционной системы или ядро ​​операционной системы. Конфигурация загрузки представляет собой набор переменных глобальной области видимости, хранящихся в NVRAM, включая переменные загрузки, которые указывают пути к загрузчикам операционной системы или ядрам, которые как класс компонентов приложений UEFI хранятся в виде файлов в доступном для прошивки системном разделе EFI. (ESP).

UEFI опирается на « менеджер загрузки », который проверяет конфигурацию (набор переменных глобальной области видимости, хранящихся в NVRAM), эта конфигурация включает в себя переменные загрузки, которые указывают пути к загрузчикам / ядрам ОС, которые являются компонентами «приложений UEFI» (которые хранятся как файлы в ESP - иначе GPT Partition (1) с использованием формата файлов FAT (12 | 16 | 32 )


Глядя на раздел Boot Manager спецификации UEFI :

План GPT:

enter image description here

GPT, содержащий ESP:

enter image description here

Цифры на странице 117,118 спецификации

3
[Смотрите это] (https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/) Moab 9 лет назад 0
В большинстве ESP записи менеджера загрузки, хранящиеся в NVRAM, определяют каждый отдельный раздел и имя файла в этом разделе. На практике микропрограммному обеспечению не важно, помечен ли раздел как системный раздел EFI (ESP). Микропрограмма также не сканирует ESP; он просто полагается на записи NVRAM, чтобы иметь соответствующие указатели. Некоторые сторонние инструменты, такие как rEFIt и my rEFInd (которые разветвляются из rEFIt), активно сканируют загрузчики, но их не волнует состояние ESP; они просто сканируют все читаемые файловые системы на наличие загрузчиков в общих местах. Rod Smith 9 лет назад 1
Хорошо, имеет смысл, и я определенно доверяю вашему мнению :) ... так что в основном глобальные переменные NVRAM (по крайней мере, те, которые идентифицируют разделы) очень похожи / такие же, как MBR "помеченные" активные разделы, не так ли? Jordan Davis 9 лет назад 0

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

0
maxschlepzig

Менеджеры загрузки UEFI считывают свою конфигурацию из переменных EFI (которые хранятся в NVRAM). В зависимости от настроенных записей и настроенного порядка начальной загрузки, он может очень хорошо искать ESP на каждом устройстве хранения.

Например, если у вас есть, скажем, 2 запоминающих устройства и для каждой общей записи, например

PciRoot(0x0)/Pci(0x5,0x0) # or PciRoot(0x0)/Pci(0x1,0x1)/Ata(1,0,0) 

и на них обоих ссылаются в порядке загрузки, тогда менеджер загрузки UEFI проверяет их обоих на наличие ESP .

Кроме того, спецификация UEFI не запрещает встроенному программному обеспечению автоматически добавлять некоторые общие записи при каждой загрузке для каждого вновь обнаруженного устройства хранения. Таким образом, в зависимости от вашей системы вы можете по умолчанию автоматически обнаруживать ESP на любом обнаруженном устройстве хранения.

Спецификация UEFI также позволяет встроенному программному обеспечению обнаруживать ESP, который не использует GUID системного раздела EFI ( C12A7328-F81F-11D2-BA4B-00A0C93EC93B). Вместо этого он может просто проверить GPT- раздел с файловой системой FAT и ожидаемым файлом EFI/BOOT(например, BOOTX64.EFIв 64-разрядной системе x86):

UEFI не накладывает ограничения на количество или расположение системных разделов, которые могут существовать в системе. Системные разделы обнаруживаются, когда это требуется микропрограммным обеспечением UEFI, путем проверки GUID раздела и проверки соответствия содержимого раздела файловой системе FAT, как определено в разделе 13.3.1.1. Кроме того, реализации UEFI могут разрешать использование соответствующих разделов FAT, которые не используют GUID ESP. Создатели разделов могут запретить проверке микропрограммного обеспечения UEFI и использованию определенного раздела, установив бит 1 атрибутов раздела (см. 5.3.3), который исключит раздел в качестве потенциального ESP.

(Версия спецификации UEFI 2.7 опечатки A, раздел 13.3.3 Количество и расположение системных разделов, стр. 516)

Например, прошивки Supermicro и Qemu UEFI делают это.