Provided by: manpages-de_4.13-4_all 

BEZEICHNUNG
systemd-stub, linuxx64.efi.stub, linuxia32.efi.stub, linuxaa64.efi.stub - Ein einfacher
UEFI-Kernel-Systemstartrumpf
ÜBERSICHT
/usr/lib/systemd/boot/efi/linuxx64.efi.stub
/usr/lib/systemd/boot/efi/linuxia32.efi.stub
/usr/lib/systemd/boot/efi/linuxaa64.efi.stub
ESP/.../foo.efi.extra.d/*.cred
ESP/.../foo.efi.extra.d/*.raw
ESP/loader/credentials/*.cred
BESCHREIBUNG
systemd-stub (gespeichert auf Platte in den architekturabhängigen Dateien linuxx64.efi.stub,
linuxia32.efi.stub, linuxaa64.efi.stub) ist ein einfacher UEFI-Systemstartrumpf. Ein
UEFI-Systemstartrumpf ist ein Stück Code, das in der UEFI-Firmwareumgebung ausgeführt wird, bevor in die
Linux-Kernelumgebung übergewechselt wird, und das an ein Linux-Kernel-Programmabbild angehängt wird. Der
UEFI-Systemstartrumpf stellt sicher, dass ein Linux-Kernel als reguläres UEFI-Programm ausgeführt wird.
Er ist in der Lage, verschiedene vorbereitende Aktionen durchzuführen, bevor das System in die Linux-Welt
umgeschaltet wird.
Der UEFI-Systemstartrumpf schaut innerhalb des UEFI-PE-Programms selbst nach verschiedenen Ressourcen für
den Kernelaufruf. Dies ermöglicht die Kombination verschiedener Ressourcen innerhalb eines einzigen
PE-Programmabbilds, welches dann selbst wieder über UEFI SecureBoot als ganzes signiert werden kann, und
damit alle einzelnen Ressourcen auf einmal abdeckt. Insbesondere kann er folgendes enthalten:
• Nach dem ELF-Linux-Kernelabbild wird im PE-Abschnitt ».linux« des ausführbaren Abbilds gesucht.
• Nach der anfänglichen RAM-Platte (Initrd) wird im PE-Abschnitt ».initrd« gesucht.
• Nach dem kompilierten binären DeviceTree wird im PE-Abschnitt ».dtb« gesucht.
• Nach der an den aufgerufenen Kernel zu übergebenen Kernelbefehlszeile wird im PE-Abschnitt ».cmdline«
gesucht.
• Nach der vor Aufruf des Kernels anzuzeigenden Systemstartgraphik (im Windows-.BMP-Format) wird im
PE-Abschnitt »&.splash« gesucht.
Falls UEFI-SecureBoot aktiviert und der Abschnitt ».cmdline« in dem ausgeführten Abbild vorhanden ist,
werden alle Versuche, die Kernelbefehlszeile durch Übergabe anderer Aufrufparameter an das EFI-Programm
außer Kraft zu setzen, ignoriert. Um daher die Außerkraftsetzung der Kernelbefehlszeile zu erlauben,
deaktivieren Sie entweder UEFI-SecureBoot oder nehmen Sie keine Kernelbefehlszeile in den PE-Abschnitt in
der Kernelabbilddatei auf. Falls eine Befehlszeile über EFI-Aufrufparameter an das EFI-Programm
akzeptiert wird, dann wird sie in TPM PCR 8 eingemessen (falls ein TPM vorhanden ist).
Falls in dem Abschnitt ».dtb« ein DeviceTree eingebettet ist, ersetzt er einen bestehenden DeviceTree in
der entsprechenden EFI-Konfigurationstabelle. Systemd-stub wird die Firmware über das
»EFI_DT_FIXUP_PROTOCOL« nach hardwarespezifischen Korrekturen für den DeviceTree befragen.
BEGLEITDATEIEN
Der UEFI-Systemstartrumpf systemd-stub sammelt automatisch zwei Arten von zusätzlichen
Hilfs-Begleitdateien, die optional in den Ergänzungsverzeichnissen auf der gleichen Partition wie das
EFI-Programm abgelegt werden, erstellt ein cpio-Initrd-Archiv daraus und übergibt sie an den Kernel.
Konkret:
• Für ein Kernelprogramm namens foo.efi wird nach Dateien mit der Endung .cred in einem Verzeichnis
namens foo.efi.extra.d/ daneben gesucht. Von auf diese Art gefundenen Dateien wird ein cpio-Archiv
erstellt und sie werden im Verzeichnis /.extra/credentials/ in der Initrd-Dateihierarchie abgelegt.
Die Haupt-Initrd kann dann auf sie in dem Verzeichnis zugreifen. Dies ist dazu gedacht, zusätzliche,
verschlüsselte, authentifizierte Zugangsberechtigungen zum Einsatz mit LoadCredentialEncrypted= in
der UEFI-Systempartition zu speichern. Siehe systemd.exec(5) für Details über verschlüsselte
Zugangsberechtigungen. Das erstellte cpio wird in TPM PCR 4 eingemessen (falls ein TPM vorhanden
ist).
• Ähnlich werden foo.efi.extra.d/*.raw-Dateien in einem cpio-Archiv gepackt und im Verzeichnis
/.extra/sysext/ in der Initrd-Dateihierarchie abgelegt. Dies ist zur Übergabe zusätzlicher
Systemerweiterungsabbilder an die Initrd gedacht. Siehe systemd-sysext(8) für Details über
Systemerweiterungsabbilder. Das erstellte cpio, das diese Systemerweiterungsabbilder enthält, wird in
TPM PCR 8 eingemessen (falls ein TPM vorhanden ist).
• /loader/credentials/*.cred-Dateien werden in ein cpio-Archiv gepackt und im Verzeichnis
/.extra/global_credentials/ der Initrd-Dateihierarchie abgelegt. Dies ist zur Übergabe zusätzlicher
Zugangsberechtigungen an die Initrd gedacht, unabhängig von dem gestarteten Kernel. Das erstellte
cpio wird in TPM PCR 4 eingemessen (falls ein TPM vorhanden ist).
Diese Mechanismen können zum Parametrisieren und Erweitern vertrauenswürdiger (d.h. signierter),
unveränderbarer Initrd-Abbilder auf eine recht sichere Art und Weise verwandt werden: alle in ihnen
erhaltene Daten werden in TPM PCRs eingemessen. Beim Zugriff sollten sie weiter validiert werden: Im
Falle der Zugangsberechtigungen durch Entschlüsselung/Authentifizierung mittels TPM, wie das über
systemd-creds encrypt -T (siehe systemd-creds(1) für Details) offengelegt wird; im Falle der
Systemerweiterungsabbilder mittels signierter Verity-Abbilder.
EFI-VARIABLEN
Die folgenden EFI-Variablen werden unter der Lieferanten-UUID »4a67b082-0a4c-41cf-b6c7-440b29bb8c4f« für
die Kommunikation zwischen dem Systemstartrumpf und dem Betriebssystem definiert, gesetzt und gelesen:
LoaderDevicePartUUID
Enthält die Partitions-UUID der EFI-Systempartition von der das EFI-Abbild ausgeführt wurde.
systemd-gpt-auto-generator(8) verwendet diese Information, um automatisch die Platte zu finden, von
der gestartet wurde, um verschiedene andere Partitionen auf der gleichen Platte automatisch zu
erkennen.
LoaderFirmwareInfo, LoaderFirmwareType
Kurze Firmware-Informationen. Verwenden Sie bootctl(1), um diese Daten zu betrachten.
LoaderImageIdentifier
Der Pfad zum EFI-Programm, relativ zum Wurzelverzeichnis der EFI-Systempartition. Verwenden Sie
bootctl(1), um diese Daten zu betrachten.
StubInfo
Kurze Rumpfinformationen. Verwenden Sie bootctl(1), um diese Daten zu betrachten.
Beachten Sie, dass einige der obigen Variablen auch durch das Systemstartprogramm gesetzt werden können.
Der Rupmf wird sie nur setzen, falls sie nicht bereits gesetzt sind. Einige dieser Variablen werden durch
die Boot-Loader-Schnittstelle[1] gesetzt.
ZUSAMMENBAU VON KERNELABBILDERN
Um ein UEFI-PE-Kernelabbild aus verschiedenen Komponenten wie oben beschrieben zusammenzubauen, verwenden
Sie eine objcopy(1)-Befehlszeile wie folgt:
objcopy \
--add-section .osrel=os-release --change-section-vma .osrel=0x20000 \
--add-section .cmdline=cmdline.txt --change-section-vma .cmdline=0x30000 \
--add-section .dtb=devicetree.dtb --change-section-vma .dtb=0x40000 \
--add-section .splash=splash.bmp --change-section-vma .splash=0x100000 \
--add-section .linux=vmlinux --change-section-vma .linux=0x2000000 \
--add-section .initrd=initrd.cpio --change-section-vma .initrd=0x3000000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub \
foo-unsigned.efi
Dies erstellt eine ausführbare PE-Datei foo-unsigned.efi aus den sechs einzelnen Dateien für die
Betriebssystemveröffentlichungsinformationen, Kernelbefehlszeile, Systemstartbild, Kernelabbild,
Haupt-Initrd und dem UEFI-Systemstartrumpf.
Um das entstehende Abbild für UEFI SecureBoot zu signieren, verwenden Sie einen sbsign(1)-Befehl wie
folgt:
sbsign \
--key mykey.pem \
--cert mykey.crt \
--output foo.efi \
foo-unsigned.efi
Dies erwartet ein Paar aus einem privaten X.509-Schlüssel und Zertifikat als Parameter und signiert dann
das von uns oben erstellte UEFI-PE-Programm für UEFI SecureBoot und erstellt als Ergebnis ein signiertes
UEFI-PE-Programm.
SIEHE AUCH
systemd-boot(7), systemd.exec(5), systemd-creds(1), systemd-sysext(8), Systemladerspezifikation[2],
Boot-Loader-Schnittstelle[1], objcopy(1), sbsign(1)
ANMERKUNGEN
1. Boot-Loader-Schnittstelle
https://systemd.io/BOOT_LOADER_INTERFACE
2. Systemladerspezifikation
https://systemd.io/BOOT_LOADER_SPECIFICATION
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
Mailingliste der Übersetzer.
systemd 250 SYSTEMD-STUB(7)