BOOTCTL(1) bootctl BOOTCTL(1)

bootctl - Steuern der EFI-Firmware-Systemstarteinstellungen und Verwalten des Systemladeprogramms

ÜBERSICHT

bootctl [OPTIONEN…] {BEFEHL}

bootctl kann den EFI-Firmware und Systemladerzustand prüfen, verfügbare Systemladeprogramme und -einträge auflisten und verwalten und auf dem aktuellen System den systemd-boot(7)-Systemlader installieren, aktualisieren oder entfernen.

Diese Befehle sind unabhängig vom verwandten Systemladeprogramm auf jedem EFI-System verfügbar.

status

Zeigt eine kurze Information über die Firmware des Systems, das Systemstartprogramm, das zum Starten des Systems verwandt wurde, die derzeit in der ESP verfügbaren Systemstartprogramme, die in der Liste der Systemstartprogramme der Firmware aufgeführten Systemstartprogramme und den derzeitigen Standardsystemstartprogrammeintrag an. Falls kein Befehl angegeben ist, ist dies die implizierte Vorgabe.

Siehe das nachfolgende Beispiel für Details zur Ausgabe.

reboot-to-firmware [LOGISCH]

Fragt den Schalter »Neustart-in-die-Firmware-Einrichtung« der EFI-Firmware ab oder setzt diesen. Akzeptiert ein logisches Argument, das steuert, ob die Firmware-Einrichtung beim nächsten Systemneustart angezeigt wird. Falls das Argument nicht angegeben wird, wird der aktuelle Zustand des Schalters angezeigt, oder ob der Schalter unterstützt wird. Dies steuert den gleichen Schalter wie systemctl reboot --firmware-setup, ist aber systemnäher und erlaubt die Einstellung des Schalters unabhängig von der tatsächlichen Neustartaufforderung.

Tipp: Verwenden Sie systemctl reboot --firmware-setup, um einmalig in die Firmware-Einstellungen neuzustarten. Siehe systemctl(1) für Details.

systemd-efi-options [ZEICHENKETTE]

Gibt beim Aufruf ohne Argument den Wert der EFI-Variablen »SystemdOptions« aus. Beim Aufruf mit Argument wird die Variable auf diesen Wert gesetzt. Siehe systemd(1) für die Bedeutung dieser Variablen.

Diese Befehle sind für alle Systemstartprogramme verfügbar, die die Systemladerspezifikation[1] und/oder die Systemladerschnittstelle[2] implementieren, wie systemd-boot.

list

Zeigt alle verfügbaren Systemstartprogrammeinträge, die die Systemstartprogrammspezifikation[1] implementieren, sowie jeden anderen erkannten oder automatisch durch das Systemstartprogramm erstellten Eintrag, der durch ein Systemstartprogramm erstellt wurde, der die Systemladerschnittstelle[2] implementiert. JSON-Ausgabe kann mittels --json= erbeten werden.

Siehe das nachfolgende Beispiel für Details zur Ausgabe.

set-default KENNUNG, set-oneshot KENNUNG

Setzt den Standard-Systemstartprogrammeintrag. Akzeptiert eine einzelne Systemstartprogrammeintragskennungszeichenkette oder ein Glob-Muster als Argument. Der Befehl set-oneshot setzt den Vorgabeeintrag nur für den nächsten Systemstart, set-default setzt ihn dauerhaft für alle zukünftigen Systemstarts.

bootctl list kann zur Auflistung verfügbarer Systemladereinträge und ihrer Kennungen verwandt werden.

Zusätzlich kann die Systemstartpogrammladeeintragskennung als eine der folgenden angegeben werden: @default, @oneshot oder @current, was dem aktuellen Standardsystemstartladeeintrag für alle zukünftigen Systemstarts, dem aktuellen Vorgabe-Systemstartladeeintrag für den nächsten Systemstart und dem derzeit gestarteten Systemstartladeeintrag entspricht. Diese besonderen Kennungen werden auf die aktuellen Werte der EFI-Variablen LoaderEntryDefault, LoaderEntryOneShot und LoaderEntrySelected aufgelöst, siehe Systemladerspezifikation[1] für Details. Diese besonderen Kennungen sind primär als schnelle Angabe nützlich, um den aktuellen Systemstartladeeintrag dauerhaft als Vorgabeauswahl zu setzen oder den aktuellen Systemstartladeeintrag für den nächsten Systemstart auf den Standard-Systemstartladeeintrag für alle zukünftigen Systemstarts zu aktualisieren, kann aber auch für andere Aktionen verwandt werden.

