SYSTEMD-BOOT(7)

BEZEICHNUNG
systemd-boot, sd-boot - Ein einfacher UEFI-Systemstartverwalter

BESCHREIBUNG

systemd-boot (kurz sd-boot) ist ein einfacher UEFI-Systemstartverwalter. Er stellt ein textuelles Menü zur Auswahl des zu startenden Eintrags und einen Editor für die Kernelbefehlszeile zur Verfügung. systemd-boot unterstützt nur Systeme mit UEFI-Firmware.

systemd-boot lädt Systemstarteintragsinformationen aus der EFI-Systempartition (ESP), die zur Betriebssystemlaufzeit normalerweise unter /efi/, /boot/ oder /boot/efi/ eingehängt ist, sowie von der »Extended Boot Loader«-Partition (XBOOTLDR), falls sie existiert (normalerweise unter /boot/ eingehängt). Konfigurationsdateifragmente, Kernel, Initrds und andere zu startende EFI-Images müssen im Allgemeinen in der ESP oder der »Extended Boot Loader«-Partition liegen. Linux-Kernel müssen mit CONFIG_EFI_STUB gebaut sein, damit sie direkt als EFI-Image ausgeführt werden können. Während des Systemstarts fügt systemd-boot automatisch eine Liste von Systemstarteinträgen aus den folgenden Quellen zusammen:

    • Systemstarteinträge, die in Typ-#1-Beschreibungsdateien gemäß der UAPI.1-Systemstartlader-Spezifikation[1] in /loader/entries/ auf der ESP und der »Extended Boot Loader«-Partition liegen. Diese beschreiben normalerweise Linux-Kernel-Images mit zugehörigen Initrd-Images, können aber alternativ auch beliebige andere EFI-Programme beschreiben.

    • Vereinigte Kernel-Images, UAPI.1-Systemstartlader-Spezifikation[1] Typ 2, die ausführbare EFI-Programme in /EFI/Linux/ auf der ESP und der »Extended Boot Loader«-Partition sind.

    • Der Microsoft-Windows-EFI-Systemstartverwalter, falls installiert.

    • Der Apple-macOS-Systemstartverwalter, falls installiert.

    • Das EFI-Shell-Programm, falls installiert.

    • Ein Option »Reboot Into Firmware Interface« (Neustart in die UEFI-Firmware-Schnittstelle), falls durch die Firmware unterstützt.

    • Registrierung der Variablen des sicheren Systemstarts, falls die UEFI-Firmware sich im Einrichtungsmodus befindet und Dateien auf dem ESP bereitgestellt werden.

systemd-boot unterstützt die folgenden Funktionalitäten:

    • Grundlegende Änderungen an der Konfiguration des Systemstartverwalters (wie Konfiguration der Zeitüberschreitung, Vorgabe-Systemstartauswahl, …) können direkt zum Systemstartzeitpunkt von der Bedienoberfläche des Systemstartprogramms aus vorgenommen werden, sowie während der Laufzeit des Systems mit EFI-Variablen.

    • Der Systemstartverwalter integriert mit dem Befehl systemctl, um Funktionalitäten wie systemctl reboot --boot-loader-entry=… (zum Neustart in einen bestimmten Systemstartmenüeintrag, d.h. »Neustart in Windows«) und systemctl reboot --boot-loader-menu=… (zum Neustawrten in das Systemstartmenü) zu implementieren, indem die Systemstartladerschnittstelle[2] implementiert wird. Siehe systemctl(1) für Details.

    • Eine durch den Systemstartverwalter gesetzte EFI-Variable informiert das Betriebssystem über die während des Systemstarts verwandte EFI-System-Partition. Dies wird dann dazu benutzt, automatisch die korrekte EFI-System-Partition unter /efi/ oder /boot/ zur Betriebssystemlaufzeit einzuhängen. Siehe systemd-gpt-auto-generator(8) für Details.

    • Der Systemstartverwalter stellt unter Verwendung der Systemstartlader-Schnittstelle[2] Informationen über die in der UEFI-Firmware verbrachte Zeit bereit. Diese Information kann mittels systemd-analyze(1) dargestellt werden.

    • Der Systemstartverwalter implementiert das Systemstartzählen und fällt bei Fehlschlägen automatisch zu älteren, funktionierenden Systemstarteinträgen zurück. Siehe Automatische Systemstartbeurteilung[3].

    • Der Systemstartverwalter liest optional die Zufallsstartwerte aus der ESP-Partition, kombiniert sie mit einem in einer dauerhaften EFI-Variable abgelegten »Systemmerkmal« und leitet einen Zufallsstartwert ab, der vom Betriebssystem zur Initialisierung des Entropie-Vorrats während der frühen Systemstartphase verwandt wird.

    • Der Systemstartverwalter erlaubt die Registrierung von Variablen für den sicheren Systemstart, falls sich die UEFI-Firmware im Einrichtungsmodus befindet. Zusätzlich können Variablen automatisch registriert werden, falls konfiguriert.

