UEFI Secure Boot
Für Systeme mit UEFI-Firmware und aktiviertem Secure Boot unterscheidet sich der PXE-Startvorgang grundlegend vom klassischen Legacy-Boot über BIOS. UEFI verwendet ein modernes Architekturmodell, das auf 64-Bit-Betrieb, modularer Erweiterbarkeit und kryptografischer Verifikation basiert. Während beim Legacy-Boot beliebiger Code ohne Integritätsprüfung geladen wird, erzwingt Secure Boot eine durchgängige Vertrauenskette, die sich vom Firmware-Starter bis hin zum Kernel erstreckt. Jede Komponente muss digital signiert sein, um ausgeführt werden zu dürfen.
Um ein System mit aktiviertem Secure Boot per PXE zu starten, wird eine von Microsoft signierte Bootdatei benötigt. Diese Datei, der sogenannte Shim-Bootloader, wird von der jeweiligen Linux-Distribution bereitgestellt und bildet die Brücke zwischen der UEFI-Firmware und dem eigentlichen Bootloader (meist GRUB).
Da der Shim-Bootloader von Microsoft signiert ist, wird er von der Firmware als vertrauenswürdig eingestuft. Innerhalb des Shim-Pakets sind wiederum Zertifikate der jeweiligen Distribution enthalten, mit denen die nachfolgenden Komponenten (wie z. B. GRUB, der Kernel und die Initramfs) überprüft werden. Entscheidend ist, dass die Zertifikatskette während des gesamten Startvorgangs unverändert bleibt, damit jede Komponente nur von einer autorisierten Quelle geladen wird.
Ablauf des PXE-Boots im UEFI-Modus
Der Ablauf gestaltet sich typischerweise wie folgt:
- UEFI-Firmware-Initialisierung
Die Firmware initialisiert Hardwarekomponenten und prüft, ob Secure Boot aktiv ist. Anschließend startet sie den Netzwerkstack für den PXE-Boot. - DHCP-Anfrage und Bootdatei-Zuweisung
Der PXE-Client sendet eine DHCP-Anfrage und erhält IP-Adresse, Bootserver (TFTP/HTTP) und den Namen der zu ladenden Bootdatei, typischerweise bootx64.efi. - Shim-Start (Microsoft-signiert)
Die Firmware lädt bootx64.efi (den Shim-Bootloader). Da dieser von Microsoft signiert ist, wird er als vertrauenswürdig akzeptiert. - GRUB-Start (Distribution-signiert)
Der Shim-Bootloader lädt grubx64.efi und überprüft dessen Signatur anhand der im Shim-Paket eingebetteten Zertifikate der Distribution. - Kernel- und Initramfs-Start
GRUB lädt den Kernel (vmlinuz) und die Initramfs (initrd.img). Beide müssen signiert sein, sonst verweigert Secure Boot den Startvorgang. - Systemstart und Schlüsselprüfung
Erst wenn alle Signaturen gültig sind, wird der Kernel ausgeführt und das Betriebssystem gebootet.
Diese Architektur stellt sicher, dass während des gesamten Bootvorgangs nur verifizierte und signierte Komponenten ausgeführt werden.
Vorbereitung der Bootdateien
Für den PXE-Boot unter Secure Boot benötigen Sie folgende Dateien, die von der jeweiligen Distribution bereitgestellt werden:
- bootx64.efi – Shim-Bootloader (Microsoft-signiert, aus dem Paket shim-signed)
- grubx64.efi – GRUB EFI-Bootloader (Distribution-signiert)
- vmlinuz – Linux-Kernel (signiert)
- initrd.img – Initial-RAM-Disk (signiert)
Diese Dateien werden in der Regel im Verzeichnis /tftpboot/ oder einem Unterordner wie /tftpboot/uefi/ abgelegt und über DHCP/TFTP verteilt.
Beispielhafte Struktur
├── bootx64.efi
├── grubx64.efi
├── grub.cfg
├── myDistro
├──── vmlinuz
└──── initrd.img
Anlage der GRUB-Konfiguration
Im Gegensatz zum Legacy-Boot verwendet Secure Boot über UEFI eine GRUB-Konfiguration anstelle der PXELINUX-Dateien.
Diese Konfiguration liegt üblicherweise in einer Datei namens grub.cfg, die von grubx64.efi geladen wird.
Beispielhafte Struktur des GRUB-Konfigurationsverzeichnisses
└── grub.cfg
Wichtige GRUB-Parameter:
- set timeout: Legt den Timeout in Sekunden fest, bevor der Standard-Eintrag gestartet wird
- menuentry: Definiert einen Boot-Eintrag im Menü
- linuxefi: Lädt den Kernel (EFI-spezifischer Befehl)
- initrdefi: Lädt die Initramfs (EFI-spezifischer Befehl)
- set root: Definiert das Root-Dateisystem oder den TFTP-Pfad
Beispielkonfiguration (Standard-Variante)
Eine einfache GRUB-Konfigurationsdatei für PXE-Start mit Secure Boot kann wie folgt aussehen:
set timeout=5
set color_normal=white/black
set menu_color_highlight=black/light-gray
menuentry "Boot from local disk" {
exit
}
menuentry "Rescue System (Secure Boot)" {
linuxefi /myDistro/vmlinuz root=/dev/ram0 rw
initrdefi /myDistro/initrd.img
}
Diese Konfiguration bietet zwei Menüoptionen:
- Start des Rescue- oder Installationssystems über Kernel und Initramfs
- Lokaler Bootvorgang über „exit“ (übergibt Kontrolle an Firmware)
Wenn Sie nun ausgehend von dieser Konfiguration starten, erhalten Sie die folgende Bildschirmansicht und der Boot würde nach 5 Sekunden automatisch von der lokalen Festplatte starten.

UEFI Boot Screen
Hinweis zum Secure Boot in ACMP
Das PXE-Boot-System in ACMP unterstützt sowohl Legacy-BIOS, UEFI Boot als auch UEFI mit Secure Boot.
Bei aktiviertem Secure Boot kann die Funktionalität jedoch eingeschränkt sein. Für maximale Kompatibilität wird empfohlen, eine Distribution mit offiziell signierten Bootloadern (Shim + GRUB) zu verwenden oder Secure Boot zu deaktivieren.