Falls auf @saved gesetzt wird der ausgewählte Eintrag bei jedem Systemstart als eine EFI-Variable gesetzt und automatisch ausgewählt, wenn das Systemladeprogramm das nächste Mal startet.

Wenn die leere Zeichenkette ("") als die Kennung angegeben wird, dann wird die entsprechende EFI-Variable zurückgesetzt.

Tipp: Verwenden Sie systemctl reboot --boot-loader-entry=Kennung, um in einen bestimmten Systemstarteintrag neuzustarten und systemctl reboot --boot-loader-menu=Zeitüberschreitung, um einmalig in das Systemladermenü neuzustarten. Siehe systemctl(1) für Details.

set-timeout ZEITÜBERSCHREITUNG, set-timeout-oneshot ZEITÜBERSCHREITUNG

Setzt die Zeitüberschreitung des Systemstartmenüs in Sekunden. Der Befehl set-timeout-oneshot setzt die Zeitüberschreitung nur für den nächsten Systemstart. Siehe systemd.time(7) für Details über die Syntax von Zeitspannen.

Falls auf menu-hidden oder 0 gesetzt, wird kein Menü gezeigt und der Vorgabeeintrag wird sofort gestartet, während die Einstellung menu-force die Zeitüberschreitung deaktiviert und das Menü immer zeigt. Wird eine leere Zeichenkette ("") angegeben, wird das Systemstartprogramm zu seiner Standard-Menü-Zeitüberschreitung zurückkehren.

Diese Befehle verwalten das EFI-Systemstartprogramm systemd-boot und funktionieren nicht mit anderen Systemstartprogrammen zusammen.

install

Installiert systemd-boot in die EFI-Systempartition. Eine Kopie von systemd-boot wird in dem EFI-Standard/Ausweich-Lader unter ESP/EFI/BOOT/BOOT*.EFI gespeichert. Das Systemstartprogramm wird dann am Anfang der Systemstartprogrammliste der Firmware hinzugefügt.

update

Aktualisiert alle installierten Versionen von systemd-boot(7), falls die verfügbare Version neuer als die in der EFI-System-Partition installierte ist. Dies beinhaltet den EFI-Standard/Ausweich-Lader unter ESP/EFI/BOOT/BOOT*.EFI. Das Systemstartprogramm wird dann am Ende der Systemstartprogrammliste der Firmware hinzugefügt, falls es fehlt.

remove

Entfernt alle installierten Versionen von systemd-boot aus der EFI-Systempartition und der Systemstartprogrammliste der Firmware.

is-installed

Prüft, ob systemd-boot in der ESP installiert ist. Beachten Sie, dass ein einzelner ESP mehrere Systemstartprogramme beherbergen kann; daher prüft dies, ob systemd-boot einer (unter möglicherweise vielen) installierten Systemstartprogrammen ist. Es prüft auch, ob es das Vorgabesystemstartprogramm ist und ob es in irgendwelchen EFI-Variablen registriert ist.

random-seed

Erstellt einen Zufallsstartwert und speichert ihn für die Verwendung durch das Systemstartprogramm systemd-boot in der EFI-Systempartition. Erstellt auch ein zufälliges »Systemmerkmal« und speichert es dauerhaft als eine EFI-Variable, falls es nicht bereits vorher gesetzt wurde. Falls das Systemstartprogramm einen Zufallsstartwert in der ESP und das Systemmerkmal in der EFI-Variable findet, wird es aus einer Kombination aus beiden einen Zufallsstartwert ableiten, um ihn an das Betriebssystem weiterzugeben und einen neuen Startwert, um ihn in der ESP zu speichern. Der an das Betriebssystem weitergegebene Zufallsstartwert wird dem Entropie-Fundus des Kernels während der frühen Systemstartphase gutgeschrieben und erlaubt es Programmen auf der Anwendungsebene, mit einem Entropie-Fundus hochzufahren, der von einem frühen Zeitpunkt an bereits komplett initialisiert ist. Siehe auch systemd-boot-system-token.service(8).

Siehe Zufallsstartwerte[3] für weitere Informationen.

Die folgenden Optionen werden verstanden:

--esp-path=

Pfad zu der EFI-Systempartition (ESP). Falls nicht angegeben, werden /efi/, /boot/ und /boot/efi/ der Reihe nach geprüft. Es wird empfohlen, falls möglich, die ESP unter /efi/ einzuhängen.

--boot-path=