bootctl(1) kann aus dem laufenden System verwandt werden, um die ESP und die »Extended Boot Loader«-Partition zu ermitteln, verfügbare Einträge aufzulisten und systemd-boot selbst zu installieren.

kernel-install(8) kann zum Kopieren des Kernel-Images auf die ESP oder die »Extended Boot Loader«-Partition und zur Erstellung von Beschreibungsdateien, die konform mit der Systemstartlader-Spezifikation sind, verwandt werden.

systemd-stub(7) kann als UEFI-Systemstartrumpf für ausgeführte Kernel verwandt werden. Das ist nützlich, um graphische Systemstartbilder zu zeigen, bevor in die Linux-Welt übergeleitet wird. Es ist auch in der Lage, zusätzliche Zugangsberechtigungsdateien aufzusammeln (für die Parametrisierung des Systemstarts) und Erweiterungsabbilder für das System, wie Begleitdateien für die gestarteten Kernelabbilder.

TASTENBELEGUNGEN

Im Systemlader-Menü können die folgenden Tasten verwandt werden:

↑ (Hoch), ↓ (Runter), j, k, SeiteHoch, SeiteRunter, Pos 1, Ende
    Die Eintragsliste hoch/runter navigieren

    Hinzugefügt in Version 239.

↵ (Eingabe), → (Rechts)
    Den ausgewählten Eintrag starten

    Hinzugefügt in Version 239.

d
    Den ausgewählten Eintrag als Vorgabe setzen

    Eine EFI-Variable wird gesetzt, damit diese Einstellung dauerhaft ist.

    Hinzugefügt in Version 239.

e
    Für den ausgewählten Eintrag die Kernelbefehlszeile bearbeiten

    Hinzugefügt in Version 239.

+, t
    Die Zeitüberschreitung vor dem Starten des Vorgabeeintrags erhöhen

    Eine EFI-Variable wird gesetzt, damit diese Einstellung dauerhaft ist.

    Hinzugefügt in Version 239.

-, T
    Die Zeitüberschreitung verringern

    Eine EFI-Variable wird gesetzt, damit diese Einstellung dauerhaft ist.

    Hinzugefügt in Version 239.

r
    Ändert die Bildschirmauflösung, überspringt nicht unterstützte Modi.

    Eine EFI-Variable wird gesetzt, damit diese Einstellung dauerhaft ist.

    Hinzugefügt in Version 250.

R
    Setzt die Bildschirmauflösung auf die Vorgabe der Firmware oder der Konfigurationsdatei zurück.

    Eine EFI-Variable wird gesetzt, damit diese Einstellung dauerhaft ist.

    Hinzugefügt in Version 250.

p
    Gibt den Status aus

    Hinzugefügt in Version 250.

h, ?, F1
    Zeigt einen Hilfebildschirm

    Hinzugefügt in Version 239.

