Provided by: manpages-de_4.15.0-9_all bug

BEZEICHNUNG

       systemd-stub, sd-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 an ein
       Linux-Kernel-Programmabbild angehängt wird und in der UEFI-Firmwareumgebung ausgeführt
       wird, bevor in die Linux-Kernelumgebung übergewechselt 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 12 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) und systemd-creds(1) für Details über verschlüsselte
           Zugangsberechtigungen. Das erstellte cpio wird in TPM PCR 12 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 4 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 12 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.

TPM2-PCR-HINWEISE

       Beachten Sie, dass beim Aufruf eines vereinigten Kernels mittels systemd-stub die Firmware
       ihn als ganzes in TPM PCR 4 einmessen wird und dabei alle eingebetteten Ressourcen wie den
       Stub-Code selbst, den Kernelkern, die eingebettete Initrd und die Kernelbefehlszeile
       abdecken wird (die vollständige Liste finden Sie weiter oben).

       Beachten Sie auch, dass der Linux-Kernel alle Initrds, die er empfängt, in TPM PCR 9
       einmessen wird. Dies bedeutet, dass jede Art von Initrd zweimal gemessen wird: die im
       Kernel-Abbild eingebettete Initrd wird sowohl in PCR 4 als auch PCR 9 eingemessen; die aus
       den Zugangsberechtigungen synthetisierte Initrd wird sowohl in PCR 12 als auch in PCR 9
       eingemessen; die aus den Systemerweiterungen synthetisierte Initrd wird sowohl in PCR 4
       als auch PCR 9 eingemessen. Zusammenfassend können die Betriebssystemressourcen und die
       PCRs, in die sie eingemessen werden, wie folgt zusammengefasst werden:

       Tabelle 1. Zusammenfassung von Betriebssystem-Ressourcen-PCR
       ┌─────────────────────────────────┬──────────┐
       │BetriebssystemressourceMess-PCR │
       ├─────────────────────────────────┼──────────┤
       │Code von systemd-stub (der       │ 4        │
       │Einstiegspunkt für das           │          │
       │vereinigte PE-Programm)          │          │
       ├─────────────────────────────────┼──────────┤
       │Startbild (eingebettet in das    │ 4        │
       │vereinigte PE-Programm)          │          │
       ├─────────────────────────────────┼──────────┤
       │Kern-Kernelcode (eingebettet in  │ 4        │
       │das vereinigte PE-Programm)      │          │
       ├─────────────────────────────────┼──────────┤
       │Haupt-Initrd (eingebettet in das │ 4 + 9    │
       │vereinigte PE-Programm)          │          │
       ├─────────────────────────────────┼──────────┤
       │Standard-Kernel-Befehlszeile     │ 4        │
       │(eingebettet in das vereinigte   │          │
       │PE-Programm)                     │          │
       ├─────────────────────────────────┼──────────┤
       │Kernel-Befehlszeile außer Kraft  │ 12       │
       │setzen                           │          │
       ├─────────────────────────────────┼──────────┤
       │Zugangsberechtigungen            │ 12 + 9   │
       │(synthetisierte Initrd aus       │          │
       │Begleitdateien)                  │          │
       ├─────────────────────────────────┼──────────┤
       │Systemerweiterungen              │ 4 + 9    │
       │(synthetisierte Initrd aus       │          │
       │Begleitdateien)                  │          │
       └─────────────────────────────────┴──────────┘

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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.