Provided by: manpages-de_4.23.1-1_all bug

BEZEICHNUNG

       ukify - Komponenten zu einem einzigen, vereinigten Kernelabbild für UEFI-Systeme
       kombinieren

ÜBERSICHT

       ukify [OPTIONEN…] build

       ukify [OPTIONEN…] genkey

       ukify [OPTIONEN…] inspect DATEI…

BESCHREIBUNG

       ukify ist ein Werkzeug, dessen Hauptzweck die Kombination von Komponenten (normalerweise
       einem Kernel, einer Initrd und einem UEFI-Startrumpf) ist, um ein Vereinigtes Kernelabbild
       (UKI)[1] zu erstellen – ein PE-Programm, das durch die Firmware ausgeführt werden kann, um
       einen eingebetteten Linux-Kernel zu starten. Siehe systemd-stub(7) für Details über den
       Rumpf.

BEFEHLE

       Die folgenden Befehle werden verstanden:

   build
       Dieser Befehl erstellt ein vereinigtes Kernelabbild. Die zwei zentralen Optionen, die für
       den Unterbefehl build angegeben werden sollten, sind Linux=/--linux= und
       Initrd=/--initrd=. Initrd= akzeptiert mehrere, durch Leerraum getrennte Pfade und
       --initrd= kann mehrfach angegeben werden.

       Es werden zusätzliche Abschnitte in den UKI eingefügt, entweder automatisch oder nur falls
       eine bestimmte Option bereitgestellt wird. Siehe die nachfolgende Besprechung von
       Microcode=/--microcode=, Cmdline=/--cmdline=, OSRelease=/--os-release=,
       DeviceTree=/--devicetree=, Splash=/--splash=, PCRPKey=/--pcrpkey=, Uname=/--uname=,
       SBAT=/--sbat= und --section=.

       ukify kann auch zum Zusammenbau eines PE-Programmabbilds verwandt werden, das nicht
       ausführbar ist, aber zusätzliche Daten enthält, beispielsweise zusätzliche
       Kernelbefehlszeileneinträge.

       Falls über die Optionen PCRPrivateKey=/--pcr-private-key= und
       PCRPublicKey=/--pcr-public-key= PCR-Signierschlüssel bereitgestellt werden, werden
       PCR-Werte, die nach dem Systemstart mit dem angegebenen Kernel, der Initrd und anderen
       Abschnitten vorkommen, berechnet, signiert und in das UKI eingebettet. Diese Berechnung
       und Signatur erfolgt mit systemd-measure(1).

       The calculation of PCR values is done for specific boot phase paths. Those can be
       specified with the Phases=/--phases= option. If not specified, the default provided by
       systemd-measure is used. It is also possible to specify the
       PCRPrivateKey=/--pcr-private-key=, PCRPublicKey=/--pcr-public-key=, and Phases=/--phases=
       arguments more than once. Signatures will then be performed with each of the specified
       keys. On the command line, when both --phases= and --pcr-private-key= are used, they must
       be specified the same number of times, and then the n-th boot phase path set will be
       signed by the n-th key. This can be used to build different trust policies for different
       phases of the boot. In the config file, PCRPrivateKey=, PCRPublicKey=, and Phases= are
       grouped into separate sections, describing separate boot phases. If
       SigningEngine=/--signing-engine= is specified, then the private keys arguments will be
       passed verbatim to OpenSSL as URIs, and the public key arguments will be loaded as X.509
       certificates, so that signing can be performed with an OpenSSL engine.

       Falls ein SecureBoot-Signaturschlüssel über die Option
       SecureBootPrivateKey=/--secureboot-private-key= bereitgestellt ist, wird das resultierende
       PE-Programm als Ganzes damit signiert. Damit wird ermöglicht, dass SecureBoot dem gesamten
       UKI vertraut. Siehe auch die Erläuterung der automatischen Registrierung in
       systemd-boot(7).

       Falls der Rumpf oder der Kernel einen Abschnitt ».sbat« enthält, werden sie im UKI
       zusammengeführt, so dass Widerrufsaktualisierungen, die eines davon betreffen,
       berücksichtigt werden, wenn das UKI vom Shim geladen wird. Für weitere Informationen zu
       SBAT siehe die Shim-Dokumentation[2].

   genkey
       Dieser Befehl erstellt die Schlüssel für die PCR-Signatur und die Schlüssel und
       Zertifikate, die für das SecureBoot-Signieren verwandt werden. Die gleichen
       Konfigurationsoptionen, die bestimmen, welche Schlüssel und in welchen Pfaden für die
       Signatur benötigt werden, wenn build verwandt wird, bestimmen hier, welche Schlüssel
       erstellt werden. Siehe die nachfolgende Diskussion von PCRPrivateKey=/--pcr-private-key=,
       PCRPublicKey=/--pcr-public-key= und SecureBootPrivateKey=/--secureboot-private-key=.

       Die Ausgabedatei darf nicht existieren.

   inspect
       Zeigt Informationen über die Abschnitte in dem oder den angegebene(n) Programme(n). Falls
       --all angegeben ist, werden alle Abschnitte angezeigt. Falls andernfalls die Option
       --section= mindestens einmal angegeben ist, werden nur diese Abschnitte angezeigt.
       Andernfalls werden nur gut bekannte Abschnitte angezeigt, die typischwerweise in eine UKI
       eingebunden werden, angezeigt. Für jeden Abschnitt wird ihr Name, ihre Größe und ihr
       SHA256-Hash angezeigt. Für Textabschnitte werden die Inhalte angezeigt.

       Siehe auch die Beschreibung von -j/--json= und --section=.

       Other tools that may be useful for inspect UKIs: llvm-objdump(1)  -p and pe-inspect.