f
    Startet neu in die Firmware-Schnittstelle.

    Zur Kompatibilität mit Tastaturbindungen mehrerer Firmware-Implementierungen kann diese Aktion auch mit F2, F10, Entf und Esc erreicht werden.

    Hinzugefügt in Version 250.

Umschalt+o
    Das System herunterfahren.

    Hinzugefügt in Version 255.

Umschalt+b
    Neustart des Systems.

    Hinzugefügt in Version 255.

Die folgenden Tasten können während des Systemstarts oder im Startmenü gedrückt werden, um direkt einen bestimmten Eintrag zu starten:

l
    Linux

    Hinzugefügt in Version 239.

w
    Windows

    Hinzugefügt in Version 239.

a
    macOS

    Hinzugefügt in Version 239.

s
    EFI-Shell

    Hinzugefügt in Version 239.

1, 2, 3, 4, 5, 6, 7, 8, 9
    Systemladereintrag Nummer 1 … 9

    Hinzugefügt in Version 239.

Das Systemstart-Menü wird angezeigt, wenn eine Zeitüberschreitung größer Null konfiguriert wurde. Falls die Menü-Zeitüberschreitung auf Null gesetzt wurde, drücken Sie eine Taste (die Leertaste wird empfohlen), bevor sich das Systemstartprogramm initialisiert, um das Systemstart-Menü hochzubringen. Beachten Sie, dass das Zeitfenster, in dem Tastendrücke akzeptiert werden, bevor sich das Systemstartprogramm initialisiert, abhängig von der Firmware-Implementierung sehr kurz sein kann. Falls das Fenster verpasst wird, starten Sie neu und versuchen Sie es erneut, möglicherweise durch wiederholtes Drücken einer geeigneten Taste: auf den meisten Systemen sollte es möglich sein, das Zeitfenster nach ein paar Versuchen zu treffen. Es können andere Tasten als die Leertaste verwandt werden, außer den oben aufgeführten Tasten. Falls die Anzeige des Menüs auf Anforderung nicht sehr gut funktioniert, sollten Sie darüber nachdenken, die Zeitüberschreitung auf einen Wert größer Null zu setzen, wodurch das Systemstart-Menü bedingungslos angezeigt wird. Einige Desktop-Umgebungen könnten anbieten, direkt in das Systemstart-Menü zu starten, um das Problem insgesamt zu vermeiden. Alternativ können Sie auch die Befehlszeile systemctl reboot --boot-loader-menu= mit einem von Null verschiedenen Wert auf der Shell verwenden.

Im Editor fügen die meisten Tasten einfach sich selbst ein, aber die folgenden Tasten können zur Ausführung zusätzlicher Aktionen verwandt werden:

← (Links), → (Rechts), Pos 1, Ende
    Links/Rechts navigieren

    Hinzugefügt in Version 239.

Esc, Strg+c
    Die Bearbeitung abbrechen und den Editor beenden

    Hinzugefügt in Version 239.

Strg+k
    Die Befehlszeile vorwärts leeren

    Hinzugefügt in Version 239.

Strg+w, Alt+Rückschritt
    Rückwärts ein Wort löschen

    Hinzugefügt in Version 239.

Strg+Entf, Alt+d
    Vorwärts ein Wort löschen

    Hinzugefügt in Version 239.

↵ (Eingabe)
    Systemladereintrag mit der bearbeiteten Befehlszeile

    Hinzugefügt in Version 239.

Beachten Sie, dass Systemd-boot die US-Tastaturbelegung verwenden wird, falls es nicht anders konfiguriert wurde, und daher die Tastenbezeichnungen für Tasten wie +/- nicht passen könnten.

DATEIEN

Die Dateien, die systemd-boot verarbeitet, befinden sich im Allgemeinen auf der UEFI ESP, die normalweise während der Laufzeit des Betriebssystems auf /efi/, /boot/ oder /boot/efi/ eingehängt ist. Es verarbeitet auch Dateien auf der Erweiterten Systemlade-Partition, die normalerweise auf /boot/ eingehängt ist, falls sie existiert.

