Normales PC- BIOS versteht keine Partitionen. Es liest nur Sektor 0 (den MBR), führt den dort gefundenen ursprünglichen Bootcode aus (der vom Betriebssystem installiert werden muss), und dieser Bootcode selbst muss die Partitionstabelle parsen.
(Nicht alle MBR-Boot-Sektoren führen diese Aufgabe auf dieselbe Weise aus. Die von Windows oder Syslinux installierten Boot-Laufwerke suchen nur nach einer als "aktiv" gekennzeichneten Partition, während GRUB und LILO stattdessen an einer fest codierten Stelle nach einer Konfigurationsdatei suchen. Einige Boot-Sektoren verstehen nur MBR, andere können GPT lesen.)
Ein BIOS-Boot-Menü enthält also nur Festplatten, keine Partitionen. Das ausgefallene Boot-Menü, in dem Betriebssysteme aufgelistet sind, wird vom Bootloader des Betriebssystems (z. B. GRUB) und nicht vom BIOS angezeigt. Die Suche nach der Betriebssystem-Kernel-Partition und das Starten des Betriebssystems selbst erfolgt ebenfalls über diesen Bootloader, nicht über das BIOS.
Im Gegensatz zum BIOS versteht die UEFI- Firmware tatsächlich MBR- und GPT-Partitionstabellen. UEFI erkennt jedoch keine Linux- oder Windows-Partitionen und kann das Betriebssystem von dort nicht direkt starten.
Stattdessen sucht die UEFI-Firmware nur nach einer bestimmten "EFI-Systempartition", einer FAT32-Partition, die Bootloader-Programme enthält. Die Firmware enthält auch eine Liste der Betriebssysteme im NVRAM, und jedes installierte Betriebssystem fügt dort einen eigenen Eintrag hinzu, der auf seine eigene *.efi
Datei in der Systempartition verweist .
Beispielsweise fügt Windows immer einen Eintrag mit dem Titel "Windows Boot Manager" hinzu, der auf die Datei "\ EFI \ Microsoft \ Bootmfgw.efi" verweist, bei der es sich um den Windows-Bootloader handelt.
Das UEFI-Startmenü kann also verschiedene Arten von Starteinträgen enthalten:
- Manuell hinzugefügte Einträge im NVRAM - mit einer benutzerdefinierten Bezeichnung, die auf eine bestimmte Datei in der EFI-Systempartition verweist;
- Automatisch erkannte Festplatten mit einer
\EFI\Boot\BootX64.efi
Datei innerhalb der EFI-Systempartition - diese haben keine benutzerdefinierte Bezeichnung, nur "UEFI:", gefolgt vom Modell der Festplatte. - Wenn aktiviert - Festplatten mit einem BIOS-MBR (zum Starten im Kompatibilitätsmodus).
Wie Sie sehen, verwendet die UEFI-Firmware nur eine Partition (die EFI-Systempartition), der Rest (das Auffinden der Betriebssystem-Kernel-Partition) wird jedoch weiterhin vom eigenen Bootloader des Betriebssystems ausgeführt.
Selbst in UEFI werden grafische Boot-Menüs, mit denen Sie das Betriebssystem oder die Kernel-Version auswählen können, normalerweise auch vom Bootloader des Betriebssystems angezeigt - nicht von UEFI.
Der Linux-Bootloader weiß jedoch noch nicht genau etwas über die Root- Partition. Die Hauptaufgabe des Linux-Bootloaders besteht darin, das Kernel-Image (vmlinuz) und das initramfs-Archiv zu finden und dem Kernel Befehlszeilenoptionen zur Verfügung zu stellen, die den Namen der Root-Partition in der Linux-Syntax enthalten, z. B. root=/dev/sda2
oder root=UUID=XYZ-ABC
.
Schließlich, wenn der Linux - Kernel gestartet wird, wird es sich für eine Partition suchen, den Namen zur Verfügung gestellt passende und wird es montieren auf /
. (Dies kann entweder vom Kernel intern oder von den initramfs durchgeführt werden, wenn mehr Flexibilität gewünscht wird.)