KONFIGURATIONSEINSTELLUNGEN

       Einstellungen können in Konfigurationsdateien vorkommen (die Syntax mit
       EineEinstellung=Wert) und auf der Befehlszeile (die Syntax mit --eine-Einstellung=Wert).
       Für einige Befehlszeilenparameter ist auch eine einbuchstabige Kurzform verfügbar. In den
       Konfigurationsdateien muss die Einstellung in dem geeigneten Abschnitt sein, daher sind
       die Beschreibungen nachfolgend nach Abschnitten gruppiert. Wenn die gleiche Einstellung in
       der Konfigurationsdatei und auf der Befehlszeile vorkommt, hat im Allgemeinen die
       Befehlszeileneinstellung die höhere Priorität und überschreibt die
       Konfigurationsdateieinstellungen vollständig. Falls sich eine Einstellung anders verhält,
       ist dies nachfolgend beschrieben.

       Falls keine Konfigurationsoption mit der Option --config=PFAD bereitgestellt wird, wird
       ukify versuchen, nach einer Standardkonfigurationsdatei in den folgenden Pfaden in dieser
       Reihenfolge zu suchen: /etc/systemd/ukify.conf, /run/systemd/ukify.conf,
       /usr/local/lib/systemd/ukify.conf und /usr/lib/systemd/ukify.conf und dann die erste
       gefundene laden. ukify wird normal fortfahren, falls keine Konfigurationsdatei angegeben
       und keine in der Vorgabe gefunden wurde.

       Die positionsabhängigen Argumente LINUX und INITRD oder die äquivalenten Einstellungen
       Linux= und Initrd= sind optional. Falls mehr als ein Initrd angegeben ist, werden sie alle
       in einen einzigen PE-Abschnitt kombiniert. Dies ist zum Beispiel nützlich, um der
       eigentlichen Initrd Microcode voranzustellen.

       Die folgenden Optionen und Einstellungen werden verstanden:

   Reine Befehlszeilenoptionen
       --config=PFAD
           Lädt die Konfiguration aus der angegebenen Konfigurationsdatei. Im Allgemeinen sind in
           der Konfigurationsdatei angegebene Einstellungen gegenüber den Einstellungen als
           Optionen nachrangig. In den Fällen, in denen die Befehlszeilenoption die Einstellung
           aus der Konfigurationsdatei nicht vollständig außer Kraft setzt, ist dies in der
           Beschreibung der entsprechenden Optionen explizit erwähnt.

           Hinzugefügt in Version 254.

       --measure, --no-measure
           Aktiviert oder deaktiviert einen Aufruf von systemd-measure(1), um vorberechnete
           PCR-Werte auszugeben. Standardmäßig falsch.

           Hinzugefügt in Version 253.

       --section=NAME:TEXT|@PFAD, --section=NAME:text|binary[@PFAD]
           Für alle Unterbefehle außer inspect wird die erste Syntax verwandt. Gibt einen
           beliebigen zusätzlichen Abschnitt »NAME« an. Das Argument kann eine wörtliche
           Zeichenkette sein oder @, gefolgt von einem Pfadnamen. Diese Option kann mehr als
           einmal angegeben werden. Jeder auf diese Weise angegebene Abschnitt wird (in der
           Reihenfolge) vor dem Abschnitt ».linux«, der immer der letzte ist, eingefügt.

           Für den Unterbefehl inspect wird die zweite Syntax verwandt. Der Abschnitt NAME wird
           (falls gefunden) untersucht. Falls das zweite Argument »text« ist, dann wird der
           Inhalt angezeigt. Falls das dritte Argument angegeben ist, werden die Inhalte in die
           Datei PFAD gespeichert.

           Beachten Sie, dass der Name unverändert verwandt wird und falls der Abschnittsname mit
           einem Punkt beginnen sollte, er in NAME aufgenommen werden muss.

           Hinzugefügt in Version 253.

       --tools=VERZ
           Gibt eines oder mehrere Verzeichnisse mit Hilfswerkzeugen an. ukify wird zuerst in
           diesen Verzeichnissen nach Hilfswerkzeugen schauen und, falls sie dort nicht gefunden
           werden, sie auf die übliche Weise aus $PATH laden.

           Hinzugefügt in Version 253.

       --output=DATEINAME
           Der Ausgabedateiname. Falls nicht angegeben, wird der Name des Arguments LINUX mit der
           Endung ».unsigned.efi« oder ».signed.efi« verwandt, abhängig davon, ob die Signatur
           für SecureBoot durchgeführt wurde.

           Hinzugefügt in Version 253.

       --summary
           Gibt eine Zusammenfassung der geladenen Konfiguration aus und beendet das Programm.
           Dies ist nützlich, um zu überprüfen, wie die Optionen aus der Konfigurationsdatei und
           der Befehlszeile kombiniert werden.

           Hinzugefügt in Version 254.

       --all
           Gibt (mit dem Unterbefehl inspect) alle Abschnitte aus.

           Hinzugefügt in Version 255.

       --json
           Erstellt (mit dem Unterbefehl inspect) JSON-Ausgabe.

           Hinzugefügt in Version 255.

       -h, --help
           Zeigt einen kurzen Hilfetext an und beendet das Programm.

       --version
           Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

   Abschnitt [UKI]
       Linux=LINUX, --linux=LINUX
           Ein Pfad zu dem Kernelprogramm.

           Hinzugefügt in Version 254.

       Initrd=INITRD…, --initrd=LINUX
           Null oder mehr Initrd-Pfade. In der Konfigurationsdatei werden Einträge durch Leerraum
           getrennt. Die Initrds werden in der Reihenfolge der Angabe kombiniert, wobei die in
           der Konfigurationsdatei angegebenen Initrds zuerst kommen.

           Hinzugefügt in Version 254.

       Microcode=UCODE, --microcode=UCODE
           Path to initrd containing microcode updates. If not specified, the section will not be
           present.

           Hinzugefügt in Version 256.

       Cmdline=TEXT|@PFAD, --cmdline=TEXT|@PFAD
           Die Kernelbefehlszeile (der Abschnitt ».cmdline«). Das Argument kann eine wörtliche
           Zeichenkette sein oder »@«, gefolgt von einem Pfadnamen. Falls dies nicht angegeben
           ist, wird keine Befehlszeile eingebettet.

           Hinzugefügt in Version 253.

       OSRelease=TEXT|@PFAD, --os-release=TEXT|@PFAD
           Die Betriebssystem-Veröffentlichungsbeschreibung (der Abschnitt ».osrel«). Das
           Argument kann eine wörtliche Zeichenkette oder »@«, gefolgt von einem Pfadnamen, sein.
           Falls dies nicht angegeben ist, wird die Datei os-release(5) vom Rechnersystem
           genommen.

           Hinzugefügt in Version 253.

       DeviceTree=PFAD, --devicetree=PFAD
           Die Devicetree-Beschreibung (der Abschnitt ».dtb«). Das Argument ist ein Pfad zu einer
           kompilierten binären DeviceTree-Datei. Falls dies nicht angegeben ist, wird der
           Abschnitt nicht vorhanden sein.

           Hinzugefügt in Version 253.

       Splash=PFAD, --splash=PFAD
           Ein Bild, das während des Systemstarts angezeigt werden soll (der Abschnitt
           ».splash«). Das Argument ist ein Pfad zu einer BMP-Datei. Falls dies nicht angegeben
           ist, wird der Abschnitt nicht vorhanden sein.

           Hinzugefügt in Version 253.

       PCRPKey=PFAD, --pcrpkey=PFAD
           Ein Pfad zu einem öffentlichen Schlüssel, der im Abschnitt ».pcrpkey« eingebettet
           werden soll. Falls nicht angegeben und genau ein Argument
           PCRPublicKey=/--pcr-public-key= vorhanden ist, wird dieser Schlüssel verwandt.
           Andernfalls wird dieser Abschnitt nicht vorhanden sein.

           Hinzugefügt in Version 253.

       Uname=VERSION, --uname=VERSION
           Gibt die Kernelversion an (wie in uname -r, den Abschnitt ».uname«). Falls nicht
           angegeben, wird versucht, die Versionszeichenkette aus dem Kernelabbild auszulesen. Es
           wird empfohlen, sie explizit zu übergeben, wenn sie bekannt ist, da das Auslesen auf
           Heuristiken basiert und nicht sehr zuverlässig ist. Falls nicht angegeben und das
           Auslesen fehlschlägt, wird der Abschnitt nicht vorhanden sein.

           Hinzugefügt in Version 253.

       PCRBanks=PFAD, --pcr-banks=PFAD
           Eine Kommata- oder Leerraum-getrennte Liste von PCR-Bänken, für die eine Richtlinie
           signiert werden soll. Falls nicht vorhanden, werden alle bekannten Bänke verwandt
           (»sha1«, »sha256«, »sha384«, »sha512«). Dies wird fehlschlagen, wenn das vom System
           nicht unterstützt wird.

           Hinzugefügt in Version 253.

       SecureBootSigningTool=SIGNIERER, --signtool=SIGNIERER
           Ob »sbsign« oder »pesign« verwandt werden soll. Abhängig von dieser Wahl werden
           verschiedene Parameter benötigt, um ein Abbild zu signieren. Standardmäßig »sbsign«.

           Hinzugefügt in Version 254.

       SecureBootPrivateKey=SB_SCHLÜSSEL, --secureboot-private-key=SB_SCHLÜSSEL
           Ein Pfad zu einem privaten Schlüssel, der zum Signieren des resultierenden Programms
           verwandt wird. Falls die Option SigningEngine=/--signing-engine= verwandt wird, kann
           dies auch eine Engine-spezifische Festsetzung sein. Diese Option wird von
           SecureBootSigningTool=sbsign/--signtool=sbsign benötigt.

           Hinzugefügt in Version 253.

       SecureBootCertificate=SB_ZERT, --secureboot-certificate=SB_ZERT
           Ein Pfad zu einem Zertifikat, das zum Signieren des resultierenden Programms verwandt
           wird. Falls die Option SigningEngine=/--signing-engine= verwandt wird, kann dies auch
           eine Engine-spezifische Festsetzung sein. Diese Option wird von
           SecureBootSigningTool=sbsign/--signtool=sbsign benötigt.

           Hinzugefügt in Version 253.

       SecureBootCertificateDir=SB_PFAD, --secureboot-certificate-dir=SB_PFAD
           Ein Pfad zu einem NSS-Zertifikatsdatenbankverzeichnis, das zum Signieren des
           resultierenden Programms verwandt wird. Wird wirksam, wenn
           SecureBootSigningTool=pesign/--signtool=pesign verwandt wird. Standardmäßig
           /etc/pki/pesign.

           Hinzugefügt in Version 254.

       SecureBootCertificateName=SB_ZERTNAME, --secureboot-certificate-name=SB_ZERTNAME
           Der Name des NSS-Zertifikatsdatenbankeintrags, der zur Signierung des entstehenden
           Programms verwandt werden soll. Diese Option wird von
           SecureBootSigningTool=pesign/--signtool=pesign verlangt.

           Hinzugefügt in Version 254.

       SecureBootCertificateValidity=TAGE, --secureboot-certificate-validity=TAGE
           Gültigkeitsdauer (in Tagen) für ein durch genkey erstelltes Zertifikat. Standardmäßig
           3650, d.h. 10 Jahre.

           Hinzugefügt in Version 254.

       SigningEngine=ENGINE, --signing-engine=ENGINE
           Eine »Engine« zum Signieren des resultierenden Programms. Diese Option wird derzeit
           unverändert an die Option --engine= von sbsign(1) weitergegeben.

           Hinzugefügt in Version 253.

       SignKernel=LOGISCH, --sign-kernel, --no-sign-kernel
           Setzt die Erkennung, ob das Linux-Programm selbst vor dem Einbetten in das kombinierte
           Abbild signiert werden soll, außer Kraft. Falls nicht angegeben, wird es signiert,
           falls ein SecureBoot-Signaturschlüssel über die Option
           SecureBootPrivateKey=/--secureboot-private-key= bereitgestellt wird und das Programm
           noch nicht signiert wurde. Falls --sign-kernel wahr ist und das Programm bereits
           signiert wurde, wird die Signatur trotzdem angehängt.

           Hinzugefügt in Version 253.

       SBAT=TEXT|@PFAD, --sbat=TEXT|@PFAD
           Dem UKI oder der Ergänzung zugeordnete SBAT-Metadaten. SBAT-Richtlinien sind zum
           Widerruf von Gruppen von UKIs oder Ergänzungen mit einer einzelnen, statischen
           Richtlinienaktualisierung nützlich, die keinen Platz in DBX/MOKX belegt. Falls nicht
           händisch angegeben, wird ein Standardmetadateneintrag bestehend aus
           »uki,1,UKI,uki,1,https://uapi-group.org/specifications/specs/unified_kernel_image/"
           für UKIs und "uki-addon,1,UKI
           Addon,addon,1,https://www.freedesktop.org/software/systemd/man/latest/systemd-stub.html"
           für Ergänzungen verwandt, um sicherzustellen, dass es immer möglich ist, sie zu
           widerrufen. Für weitere Informationen über SBAT siehe die Shim-Dokumentation[2].

           Hinzugefügt in Version 254.

   [PCRSignature:NAME] Abschnitt
       In der Konfigurationsdatei werden diese Optionen nach Abschnitten gruppiert. Auf der
       Befehlszeile müssen sie in der gleichen Reihenfolge angegeben werden. Die in beiden
       Quellen angegebenen Abschnitte werden kombiniert.

       PCRPrivateKey=PFAD, --pcr-private-key=PFAD
           Ein privater Schlüssel zum Signieren von PCR-Richtlinien. Auf der Befehlszeile darf
           diese Option mehr als einmal angegeben werden. Dann werden mehrere Signaturen
           erstellt.

           Hinzugefügt in Version 253.

       PCRPublicKey=PFAD, --pcr-public-key=PFAD
           Ein öffentlicher Schlüssel, der zum Signieren von PCR-Richtlinien verwandt wird.

           Auf der Befehlszeile darf diese Option mehr als einmal angegeben werden, ähnlich wie
           die Option --pcr-private-key=. Falls nicht vorhanden werden die öffentlichen Schlüssel
           aus den privaten Schlüsseln abgeleitet. Falls auf der Befehlszeile vorhanden, muss
           diese Option genauso oft wie die Option --pcr-private-key= angegeben werden.

           Hinzugefügt in Version 253.

       Phases=LISTE, --phases=LISTE
           Eine durch Kommata oder Leerzeichen getrennte Liste von Doppelpunkt getrennten
           Phasenpfaden, für die eine Richtlinie signiert werden soll. Jede Gruppe von
           Systemstartphasenpfaden wird mit dem entsprechenen privaten Schlüssel signiert. Falls
           nicht vorhanden, wird die Vorgabe von systemd-measure(1) verwandt.

           Wenn dieses Argument auf der Befehlszeile vorhanden ist, muss es genauso oft wie die
           Option --pcr-private-key= vorkommen.

           Hinzugefügt in Version 253.