systemd-boot liest Laufzeitkonfiguration wie die Systemstart-Zeitüberschreitung und den Vorgabeeintrag aus /loader/loader.conf aus dem ESP (zusammen mit aus EFI-Variablen gelesenen Daten). Siehe loader.conf(5).

Systemstarteintragbeschreibungsdateien, die der UAPI.1-Systemstartlader-Spezifikation[1] folgen, werden aus /loader/entries/ auf dem ESP und der Erweiterten Systemladepartition gelesen.

Vereinigte Kernel-Einträge, die der UAPI.1-Systemstartlader-Spezifikation[1] folgen, werden aus /EFI/ Linux/ auf der ESP und der »Extended Boot Loader«-Partition gelesen.

Optional wird ein Zufallsstartwert für die Bereitstellung der Entropie-Sammlung für die frühe Systemstartphase in /loader/random-seed in dem ESP gespeichert.

Während der Initialisierung lädt systemd-boot automatisch alle im Verzeichnis /EFI/systemd/drivers/ auf dem ESP abgelegten Treiberdateien. Die dort abgelegten Dateien müssen eine Erweiterung der EFI-Architekturkennung gefolgt von .efi haben (für x86-64 bedeutet dies beispielsweise eine Endung x64.efi). Dies kann zum automatischen Laden von Dateisystemtreibern und ähnlichem verwandt werden, um die Unterstützung der nativen Firmware zu erweitern.

Die Registrierung von Variablen für den sicheren Systemstart kann manuell oder automatisch erfolgen, falls Dateien unter /loader/keys/NAME/{db,dbx,KEK,PK}.auth verfügbar sind. NAME ist der Anzeigename für die Variablengruppe im Menü. Falls eine der Gruppen »auto« heißt, dann könnte sie automatisch registriert werden, abhängig davon, ob »secure-boot-enroll« auf »force« gesetzt ist.

EFI-VARIABLEN

Die folgenden EFI-Variablen sind definiert und können durch systemd-boot für die Kommunikation zwischen dem Systemstartlader und dem Betriebssystem gesetzt und gelesen werden. Die Lieferanten-UUID »4a67b082-0a4c-41cf-b6c7-440b29bb8c4f« wird in allen Fällen verwandt.

LoaderBootCountPath
    Falls Startzählung aktiviert ist, enthält dies den Pfad zu der Datei, in deren Namen die Startzähler kodiert sind. Wird durch den Systemstartlader gesetzt. systemd-bless-boot.service(8) verwendet diese Informationen, um einen Systemstart als erfolgreich zu markieren, wie dies durch die erfolgreiche Aktivierung der Ziel-Unit boot-complete.target bestimmt wird.

    Hinzugefügt in Version 240.

LoaderConfigTimeout, LoaderConfigTimeoutOneShot
    Die Menü-Zeitüberschreitung in Sekunden. Wird vom Systemstartlader gelesen. LoaderConfigTimeout wird dauerhaft verwaltet, während LoaderConfigTimeoutOneShot eine einmalige Außerkraftsetzung ist, die einmal gelesen wird (und in diesem Fall Vorrang vor LoaderConfigTimeout hat) und dann entfernt wird. LoaderConfigTimeout kann mit den Tasten t/T verändert werden, siehe oben.

    Hinzugefügt in Version 240.

LoaderConfigConsoleMode
    Der numerische Menükonsolenmodus. Wird vom Systemstartlader gelesen. LoaderConfigConsoleMode wird dauerhaft verwaltet. LoaderConfigConsoleMode kann mit den Tasten r/R verändert werden, siehe oben.

    Hinzugefügt in Version 250.