Pfad zu der »Extended Boot Loader«-Partition, wie diese in der Systemladerspezifikation[1] definiert ist. Falls nicht angegeben, wird /boot/ geprüft. Es wird empfohlen, falls möglich, die »Extended Boot Loader«-Partition unter /boot/ einzuhängen.

--root=Wurzel

Akzeptiert einen Verzeichnispfad als Argument. Allen Pfaden wird der angegebene alternative Wurzel-Pfad vorangestellt, einschließlich der Suchpfade für die Konfiguration.

--image=Abbild

Akzeptiert einen Pfad zu einer Plattenabbilddatei oder einem Blockgerätenamen. Falls angegeben, werden alle Aktionen auf das Dateisystem in dem angegebenen Plattenabbild angewandt. Diese Option ist ähnlich zu --root=, agiert aber auf Dateisystemen, die in Plattenabbildern oder Blockgeräten gespeichert sind. Das Plattenabbild sollte entweder nur ein Dateisystem oder eine Reihe von Dateisystemen innerhalb einer GPT-Partitionstabelle enthalten, die der Spezifikation für auffindbare Partitionen[4] folgt. Für weitere Informationen über unterstützte Plattenabbilder, siehe den Schalter von systemd-nspawn(1) mit dem gleichen Namen.

--install-source=

Bei der Installation von Programmen mit --root= oder --image= wählt dies aus, woher diese stammen. Akzeptiert entweder »auto« (die Vorgabe), »image« oder »host«. Mit »auto« werden die Programme auf dem angegebenen Verzeichnis oder Abbild aufgenommen und falls sie nicht gefunden werden, werden sie vom Rechner aufgenommen. Mit »image« oder »host« wird keine Rückfallsuche durchgeführt, falls die Programme nicht in der ausgewählten Quelle gefunden werden.

-p, --print-esp-path

Diese Option verändert das Verhalten von status. Es werden nur die Pfade zu der EFI-Systempartition (ESP) auf der Standardausgabe ausgegeben und das Programm beendet.

-x, --print-boot-path

Diese Option verändert das Verhalten von status. Gibt in die Standardausgabe nur den Pfad zu der »Extended Boot Loader«-Partition aus, falls diese existiert, und andernfalls den Pfad zur ESP. Danach beendet er sich. Dieser Befehl ist nützlich, um zu bestimmen, wo Boot-Loader-Einträge abgelegt werden, da sie bevorzugt in die »Extended Boot Loader«-Partition abgelegt werden, falls diese existiert, und andernfalls in der ESP.

Systemladerspezifikationseinträge vom Typ #1 sollten im Allgemeinen im Verzeichnis »$(bootctl -x)/loader/entries/« abgelegt werden. Die Existenz dieses Verzeichnisses kann auch als Anzeichen dafür verwandt werden, dass auf dem System die Unterstützung für Systemladeeinträge verfügbar ist. Ähnlich sollten Systemladerspezifikationseinträge vom Typ #2 im Verzeichnis »$(bootctl -x)/EFI/Linux/« abgelegt werden.

Beachten Sie, dass diese Option (ähnlich der oben erwähnten Option --print-booth-path) unabhängig vom verwandten Systemstartprogramm verfügbar ist, d.h. auch ohne dass systemd-boot installiert ist.

--no-variables

Fasst die Liste der Systemladeprogramme der Firmware, die in EFI-Variablen gespeichert ist, nicht an.

--graceful

Ignoriert Fehlschläge, wenn die EFI-Systempartition nicht gefunden, die EFI-Variablen nicht geschrieben werden können oder ein anderes oder neueres Systemstartprogramm bereits installiert ist. Gilt derzeit nur für die Unterbefehle is-installed, update und random-seed.

-q, --quiet

Unterdrückt die Ausgabe der Ergebnisse von verschiedenen Befehlen und auch der Hinweise, dass der ESP nicht verfügbar ist.

--make-entry-directory=yes|no

Steuert die Erstellung und Löschung der Systemladerspezifikation[1] Typ-#1-Eintragsverzeichnisse auf dem Dateisystem, das die Ressourcen wie Kernel- und Initrd-Abbilder während install bzw. remove enthält. Das Verzeichnis wird nach dem Eintragsmerkmal benannt, wie dieses mit dem nachfolgend beschriebenen Parameter --entry-token= angegeben wird, und wird direkt unterhalb des $BOOT Wurzelverzeichnisses abgelegt (d.h. unterhalb des Dateisystems, das von der Option --print-boot-path zurückgeliefert wird, siehe oben). Standardmäßig »no«.

