UEFI-Erkennung (ESPs)

704
Jordan Davis

Erkennt der UEFI-Bootmanager die ESPs in den GPTs auf jedem Speichergerät, basierend auf den im NVRAM gespeicherten Variablen des globalen Bereichs (Boot-Konfiguration)?


Lesen Sie das UEFI-Booten von Wikipedia:

Im Gegensatz zum BIOS ist UEFI nicht auf einen Boot-Sektor angewiesen, sondern definiert stattdessen einen Boot-Manager als Teil der UEFI-Spezifikation. Wenn ein Computer eingeschaltet ist, überprüft der Boot-Manager die Boot-Konfiguration und lädt und führt den angegebenen Betriebssystem-Loader oder den Betriebssystem-Kernel basierend auf seinen Einstellungen aus. Die Startkonfiguration besteht aus mehreren im NVRAM gespeicherten Variablen mit globalem Gültigkeitsbereich, einschließlich der Startvariablen, die die Pfade zu Betriebssystemladern oder -kernen angeben, die als Komponentenklasse von UEFI-Anwendungen als Dateien auf der per Firmware zugreifbaren EFI-Systempartition gespeichert werden (ESP).

UEFI basiert auf einem " Boot-Manager ", der die Konfiguration überprüft (eine Gruppe von im NVRAM gespeicherten globalen Gültigkeitsbereichsvariablen). Diese Konfiguration enthält Boot-Variablen, die Pfade zu Betriebssystem-Loadern / Kernels angeben, die Komponenten von "UEFI-Anwendungen" sind (die gespeichert werden) als Dateien auf einer ESP - auch bekannt als GPT - Partition (1) mit FAT (12 | 16 | 32) Dateiformat )


Schauen Sie sich den Abschnitt Boot Manager der UEFI-Spezifikation an :

GPT-Layout:

enter image description here

GPT mit ESP:

enter image description here

Zahlen finden Sie auf Seite 117,118 der Spezifikation

3
[Siehe dies] (https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/) Moab vor 8 Jahren 0
In den meisten ESPs identifizieren die im NVRAM gespeicherten Boot-Manager-Einträge jeweils eine bestimmte Partition und einen Dateinamen einer Datei auf dieser Partition. In der Praxis kümmert sich die Firmware nicht wirklich darum, ob die Partition als EFI-Systempartition (ESP) gekennzeichnet ist. Die Firmware sucht auch nicht aktiv nach ESPs. es ist nur auf die NVRAM-Einträge angewiesen, um geeignete Zeiger zu haben. Einige Tools von Drittanbietern, wie rEFIt und mein rEFInd (das von rEFIt abgeleitet ist), suchen aktiv nach Bootloadern, aber sie interessieren sich nicht wirklich für den ESP-Status. Sie scannen lediglich alle lesbaren Dateisysteme an üblichen Stellen nach Bootloadern. Rod Smith vor 8 Jahren 1
Ok macht Sinn, und ich vertraue deiner Meinung auf jeden Fall :) ... also im Grunde sind die globalen NVRAM-Vars (zumindest die, die Partitionen identifizieren) sehr ähnlich / wie MBR "markierte" aktive Partitionen, oder? Jordan Davis vor 8 Jahren 0

1 Antwort auf die Frage

0
maxschlepzig

Der UEFI-Bootmanager liest seine Konfiguration aus EFI-Variablen (die im NVRAM gespeichert sind). Abhängig von den konfigurierten Einträgen und der konfigurierten Startreihenfolge kann es sehr gut möglich sein, auf jedem Speichergerät nach einem ESP zu suchen.

Zum Beispiel, wenn Sie - sagen wir - 2 Speichergeräte haben und für jeden einen generischen Eintrag mögen

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

und beide werden in der Startreihenfolge referenziert. Dann prüft der UEFI-Startmanager beide auf ESPs .

Außerdem verhindert die UEFI-Spezifikation nicht, dass die Firmware bei jedem Start automatisch einige generische Einträge für jedes neu erkannte Speichergerät hinzufügt. Abhängig von Ihrem System kann es daher sein, dass standardmäßig ein ESP auf einem erkannten Speichergerät automatisch erkannt wird.

Die UEFI-Spezifikation ermöglicht es der Firmware auch, ein ESP zu ermitteln, das die EFI-Systemparitions-GUID ( C12A7328-F81F-11D2-BA4B-00A0C93EC93B) nicht verwendet. Stattdessen wird nach einer GPT- Partition mit einem FAT-Dateisystem und der erwarteten Datei gesucht EFI/BOOT(z. B. BOOTX64.EFIauf einem x86-64-Bit-System):

UEFI legt keine Beschränkung für die Anzahl oder den Speicherort von Systempartitionen fest, die auf einem System vorhanden sein können. Systempartitionen werden bei Bedarf von der UEFI-Firmware ermittelt, indem die Partitions-GUID überprüft und sichergestellt wird, dass der Inhalt der Partition dem FAT-Dateisystem entspricht, wie in Abschnitt 13.3.1.1 definiert. Ferner können UEFI-Implementierungen die Verwendung von konformen FAT-Partitionen zulassen, die die ESP-GUID nicht verwenden. Partitionsersteller können die UEFI-Firmware daran hindern, eine bestimmte Partition zu prüfen und zu verwenden, indem Sie Bit 1 der Partitionsattribute setzen (siehe 5.3.3), wodurch die Partition als potenzieller ESP ausgeschlossen wird.

(UEFI-Spezifikation, Version 2.7, Errata A, Abschnitt 13.3.3, Anzahl und Ort der Systempartitionen, Seite 516)

Dies wird beispielsweise von der UEFI-Firmware Supermicro und Qemu ausgeführt .