LoaderDevicePartUUID
    Enthält die Partitions-UUID der Partition, aus der das Systemstartprogramm für den aktuellen Systemstart heraus gestartet wurde (normalerweise eine EFI-Systempartition). Wird vom Systemstartlader gesetzt. (Beachten Sie, dass systemd-stub(7) dies auch setzen wird, falls es noch nicht gesetzt ist, um Systeme zu unterstützen, die unter Umgehung jedes Systemstartprogramms direkt in ein vereinigtes Kernelabbild starten.) systemd-gpt-auto-generator(8) verwendet diese Information, um automatisch die Platte zu finden, von der gestartet wurde, um die verschiedenen anderen Partitionen auf der gleichen Platte automatisch zu erkennen.

    Hinzugefügt in Version 220.

LoaderDeviceURL
    Falls das Systemstartprogramm über Netzwerksystemstart aufgerufen wurde, enthält diese Variable die Ursprungs-URL. Dies kann zum automatischen Erlangen von zusätzlichen Ressourcen aus der gleichen Quelle verwandt werden.

    Hinzugefügt in Version 258.

LoaderEntries
    Eine Liste der Kennzeichner aller erkannten Systemstartlader-Einträge. Wird vom Systemstartlader gesetzt.

    Hinzugefügt in Version 240.

LoaderEntryDefault, LoaderEntrySysFail, LoaderEntryOneShot
    Der Kennzeichner des Standard-Systemstartlader-Eintrags. Kann vom Betriebssystem und dem Systemstartlader gesetzt werden. LoaderEntryOneShot setzt den Vorgabeeintrag für nur den nächsten Systemstart, während LoaderEntryDefault ihn dauerhaft für alle zukünftigen Systemstarts setzt. Die Befehle set-default und set-oneshot von bootctl(1) verwenden diese Variablen. Der Systemstartlader verändert auf Anfrage LoaderEntryDefault, wenn die Taste »d« gedrückt wird, siehe oben.

    Hinzugefügt in Version 240.

LoaderEntryLastBooted
    Der Kennzeichner des zuletzt versuchten Systemstartladereintrags. Wird vom Systemstartladeprogramm nur gesetzt, wenn der Vorgabeeintrag in /loader/loader.conf auf »@saved« gesetzt ist. Siehe loader.conf(5).

    Das Systemstartladeprogramm stellt sicher, dass LoaderEntryLastBooted für jeden Systemstart aktuell ist. Es aktualisiert ihn bei Bedarf und unterlässt die Änderung komplett, wenn LoaderEntryOneShot gesetzt ist.

    Das Systemstartladeprogramm liest die Variable, die eine höhere Priorität als LoaderEntryDefault hat. Die Variable wird ignoriert, wenn LoaderEntryOneShot gesetzt ist.

    LoaderEntryLastBooted kann nicht als Indiz verwandt werden, ob der letzte Systemstart erfolgreich war.

    Hinzugefügt in Version 250.

LoaderEntrySelected
    Der Kennzeichner des Systemstartlader-Eintrags, der derzeit gestartet wird. Wird vom Systemstartlader gesetzt.

    Hinzugefügt in Version 240.

LoaderFeatures
    Eine Gruppe von Schaltern, die anzeigen, welche Funktionalitäten der Systemstartlader unterstützt. Wird vom Systemstartlader gesetzt. Verwenden Sie bootctl(1), um diese Daten anzuschauen.

    Hinzugefügt in Version 240.

LoaderFirmwareInfo, LoaderFirmwareType
    Kurze Firmware-Information. Wird vom Systemstartlader gesetzt. Verwenden Sie bootctl(1), um diese Daten anzuschauen.

    Hinzugefügt in Version 240.

LoaderTpm2ActivePcrBanks
    Hexadezimale Zeichenkettendarstellung einer Bitmaske mit Werten, die durch die TCG-EFI-Protokollspezifikation für TPM 2.0 als EFI_TCG2_BOOT_HASH_ALG_* definiert sind. Falls keine TPM2-Unterstützung oder keine aktiven Bänke erkannt wurden, wird dies auf 0 gesetzt. Wird durch das Systemstartprogramm gesetzt. Verwenden Sie systemd-analyze(1) zum Betrachten dieser Daten.

    Hinzugefügt in Version 258.