--entry-token=

Steuert, wie die Systemstartprogrammeinträge für diese Betriebssysteminstallation benannt und identifiziert werden sollen. Wird während install berücksichtigt und akzeptiert entweder »auto«, »machine-id«, »os-id«, »os-image-id« oder eine beliebige Zeichenkette, der »literal:« vorangestellt ist, als Argument.

Wird dies auf machine-id gesetzt, dann werden die Einträge nach der Maschinenkennung des laufenden Systems benannt (z.B. »b0e793a9baf14b5fa13ecbe84ff637ac«). Siehe machine-id(5) für Details über das Konzept der Maschinenkennung und der Datei.

Falls auf os-id gesetzt, werden die Einträge nach der Betriebssystemkennung des laufenden Systems benannt, d.h. dem Feld ID= von os-release(5) (z.B. »fedora«). Ähnlich werden die Einträge nach der Betriebssystem-Abbild-Kennung des laufenden Systems benannt, falls es auf os-image-id gesetzt ist, d.h. dem Feld IMAGE_ID= von os-release (z.B. »vendorx-cashier-system«).

Falls auf auto (der Vorgabe) gesetzt, wird die Datei /etc/kernel/entry-token eingelesen, falls sie existiert, und der gespeicherte Wert wird verwandt. Andernfalls wird die lokale Maschinenkennung verwandt, falls diese initialisiert wurde. Andernfalls wird IMAGE_ID= aus os-release verwandt, falls gesetzt. Andernfalls wird ID= aus os-release verwandt, falls gesetzt.

Die ausgewählte Merkmalzeichenketten wird in eine Datei /etc/kernel/entry-token geschrieben, außer »machine-id« ist gesetzt oder --make-entry-directory=yes wird verwandt, um sicherzustellen, das sie für zukünftige Einträge verwandt wird. Diese Datei wird auch von kernel-install(8) eingelesen, um zu ermitteln, unter welchem Namen Systemstarteinträge für neu installierte Kernel erstellt werden oder die Eintragsnamen zum Entfernen alter zu bestimmen.

Die Verwendung der Maschinenkennung zur Benennung der Einträge sollte bevorzugt werden, allerdings gibt es Fälle, bei denen die Verwendung anderer Kennzeichner eine gute Option ist. Insbesondere dann, wenn die Kennzeichnungsdaten, die die Maschinenkennung enthält, nicht auf der (unverschlüsselten) Partition $BOOT gespeichert werden sollen oder falls die Kennung nicht beim ersten Systemstart erstellt werden soll und es nicht bekannt ist, wenn die Einträge vorbereitet werden. Beachten Sie, dass die Verwendung der Maschinenkennung den Vorteil hat, dass mehrere parallele Installationen des gleichen Betriebssystems auf dem gleichen Medium koexistieren können und dass sie ihre Systemstartladereinträge unabhängig voneinander aktualisieren können. Bei der Verwendung eines anderen Kennzeichners (wie der Betriebssystemkennung oder der Betriebssystem-Abbildkennung), würden parallele Installationen des gleichen Betriebssystems versuchen, den gleichen Eintragsnamen zu verwenden. Um parallele Installationen zu unterstützen, muss das Installationsprogramm verschiedene Eintragskennzeichnungen beim Hinzufügen einer zweiten Installation verwenden.

--all-architectures

Installiert Programme für alle unterstützten EFI-Architekturen (dies impliziert --no-variables).

--efi-boot-option-description=

Beschreibung des zu der Systemstart-Optionsliste der Firmware hinzugefügten Eintrags. Standardmäßig »Linux Boot Manager«.

Die Verwendung des Vorgabe-Eintragsnamens »Linux Boot Manager« wird im Allgemeinen bevorzugt, da nur ein Systemladeprogramm, installiert auf einer einzelnen ESP-Partition zum Starten einer Reihe von Betriebssysteminstallationen verwandt werden sollte, die auf verschiedenen Platten im System installiert sind. Insbesondere sollten Distributionen diesen Schalter nicht verwenden, um einen an sie angepassten Eintrag in der Systemstart-Optionsliste zu installieren. In Situationen mit mehreren Platten, jeweils mit ihrer eigenen ESP-Partition, kann es von Vorteil sein, die Identifikation der zu verwendenden Systemstartladeprogramme in dem Systemstart-Optionsmenü der Firmware zu erleichtern.

--no-pager

Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

--json=MODUS

