Firmware — UEFI & BIOS
Die Firmware ist das erste Programm, das beim Einschalten eines Rechners ausgeführt wird. Sie initialisiert Hardware (RAM-Test, CPU-Erkennung, Geräteerkennung) und startet dann ein EFI-Binary — meistens einen Bootloader, aber nicht zwingend.
UEFI — moderner Standard
Abschnitt betitelt „UEFI — moderner Standard“UEFI (Unified Extensible Firmware Interface) ist der aktuelle Standard und ersetzt seit ca. 2012 schrittweise das ältere BIOS.
Bootprozess unter UEFI
Abschnitt betitelt „Bootprozess unter UEFI“- UEFI initialisiert die Hardware
- UEFI sucht auf allen Datenträgern nach einer EFI System Partition (ESP) — eine
FAT32-Partition mit dem Typ-GUID
C12A7328-F81F-11D2-BA4B-00A0C93EC93B - In der ESP sucht UEFI nach
.efi-Dateien (Bootloader-Programme) - Welche Datei gestartet wird, bestimmen die NVRAM-Booteinträge (dauerhaft im Firmware-Speicher gespeichert)
- Fallback: Wenn kein NVRAM-Eintrag passt, wird
\EFI\BOOT\BOOTx64.EFIgeladen (wichtig für bootfähige USB-Sticks und neue Festplatten)
UEFI-Booteinträge verwalten
Abschnitt betitelt „UEFI-Booteinträge verwalten“efibootmgr -v # alle Booteinträge anzeigenefibootmgr -n 0001 # beim nächsten Start Eintrag 0001 bootenefibootmgr -o 0001,0000 # Bootreihenfolge festlegenUEFI ohne Bootloader — EFISTUB und UKI
Abschnitt betitelt „UEFI ohne Bootloader — EFISTUB und UKI“UEFI kann jeden gültigen EFI-Binary direkt starten — und Linux-Kernel sind seit
Version 3.3 selbst gültige EFI-Executables. Das Stichwort dazu: EFI stub
(CONFIG_EFI_STUB=y, in allen gängigen Distributionen aktiviert).
Damit entfällt GRUB als Zwischenschicht. Stattdessen gibt es drei Boot-Wege:
| Boot-Kette | Beschreibung |
|---|---|
| UEFI → GRUB → Kernel | klassisch, maximale Flexibilität |
| UEFI → systemd-boot → Kernel | schlanker EFI-Bootloader ohne eigene Konfigurationssprache |
| UEFI → Kernel (EFISTUB direkt) | kein Bootloader, Parameter per efibootmgr im NVRAM |
| UEFI → UKI | alles in einer einzigen .efi-Datei |
EFISTUB — Kernel direkt booten
Abschnitt betitelt „EFISTUB — Kernel direkt booten“Der Kernel liegt als .efi-Binary auf der ESP und wird von UEFI direkt geladen.
Kernel-Parameter und der Pfad zur initramfs werden als NVRAM-Eintrag hinterlegt:
sudo efibootmgr \ --create \ --disk /dev/sda --part 1 \ --label "Linux EFISTUB" \ --loader /vmlinuz-6.1.0-18-amd64 \ --unicode 'root=UUID=abc123 initrd=\initrd.img-6.1.0-18-amd64 quiet'UKI — Unified Kernel Image
Abschnitt betitelt „UKI — Unified Kernel Image“Ein UKI bündelt Kernel, initramfs und Kernel-Parameter in einer einzigen
signierten .efi-Datei. UEFI lädt die Datei direkt — kein Bootloader, keine
separaten Konfigurationsdateien.
Vorteile:
- Secure Boot vereinfacht: nur eine Datei muss signiert werden
- Manipulationssicher: cmdline ist Teil der signierten Datei
- Kein Bootloader-Konfigurationsfehler möglich
UKIs werden mit ukify (systemd-Tools) erstellt:
ukify build \ --linux /boot/vmlinuz-6.1.0 \ --initrd /boot/initrd.img-6.1.0 \ --cmdline "root=UUID=abc123 quiet" \ --output /boot/efi/EFI/Linux/linux-6.1.0.efiBIOS — älterer Standard
Abschnitt betitelt „BIOS — älterer Standard“Das ältere BIOS (Basic Input/Output System) nutzt einen anderen Mechanismus:
- BIOS initialisiert die Hardware
- BIOS liest den Master Boot Record (MBR) — die ersten 512 Bytes des Boot-Datenträgers
- Im MBR liegt der erste Teil des Bootloaders (Stage 1), der den Rest nachlädt
GPT mit BIOS
Abschnitt betitelt „GPT mit BIOS“Neuere GPT-Partitionstabellen benötigen auf BIOS-Systemen eine spezielle
BIOS Boot Partition (ca. 1 MB, Typ BIOS boot), in der GRUB seinen Code ablegt.
Vergleich UEFI vs. BIOS
Abschnitt betitelt „Vergleich UEFI vs. BIOS“| UEFI | BIOS | |
|---|---|---|
| Partitionstabelle | GPT (empfohlen) | MBR |
| Bootloader-Speicherort | ESP (eigene Partition) | MBR / BIOS Boot Partition |
| Secure Boot | Ja | Nein |
| Max. Disk-Größe | > 2 TB | 2 TB (MBR-Limit) |
| Partitionen | bis 128 (GPT) | 4 primäre (MBR) |