LoaderImageIdentifier
    Der Dateisystempfad zu dem EFI-Programm des Systemstartprogramms für den aktuellen Systemstart, relativ zum Wurzelverzeichnis der Partition (d.h. relativ zu der durch LoaderDevicePartUUID angezeigten Partition, siehe oben). Wird durch das Systemstartprogramm gesetzt. (Beachten Sie, das systemd-stub(7) sie auch setzen wird, wenn sie noch nicht gesetzt wurde, um Systeme zu unterstützen, die unter Umgehung jeglichen Systemstartprogramms direkt in das vereinigte Kernelabbild starten.). Verwenden Sie bootctl(1), um diese Daten anzuschauen.

    Hinzugefügt in Version 220.

LoaderInfo
    Kurze Informationen über den Systemstartlader. Wird vom Systemstartlader gesetzt. Verwenden Sie bootctl(1), um diese Daten anzuschauen.

    Hinzugefügt in Version 240.

LoaderTimeExecUSec, LoaderTimeInitUSec, LoaderTimeMenuUsec
    Informationen über die in verschiedenen Teilen des Systemstartladers verbrachte Zeit. Wird vom Systemstartlader gesetzt. Verwenden Sie systemd-analyze(1), um diese Daten anzuschauen.

    Hinzugefügt in Version 240.

LoaderSystemToken
    Ein binäres Zufallsdatenfeld, das zur Erzeugung des an das Betriebssystem zu übergebenen Zufallsstartwertes verwandt wird (siehe oben). Beachten Sie, dass diese Zufallsdaten im Allgemeinen nur einmal während der Betriebssysteminstallation erstellt und nie wieder aktualisiert werden.

    Hinzugefügt in Version 243.

Viele dieser Variablen werden durch die Systemstartladerschnittstelle[2] definiert.

SMBIOS-TYP-11-ZEICHENKETTEN

systemd-boot kann konfiguriert werden, SMBIOS-Typ-11-Zeichenketten zu verwenden. Anwendbare Zeichenketten bestehen aus einem Namen, gefolgt von »=«, gefolgt vom Wert. Außer wenn systemd-boot erkennt, dass es innerhalb einer vertraulichen Rechnerumgebung läuft, wird systemd-boot die Tabelle nach einer Zeichenkette mit dem bestimmten Namen durchsuchen und, falls er gefunden wird, seinen Wert verwenden. Die folgenden Zeichenketten werden gelesen:

io.systemd.boot.kernel-cmdline-extra
    Falls gesetzt, wird der Wert dieser Zeichenkette zu der Liste der Kernelbefehlszeilenargumente für Systemstartlader-Spezifikationstyp-1-Einträge hinzugefügt, die in PCR12 eingemessen und an den Kernel übergeben werden.

    Hinzugefügt in Version 256.

io.systemd.boot-entries.extra:ID=DEFINITION
    Dies ermöglicht das Einfügen zusätzlicher Einträge in das systemd-boot-Menü. Akzeptiert ein Paar aus Menüeintragskennzeichner und Menüedefinitionszeichenkette. Ersterer sollte zur Verwendung als Dateiname für einen Systemstartspezifikation-Typ-#1-Eintragsdateinamen geeignet sein (beachten sie, dass dies nur zu Zwecken der Identifikation verwandt wird, es wird auf keine Datei mit diesem Namen tatsächlich zugegriffen). Letzterer sollte der Syntax für Inhalte von Type-#1-Einträgen folgen. Jeder auf diesem Weg definierte Menüeintrag wird verarbeitet und auf ziemlich die gleiche Art wie ein Typ-#1-Eintrag angezeigt, der von der ESP- oder XBOOTLDR-Partition gelesen wird. Beispiel:

        io.systemd.boot-entries.extra:fooos-current.conf=title FooOS (Aktuell)
        uki-url http://example.com/somedir/fooos.efi

    Beachten Sie, dass dieses Beispiel ein Zeilenumbruchzeichen enthält. Bei der Erstellung dieser Zeichenkette aus einer Shell muss darauf geachtet werden, es korrekt zu kodieren:

    Übergeben Sie mehrere, auf diese Art formatierte Zeichenketten, um mehrere Menüeinträge zu erstellen.

    Hinzugefügt in Version 258.