Zeigt die Ausgabe als JSON formatiert. Erwartet entweder »short« (für die kürzest mögliche Ausgabe ohne unnötigen Leerraum oder Zeilenumbrüche), »pretty« (für eine schönere Version der gleichen Ausgabe, mit Einzügen und Zeilenumbrüchen) oder »off« (um die standardmäßig aktivierte JSON-Ausgabe auszuschalten).

-h, --help

Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version

Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

bootctl install und update werden zuerst nach einer systemd-boot-Datei mit der Endung ».efi.signed« suchen und diese statt der normalen Datei ».efi« kopieren. Dies ermöglicht es Distributionen oder Endbenutzern, signierte Abbilder für UEFI SecureBoot bereitzustellen.

Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.

Falls $SYSTEMD_RELAX_ESP_CHECKS=1 gesetzt ist, werden die Gültigkeitsprüfungen für die ESP gelockert und der mit --esp-path= angegebene Pfad kann sich auf jede Art von Dateisystem auf jeder Art von Partition beziehen.

Ähnlich schaltet $SYSTEMD_RELAX_XBOOTLDR_CHECKS=1 einige Validierungsprüfungen für die »Extended Boot Loader«-Partition aus.

Beispiel 1. Ausgabe des Staus und der Liste

$ bootctl status
System:

Firmware: UEFI 2.40 (firmware-version) ← Firmware-Lieferant und -Version
Secure Boot: disabled (setup) ← Status des sicheren Systemstarts
TPM2 Support: yes
Boot into FW: supported ← Unterstützt die Firmware den Systemstart in sich selbst Current Boot Loader: ← Details über sd-boot oder ein anderes Systemstartladerprogramm,
Product: systemd-boot version das die Boot-Loader-Schnittstelle[2] implementiert
Features: ✓ Boot counting
✓ Menu timeout control
✓ One-shot menu timeout control
✓ Default entry control
✓ One-shot entry control
✓ Support for XBOOTLDR partition
✓ Support for passing random seed to OS
✓ Load drop-in drivers
✓ Boot loader sets ESP information
ESP: /dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000
File: └─/EFI/systemd/systemd-bootx64.efi Random Seed: ← Zufallsstartwert, der für Entropie in der frühen Systemstartphase verwandt wird
Passed to OS: yes
System Token: set
Exists: yes Available Boot Loaders on ESP:
ESP: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000)
File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 251
File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 251 Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/...
File: └─/EFI/systemd/systemd-bootx64.efi
Title: Fedora
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/...
File: └─/EFI/fedora/shimx64.efi
Title: Linux-Firmware-Updater
ID: 0x0002
Status: active, boot-order
Partition: /dev/disk/by-partuuid/...
File: └─/EFI/fedora/fwupdx64.efi Boot Loader Entries:
$BOOT: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000) Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Fedora Linux 36 (Workstation Edition)
id: …
source: /boot/efi/loader/entries/Eintragsmerkmal-Kernelversion.conf
version: Kernelversion
machine-id: …
linux: /Eintragsmerkmal/Kernelversion/linux
initrd: /Eintragsmerkmal/Kernelversion/initrd
options: root=…
$ bootctl list
Boot Loader Entries:

type: Boot Loader Specification Type #1 (.conf)
title: Fedora Linux 36 (Workstation Edition) (default) (selected)
id: …
source: /boot/efi/loader/entries/Eintragsmerkmal-Kernelversion.conf
version: Kernelversion
machine-id: …
linux: /Eintragsmerkmal/Kernelversion/linux
initrd: /Eintragsmerkmal/Kernelversion/initrd
options: root=…
type: Boot Loader Specification Type #2 (.efi)
title: Fedora Linux 35 (Workstation Edition)
id: …
source: /boot/efi/EFI/Linux/fedora-Kernelversion.efi
version: Kernelversion
machine-id: …
linux: /EFI/Linux/fedora-Kernelversion.efi
options: root=…
type: Automatic
title: Reboot Into Firmware Interface
id: auto-reboot-to-firmware-setup
source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

In der Auflistung gibt »(default)« den Eintrag an, der standardmäßig verwandt wird und »(selected)« gibt den Eintrag an, der letztes Mal ausgewählt wurde (d.h. der aktuell läuft).

systemd-boot(7), Systemladerspezifikation[1], Systemladerschnittstelle[2], systemd-boot-system-token.service(8)

1.
Systemladerspezifikation
2.
Boot-Loader-Schnittstelle
3.
Zufallsstartwerte
4.
Spezifikation für auffindbare Partitionen

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