BEISPIELE

       Beispiel 1. Minimaler Aufruf

           $ ukify build \
                 --linux=/lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \
                 --initrd=/ein/Pfad/initramfs-6.0.9-300.fc37.x86_64.img \
                 --cmdline='quiet rw'

       Dies erstellt ein unsigniertes UKI ./vmlinuz.unsigned.efi.

       Beispiel 2. Mit allem Schnickschnack

           $ ukify build \
                 --linux=/lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \
                 --initrd=early_cpio \
                 --initrd=/ein/Pfad/initramfs-6.0.9-300.fc37.x86_64.img \
                 --sbat='sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
                 uki.author.myimage,1,UKI for System,uki.author.myimage,1,https://uapi-group.org/specifications/specs/unified_kernel_image/' \
                 --pcr-private-key=pcr-private-initrd-key.pem \
                 --pcr-public-key=pcr-public-initrd-key.pem \
                 --phases='enter-initrd' \
                 --pcr-private-key=pcr-private-system-key.pem \
                 --pcr-public-key=pcr-public-system-key.pem \
                 --phases='enter-initrd:leave-initrd enter-initrd:leave-initrd:sysinit \
                           enter-initrd:leave-initrd:sysinit:ready' \
                 --pcr-banks=sha384,sha512 \
                 --secureboot-private-key=sb.key \
                 --secureboot-certificate=sb.cert \
                 --sign-kernel \
                 --cmdline='quiet rw rhgb'

       Dies erstellt ein signiertes UKI ./vmlinuz.signed.efi. Der Initrd-Abschnitt enthält zwei
       aneinandergehängte Teile, early_cpio und initramfs-6.0.9-300.fc37.x86_64.img. Die in dem
       Abschnitt ».pcrsig« eingebettete Richtlinie wird für die Initrd mit dem Schlüssel
       pcr-private-initrd-key.pem signiert (die Phase enter-initrd) und für das Hauptsystem
       (Phase leave-initrd, sysinit, ready) mit dem Schlüssel pcr-private-system-key.pem. Das
       Linux-Programm und das resultierende kombinierte Abbild wird mit dem SecureBoot-Schlüssel
       sb.key signiert.

       Beispiel 3. Mit allem Schnickschnack, über eine Konfigurationsdatei

       Dies ist das gleiche wie das vorherige Beispiel, diesmal wird die Konfiguration aber in
       einer Datei gespeichert:

           $ cat ukify.conf
           [UKI]
           Initrd=early_cpio
           Cmdline=quiet rw rhgb

           SecureBootPrivateKey=sb.key
           SecureBootCertificate=sb.cert
           SignKernel=yes
           PCRBanks=sha384,sha512

           [PCRSignature:initrd]
           PCRPrivateKey=pcr-private-initrd-key.pem
           PCRPublicKey=pcr-public-initrd-key.pem
           Phases=enter-initrd

           [PCRSignature:system]
           PCRPrivateKey=pcr-private-system-key.pem
           PCRPublicKey=pcr-public-system-key.pem
           Phases=enter-initrd:leave-initrd
                  enter-initrd:leave-initrd:sysinit
                  enter-initrd:leave-initrd:sysinit:ready

           $ ukify -c ukify.conf build \
                   --linux=/lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \
                   --initrd=/ein/Pfad/initramfs-6.0.9-300.fc37.x86_64.img

       Eine »initrd« (early_cpio) wird in der Konfigurationsdatei angegeben und die andere Initrd
       (initramfs-6.0.9-300.fc37.x86_64.img) wird auf der Befehlszeile angegeben. Dies könnte
       beispielsweise nützlich sein, wenn die erste Initrd Mikrocode für die CPU enthält und bei
       Änderungen der Kernelversion nicht aktualisiert werden muss, anders als die eigentliche
       Initrd.

       Beispiel 4. Kernelbefehlszeile, zusätzlicher PE

           ukify build \
                 --secureboot-private-key=sb.key \
                 --secureboot-certificate=sb.cert \
                 --cmdline='debug' \
                 --sbat='sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
                 uki-addon.author,1,UKI Addon for System,uki-addon.author,1,https://www.freedesktop.org/software/systemd/man/systemd-stub.html'
                 --output=debug.cmdline

       Dies erstellt ein signiertes PE-Programm, das den zusätzlichen
       Kernelbefehlszeilenparameter »debug« mit SBAT-Metadaten, die sich auf den Eigentümer der
       Ergänzung beziehen, enthält.

       Beispiel 5. Signierrichtlinien entscheiden und Zertifikate und Schlüssel erstellen

       Zuerst wird eine Konfigurationsdatei erstellt, die angibt, welche Signaturen erstellt
       werden sollen:

           # cat >/etc/kernel/uki.conf <<EOF
           [UKI]
           SecureBootPrivateKey=/etc/kernel/secure-boot.key.pem
           SecureBootCertificate=/etc/kernel/secure-boot.cert.pem

           [PCRSignature:initrd]
           Phases=enter-initrd
           PCRPrivateKey=/etc/kernel/pcr-initrd.key.pem
           PCRPublicKey=/etc/kernel/pcr-initrd.pub.pem

           [PCRSignature:system]
           Phases=enter-initrd:leave-initrd enter-initrd:leave-initrd:sysinit
                  enter-initrd:leave-initrd:sysinit:ready
           PCRPrivateKey=/etc/kernel/pcr-system.key.pem
           PCRPublicKey=/etc/kernel/pcr-system.pub.pem
           EOF

       Als nächstes können die Zertifikate und Schlüssel erstellt werden:

           # ukify genkey --config=/etc/kernel/uki.conf
           Writing SecureBoot private key to /etc/kernel/secure-boot.key.pem
           Writing SecureBoot certificate to /etc/kernel/secure-boot.cert.pem
           Writing private key for PCR signing to /etc/kernel/pcr-initrd.key.pem
           Writing public key for PCR signing to /etc/kernel/pcr-initrd.pub.pem
           Writing private key for PCR signing to /etc/kernel/pcr-system.key.pem
           Writing public key for PCR signing to /etc/kernel/pcr-system.pub.pem

       (Beide Aktionen müssen als Root durchgeführt werden, um Schreibzugriff auf /etc/kernel/ zu
       erlauben.)

       Nachfolgende Aufrufe, die die Konfigurationsdatei (ukify build
       --config=/etc/kernel/uki.conf) verwenden, werden diese Zertifikats- und Schlüsseldateien
       verwenden. Beachten Sie, dass kernel-install(8)-Erweiterung 60-ukify.install standardmäßig
       /etc/kernel/uki.conf verwendet. Daher werden nach der Erstellung dieser Datei bei der
       Installation von Kerneln, die mittels kernel-install einen UKI auf der lokalen Maschine
       erstellen, die Signatur mittels dieser Konfiguration erfolgen.

SIEHE AUCH

       systemd(1), systemd-stub(7), systemd-boot(7), systemd-measure(1),
       systemd-pcrphase.service(8)

ANMERKUNGEN

        1. Vereinigtes Kernelabbild (UKI)
           https://uapi-group.org/specifications/specs/unified_kernel_image/

        2. Shim-Dokumentation
           https://github.com/rhboot/shim/blob/main/SBAT.md

Ü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⟩.