io.systemd.boot.loglevel
    Falls gesetzt, wird der Wert dieser Zeichenkette als Protokollierungsstufe verwandt. Gültige Werte (absteigend vom kritischsten) sind: »emerg«, »alert«, »crit«, »err«, »warning«, »notice«, »info« und »debug«.

    Hinzugefügt in Version 259.

STARTZÄHLUNG

systemd-boot implementiert einen einfachen Startzählungsmechanismus auf Grundlage der UAPI.1-Systemstartlader-Spezifikation[1], für automatischen und unbeaufsichtigten Rückfall zu älteren Kernelversionen/Systemstartlader-Einträgen, wenn ein bestimmter Eintrag dauerhaft fehlschlägt. Alle Systemstartlader-Eintragsdateien und vereinigte Kernel-Image-Dateien, bei denen ein »+« von einer oder mehreren Zahlen (falls es zwei sind, müssen sie durch ein »-« getrennt werden) vor der Endung ».conf« oder ».efi« gefolgt ist, unterliegen der Startzählung: die erste der zwei Zahlen (»verbliebene Einträge«) wird bei jedem Systemstartversuch heruntergezählt, die zweite der zwei Zahlen (»unternommene Versuche«) wird um einen erhöht (falls »unternommene Versuche« nicht vorhanden ist, wird es als 0 angenommen). Abhängig vom aktuellen Wert dieser zwei Zähler wird der Systemstart-Eintrag einem der drei Zustände zugeordnet:

    1. Falls der Zähler »verbliebene Einträge« eines Eintrages größer als Null ist, wird der Eintrag dem Zustand »unbestimmt« zugeordnet. Das bedeutet, dass der Eintrag noch nicht erfolgreich gestartet wurde, aber auch noch nicht als nicht funktionstüchtig erkannt wurde.

    2. Falls der Zähler »verbliebene Einträge« eines Eintrages gleich Null ist, wird der Eintrag in einem »schlechten« Zustand angenommen. Das bedeutet, dass keine weiteren Versuche unternommen werden, diesen Eintrag zu starten (das bedeutet, außer alle anderen Systemlader-Einträge sind auch in einem »schlechten« Zustand), da alle Versuche, diesen Eintrag zu starten, nicht erfolgreich abgeschlossen wurden.

    3. Falls die Zähler »verbliebene Einträge« und »unternommene Versuche« eines Eintrags fehlen, wird er in einem »guten« Zustand angenommen. Das bedeutet, dass weiteres Startzählen für diesen Eintrag abgeschaltet ist, da er mindestens einmal erfolgreich startete. Der Dienst systemd-bless-boot.service(8) verschiebt den aktuell gestarteten Eintrag vom Zustand »unbestimmt« in den Zustand »gut«, wenn ein Systemstartversuch erfolgreich abgeschlossen wurde.

Im Allgemeinen befinden sich neu hinzugefügte Einträge zum Systemstartlader zuerst im Zustand »unbestimmt«, d.h. mit dem Zähler »verbliebene Einträge« größer als Null. Der Systemstarteintrag verbleibt in diesem Zustand, bis er entweder mindestens einmal erfolgreich durchgeführt wurde (woraufhin er sich im Zustand »gut« befindet) — oder der Zähler »verbliebene Einträge« erreicht Null (woraufhin er sich im Zustand »schlecht« befindet).

Beispiel: Die Systemstartladereintragsdatei foo.conf ist für 3 Startversuche eingerichtet. Das Installationsprogramm wird es daher unter dem Namen foo+3.conf erstellen. Beim ersten Systemstart wird der Systemlader ihn in foo+2-1.conf umbenennen. Falls dieser Systemstart nicht erfolgreich abgeschlossen werden kann, wird ihn der Systemstartlader in foo+1-2.conf beim nachfolgenden Systemstart umbenennen. Falls dieser auch fehlschlägt, wird er schließlich in foo+0-3.conf beim nachfolgenden Systemstart umbenannt, anschließend wird er als »schlecht« betrachtet. Falls allerdings der Systemstart erfolgreich abgeschlossen wird, wird die Eintragsdatei durch das Betriebssystem in foo.conf umbenannt, so dass sie von diesem Zeitpunkt an als »gut« betrachtet wird.

Das Systemstartmenü berücksichtigt den Zähler »verbliebene Einträge« bei der Sortierung der Menüeinträge: Einträge im »schlechten« Zustand werden am Anfang der Liste einsortiert und Einträge im »guten« oder »unbestimmten« Zustand am Ende. Der Benutzer kann frei den zu startenden Eintrag aus dem Menü aussuchen, auch die bereits als »schlecht« markierten. Falls der zu startende Eintrag automatisch bestimmt wird, bedeutet dies, dass »gute« oder »unbestimmte« Einträge im Allgemeinen bevorzugt werden (da der unterste Eintrag im Menü standardmäßig gestartet wird) und »schlechte« Einträge nur berücksichtigt werden, falls keine »guten« oder »unbestimmten« Einträge verblieben sind.

Das Kernelinstallationsrahmenwerk kernel-install(8) setzt optional den anfänglichen Zähler »verbliebene Einträge« auf den in /etc/kernel/tries festgelegten Wert, wenn ein Systemstarteintrag erstmals erstellt wird.

VERWENDUNG VON SYSTEMD-BOOT IN VIRTUELLEN MASCHINEN

Bei der Verwendung von Qemu[4] mit OVMF[5] (UEFI Firmware für virtuelle Maschinen) funktioniert der Schalter -kernel nicht nur für Linux-Kernel, sondern für jedes EFI-Programm, einschließlich systemd-boot und vereinigte Linux-Kernel (UKI). Zum Laden von systemd-boot auf X64 kann beispielsweise folgende Befehlszeile dienen:

qemu-system-x86_64 -drive if=pflash,format=qcow2,readonly=on,file=/usr/share/edk2/ovmf/OVMF_CODE_4M.qcow2 -kernel /usr/lib/systemd/boot/efi/systemd-bootx64.efi -drive file=… [ … ]

(Der Pfad zu der Firmware-Dtei könnte abhängig von der Distribution angepasst werden müssen.) systemd-boot wird erkennen, dass es direkt gestartet wurde, statt vom ESP geladen zu werden und wird in diesem Fall nach dem ESP suchen und dabei die Systemstartreihenfolgeinformationen vom Hypervisor berücksichtigen (falls verfügbar). Beachten Sie, dass ein weiteres Argument -drive verwandt werden muss, um das tatsächliche Plattenabbild an ein ESP anzuhängen, damit dies ein nützliches Ergebnis liefert.

SIEHE AUCH

bootctl(1), loader.conf(5), systemd-bless-boot.service(8), systemd-boot-random-seed.service(8), kernel-install(8), systemd-stub(7), UAPI.1-Systemstartlader-Spezifikation[1], Systemstartlader-Schnittstelle[2], Von Systemd durchgeführte TPM2-PCR-Messungen[6]

ANMERKUNGEN

1.  UAPI.1-Systemstartladerspezifikation
    https://uapi-group.org/specifications/specs/boot_loader_specification

2.  Systemstartlader-Schnittstelle
    https://systemd.io/BOOT_LOADER_INTERFACE

3.  Automatische Systemstartbeurteilung
    https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT

4.  Qemu
    https://www.qemu.org/docs/master/

5.  OVMF
    https://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt

6.  Von Systemd durchgeführte TPM2-PCR-Messungen
    https://systemd.io/TPM2_PCR_MEASUREMENTS

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