bootctl - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

bootctl - Steuern Sie die EFI-Firmware-Starteinstellungen und verwalten Sie den Bootloader

ZUSAMMENFASSUNG

bootctl [OPTIONS...] {COMMAND}

BESCHREIBUNG

bootctl kann die EFI-Firmware und den Bootloader-Status überprüfen, verfügbare Bootloader und Bootloader-Einträge auflisten und verwalten sowie systemd-boot(7) installieren, aktualisieren oder entfernen. Bootloader auf dem aktuellen System.

ALLGEMEINE EFI-FIRMWARE-/BOOTLOADER-BEFEHLE

Diese Befehle sind auf jedem EFI-System verfügbar, unabhängig vom verwendeten Bootloader.

status

Zeigt kurze Informationen über die System-Firmware, den Bootloader, der zum Booten des Systems verwendet wurde, die aktuell im ESP verfügbaren Bootloader, die in der Firmware-Liste der Bootloader aufgeführten Bootloader und den aktuellen Standard-Bootloader-Eintrag an. Wenn kein Befehl angegeben ist, ist dies die implizite Standardeinstellung.

Einzelheiten zur Ausgabe finden Sie im Beispiel unten.

reboot-to-firmware [BOOL]

Fragen Sie das Flag „Reboot-Into-Firmware-Setup“ der EFI-Firmware ab oder setzen Sie es. Akzeptiert ein boolesches Argument, das steuert, ob das Firmware-Setup beim nächsten Systemneustart angezeigt werden soll. Wenn das Argument weggelassen wird, wird der aktuelle Status des Flags angezeigt oder ob das Flag unterstützt wird. Dies steuert das gleiche Flag wie systemctl reboot --firmware-setup, ist jedoch auf niedrigerer Ebene und ermöglicht das Setzen des Flags unabhängig von der tatsächlichen Anforderung eines Neustarts.

Hinweis: Verwenden Sie systemctl reboot --firmware-setup, um das Firmware-Setup einmal neu zu starten. Weitere Informationen finden Sie unter systemctl(1).

systemd-efi-options [STRING]

Beim Aufruf ohne das optionale Argument wird der aktuelle Wert der EFI-Variablen „SystemdOptions“ gedruckt. Beim Aufruf mit einem Argument wird die Variable auf diesen Wert gesetzt. Siehe systemd(1) für die Bedeutung dieser Variablen.

BOOTLOADER-SPEZIFIKATIONSBEFEHLE

Diese Befehle sind für alle Bootloader verfügbar, die die Boot Loader Specification[1] implementieren, wie zum Beispiel systemd-boot.

list

Zeigt alle verfügbaren Bootloader-Einträge an, die die Boot Loader-Spezifikation[1] implementieren, sowie alle anderen Einträge, die von einem Bootloader erkannt oder automatisch generiert werden, der die Boot Loader-Schnittstelle[2 implementiert ]. Die JSON-Ausgabe kann mit --json= angefordert werden.

Einzelheiten zur Ausgabe finden Sie im Beispiel unten.

unlink ID

Entfernt einen Bootloader-Eintrag einschließlich der Dateien, auf die er verweist. Akzeptiert eine einzelne Bootloader-Eintrags-ID-Zeichenfolge oder ein Glob-Muster als Argument. Referenzierte Dateien wie kernel oder initrd werden nur entfernt, wenn kein anderer Eintrag auf sie verweist.

cleanup

Entfernt Dateien aus den ESP- und XBOOTLDR-Partitionen, die zum Eintragstoken gehören, auf die aber in keinem Bootloader-Eintrag verwiesen wird.

BEFEHLE DER BOOTLOADER-SCHNITTSTELLE

Diese Befehle sind für alle Bootloader verfügbar, die die Boot Loader Specification[1] und die Boot Loader Interface[2] implementieren, wie zum Beispiel systemd-boot.

set-default ID, set-oneshot ID

Legt den Standard-Bootloader-Eintrag fest. Akzeptiert eine einzelne Bootloader-Eintrags-ID-Zeichenfolge oder ein Glob-Muster als Argument. Der Befehl set-oneshot legt den Standardeintrag nur für den nächsten Start fest, der Befehl set-default legt ihn dauerhaft für alle zukünftigen Starts fest.

Mit bootctl list können verfügbare Bootloader-Einträge und deren IDs aufgelistet werden.

Darüber hinaus kann die Bootloader-Eintrags-ID als eine der folgenden angegeben werden: @default, @oneshot oder @current, die dem aktuellen entsprechen Standard-Bootloader-Eintrag für alle zukünftigen Startvorgänge, der aktuelle Standard-Bootloader-Eintrag für den nächsten Start und der aktuell gestartete Bootloader-Eintrag. Diese speziellen IDs werden in die aktuellen Werte der EFI-Variablen LoaderEntryDefault, LoaderEntryOneShot und LoaderEntrySelected aufgelöst, siehe Boot Loader Specification [1] für Details. Diese speziellen IDs sind in erster Linie als schnelle Möglichkeit nützlich, den aktuell gebooteten Bootloader-Eintrag dauerhaft zur Standardauswahl zu machen oder den Standard-Bootloader-Eintrag für den nächsten Start auf den Standard-Bootloader-Eintrag für alle zukünftigen Starts zu aktualisieren, können aber auch verwendet werden auch für andere Operationen.

Bei Einstellung auf @saved wird der ausgewählte Eintrag bei jedem Start als EFI-Variable gespeichert und beim nächsten Start des Bootloaders automatisch ausgewählt.

Wenn eine leere Zeichenfolge ("") als ID angegeben wird, wird die entsprechende EFI-Variable nicht gesetzt.

Hinweis: Verwenden Sie systemctl reboot --boot-loader-entry=ID, um in einem bestimmten Boot-Eintrag neu zu starten, und systemctl reboot --boot-loader-menu=<timeout für einen einmaligen Neustart im Bootloader-Menü. Weitere Informationen finden Sie unter systemctl(1).

set-timeout TIMEOUT, set-timeout-oneshot TIMEOUT

Legt den Timeout des Bootloader-Menüs in Sekunden fest. Der Befehl set-timeout-oneshot legt das Timeout nur für den nächsten Start fest. Einzelheiten zur Syntax von Zeitspannen finden Sie unter systemd.time(7).

Wenn dies auf menu-hidden oder 0 eingestellt ist, wird kein Menü angezeigt und der Standardeintrag wird sofort gebootet, während dies auf menu-force gesetzt ist > Deaktiviert die Zeitüberschreitung, während das Menü immer angezeigt wird. Wenn eine leere Zeichenfolge ("") angegeben wird, kehrt der Bootloader zu seinem standardmäßigen Menü-Timeout zurück.

SYSTEMD-BOOT-BEFEHLE

Diese Befehle verwalten den EFI-Bootloader systemd-boot und funktionieren nicht in Verbindung mit anderen Bootloadern.

install

Installiert systemd-boot in der EFI-Systempartition. Eine Kopie von systemd-boot wird als EFI-Standard-/Fallback-Loader unter ESP/EFI/BOOT/BOOT*.EFI gespeichert. Der Bootloader wird dann oben zur Bootloader-Liste der Firmware hinzugefügt.

update

Aktualisiert alle installierten Versionen von systemd-boot(7), wenn die verfügbare Version neuer ist als die in der EFI-Systempartition installierte Version. Dazu gehört auch der EFI-Standard-/Fallback-Loader unter ESP/EFI/BOOT/BOOT*.EFI. Der Bootloader wird dann am Ende der Bootloader-Liste der Firmware hinzugefügt, falls er fehlt.

remove

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

is-installed

Überprüft, ob systemd-boot im ESP installiert ist. Beachten Sie, dass ein einzelner ESP möglicherweise mehrere Bootloader hostet. Dies prüft daher, ob systemd-boot einer (von möglicherweise vielen) installierten Bootloadern ist – und weder, ob es der Standard ist, noch ob es in irgendwelchen EFI-Variablen registriert ist.

random-seed

Erzeugt einen zufälligen Startwert und speichert ihn in der EFI-Systempartition zur Verwendung durch den Bootloader systemd-boot. Erzeugt außerdem ein zufälliges System-Token und speichert es dauerhaft als EFI-Variable, sofern noch keins festgelegt wurde. Wenn der Bootloader den Zufallsstartwert im ESP und das Systemtoken in der EFI-Variablen findet, leitet er aus der Kombination beider einen Zufallsstartwert zur Übergabe an das Betriebssystem und einen neuen Startwert zur Speicherung im ESP ab. Der an das Betriebssystem übergebene zufällige Startwert wird vom Systemmanager während des frühen Startvorgangs dem Entropiepool des Kernels gutgeschrieben und ermöglicht es dem Benutzerbereich, sehr früh mit einem vollständig initialisierten Entropiepool zu starten. Siehe auch systemd-boot-random-seed.service(8).

Weitere Informationen finden Sie unter Zufällige Samen[3].

KERNEL-BILDBEFEHLE

kernel-identify kernel

Akzeptiert ein Kernel-Image als Argument. Überprüft, um welche Art von Kernel es sich bei dem Image handelt. Gibt eines von „uki“, „pe“ und „unknown“ zurück.

kernel-inspect kernel

Akzeptiert ein Kernel-Image als Argument. Druckt Details zum Bild.

OPTIONEN

Folgende Optionen werden verstanden:

--esp-path=

Pfad zur EFI-Systempartition (ESP). Wenn nicht angegeben, werden /efi/, /boot/ und /boot/efi/ nacheinander überprüft. Es wird empfohlen, das ESP nach Möglichkeit in /efi/ zu mounten.

--boot-path=

Pfad zur Extended Boot Loader-Partition, wie in der Boot Loader-Spezifikation[1] definiert. Wenn nicht angegeben, wird /boot/ überprüft. Es wird empfohlen, die Extended Boot Loader-Partition nach Möglichkeit in /boot/ zu mounten.

--root=root

Akzeptiert einen Verzeichnispfad als Argument. Allen Pfaden wird der angegebene alternative root-Pfad vorangestellt, einschließlich Konfigurationssuchpfaden.

--image=image

Nimmt einen Pfad zu einer Disk-Image-Datei oder einem Blockgeräteknoten an. Wenn angegeben, werden alle Vorgänge auf das Dateisystem im angegebenen Disk-Image angewendet. Diese Option ähnelt --root=, funktioniert jedoch auf Dateisystemen, die in Disk-Images oder Blockgeräten gespeichert sind. Das Disk-Image sollte entweder nur ein Dateisystem oder eine Reihe von Dateisystemen innerhalb einer GPT-Partitionstabelle gemäß der Discoverable Partitions Specification[4] enthalten. Weitere Informationen zu unterstützten Disk-Images finden Sie im gleichnamigen Schalter von systemd-nspawn(1).

--install-source=

Wählt bei der Installation von Binärdateien mit --root= oder --image= aus, woher sie stammen sollen. Akzeptiert entweder „auto“ (Standardeinstellung), „image“ oder „host“. Mit „auto“ werden Binärdateien aus dem angegebenen Verzeichnis oder Image ausgewählt. Wenn sie nicht gefunden werden, werden sie vom Host ausgewählt. Bei „Image“ oder „Host“ wird keine Fallback-Suche durchgeführt, wenn die Binärdateien in der ausgewählten Quelle nicht gefunden werden.

-p, --print-esp-path

Diese Option ändert das Verhalten von status. Gibt nur den Pfad zur EFI-Systempartition (ESP) in der Standardausgabe aus und wird beendet.

-x, --print-boot-path

Diese Option ändert das Verhalten von status. Gibt nur den Pfad zur Extended Boot Loader-Partition aus, wenn diese vorhanden ist, und den Pfad zum ESP andernfalls in der Standardausgabe und beim Beenden. Dieser Befehl ist nützlich, um zu bestimmen, wo Bootloader-Einträge abgelegt werden sollen, da diese vorzugsweise in der Extended Boot Loader-Partition, sofern vorhanden, und andernfalls im ESP abgelegt werden.

Einträge des Bootloader-Spezifikationstyps Nr. 1 sollten im Allgemeinen im Verzeichnis „$ (bootctl -x)/loader/entries/“ abgelegt werden. Das Vorhandensein dieses Verzeichnisses kann auch als Hinweis darauf verwendet werden, dass auf dem System Unterstützung für Bootloader-Einträge verfügbar ist. Ebenso sollten Einträge der Bootloader-Spezifikation Typ #2 im Verzeichnis „$ (bootctl -x)/EFI/Linux/“ abgelegt werden.

Beachten Sie, dass diese Option (ähnlich wie die oben erwähnte Option --print-booth-path) unabhängig vom verwendeten Bootloader verfügbar ist, d. h. auch ohne dass systemd-boot vorhanden ist Eingerichtet.

--no-variables

Berühren Sie nicht die in EFI-Variablen gespeicherte Firmware-Bootloader-Liste.

--graceful

Fehler ignorieren, wenn die EFI-Systempartition nicht gefunden werden kann, EFI-Variablen nicht geschrieben werden können oder bereits ein anderer oder neuerer Bootloader installiert ist. Gilt derzeit nur für die Verben is-installed, update und random-seed.

-q, --quiet

Unterdrücken Sie die Ausgabe der Ergebnisse verschiedener Befehle sowie der Hinweise, dass ESP nicht verfügbar ist.

--make-entry-directory=yes|no

Steuert die Erstellung und Löschung des Eintragsverzeichnisses Boot Loader Specification[1] Typ #1 im Dateisystem, das Ressourcen wie Kernel- und initrd-Images während der Installation und Entfernung enthält bzw. Das Verzeichnis ist nach dem Eintrittstoken benannt, wie mit dem unten beschriebenen Parameter --entry-token= angegeben, und wird direkt unter dem Stammverzeichnis $BOOT platziert (d. h. unter Dateisystem, das von der Option --print-boot-path zurückgegeben wird, siehe oben). Der Standardwert ist „Nein“.

--entry-token=

Steuert, wie Bootloader-Einträge für diese Betriebssysteminstallation benannt und identifiziert werden. Wird während der Installation akzeptiert und verwendet als Argument entweder „auto“, „machine-id“, „os-id“, „os-image-id“ oder eine beliebige Zeichenfolge mit dem Präfix „literal:“. .

Bei der Einstellung machine-id werden die Einträge nach der Rechner-ID des laufenden Systems benannt (z. B. „b0e793a9baf14b5fa13ecbe84ff637ac“). Einzelheiten zum Maschinen-ID-Konzept und zur Datei finden Sie unter machine-id(5).

Bei der Einstellung os-id werden die Einträge nach der Betriebssystem-ID des laufenden Systems benannt, d. h. dem Feld ID= von os-release( 5) (z. B. „Fedora“). Ähnlich verhält es sich mit der Einstellung os-image-id: Die Einträge werden nach der Betriebssystem-Image-ID des laufenden Systems benannt, d. h. dem Feld IMAGE_ID= von os-release (z. B. „ Vendorx-Kassensystem").

Bei Einstellung auf auto (Standardeinstellung) wird die Datei /etc/kernel/entry-token gelesen, sofern vorhanden, und der gespeicherte Wert verwendet. Andernfalls wird die lokale Maschinen-ID verwendet, wenn sie initialisiert wird. Andernfalls wird IMAGE_ID= aus OS-Release verwendet, sofern festgelegt. Andernfalls wird ID= aus OS-Release verwendet, sofern festgelegt.

Sofern nicht auf „machine-id“ gesetzt oder wenn --make-entry-directory=yes verwendet wird, wird die ausgewählte Tokenzeichenfolge in eine Datei /etc/kernel/entry-token geschrieben, um dies sicherzustellen wird für zukünftige Einträge verwendet. Diese Datei wird auch von kernel-install(8) gelesen, um zu ermitteln, unter welchem Namen Bootloader-Einträge für neu installierte Kernel generiert werden sollen, oder um die Eintragsnamen zum Entfernen alter Kernel zu ermitteln.

Die Verwendung der Maschinen-ID zur Benennung der Einträge ist im Allgemeinen vorzuziehen, es gibt jedoch Fälle, in denen die Verwendung der anderen Kennungen eine gute Option ist. Konkret: wenn die Identifikationsdaten, die die Maschinen-ID beinhaltet, nicht auf der (unverschlüsselten) $BOOT-Partition gespeichert werden sollen, oder wenn die ID beim ersten Booten generiert werden soll und zum Zeitpunkt der Erstellung der Einträge nicht bekannt ist . Beachten Sie, dass die Verwendung der Maschinen-ID den Vorteil hat, dass mehrere parallele Installationen desselben Betriebssystems auf demselben Medium koexistieren können und ihre Bootloader-Einträge unabhängig voneinander aktualisieren können. Bei Verwendung einer anderen Kennung (z. B. der Betriebssystem-ID oder der Betriebssystem-Image-ID) würden parallele Installationen desselben Betriebssystems versuchen, denselben Eintragsnamen zu verwenden. Um parallele Installationen zu unterstützen, muss das Installationsprogramm beim Hinzufügen einer zweiten Installation ein anderes Eintragstoken verwenden.

--all-architectures

Installieren Sie Binärdateien für alle unterstützten EFI-Architekturen (dies impliziert --no-variables).

--efi-boot-option-description=

Die Verwendung des Standardeintragsnamens „Linux Boot Manager“ ist im Allgemeinen vorzuziehen, da nur ein Bootloader, der auf einer einzelnen ESP-Partition installiert ist, zum Booten einer beliebigen Anzahl von Betriebssysteminstallationen verwendet werden sollte, die sich auf den verschiedenen im System installierten Festplatten befinden. Insbesondere sollten Distributionen dieses Flag nicht verwenden, um einen Markeneintrag in der Boot-Optionsliste zu installieren. In Situationen mit mehreren Festplatten, von denen jede über eine eigene ESP-Partition verfügt, kann es jedoch von Vorteil sein, den verwendeten Bootloader im Boot-Optionsmenü der Firmware leichter identifizieren zu können.

--dry-run

Probelauf für --unlink und --cleanup.

Im Probelaufmodus drucken die Aufhebungs- und Bereinigungsvorgänge nur die Dateien aus, die gelöscht werden würden, ohne sie tatsächlich zu löschen.

--no-pager

Leiten Sie die Ausgabe nicht an einen Pager weiter.

--json=MODE

Zeigt die als JSON formatierte Ausgabe an. Erwartet entweder „short“ (für die kürzestmögliche Ausgabe ohne redundante Leerzeichen oder Zeilenumbrüche), „pretty“ (für eine hübsche Version desselben, mit Einrückungen und Zeilenumbrüchen) oder „off“ (um die JSON-Ausgabe zu deaktivieren). der Standard).

-h, --help

Drucken Sie einen kurzen Hilfetext und beenden Sie den Vorgang.

--version

Geben Sie eine kurze Versionszeichenfolge aus und beenden Sie den Vorgang.

SIGNIERTE .EFI-DATEIEN

bootctl install und update suchen nach einer systemd-boot-Datei, die mit dem Suffix „.efi.signed“ endet zuerst und kopieren Sie diese anstelle der normalen „.efi“-Datei. Dadurch können Distributionen oder Endbenutzer signierte Images für UEFI SecureBoot bereitstellen.

EXIT-STATUS

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

UMFELD

Wenn $SYSTEMD_RELAX_ESP_CHECKS=1 festgelegt ist, werden die Validierungsprüfungen für den ESP gelockert und der mit --esp-path= angegebene Pfad kann auf jede Art von Dateisystem verweisen jede Art von Partition.

Ebenso deaktiviert $SYSTEMD_RELAX_XBOOTLDR_CHECKS=1 einige Validierungsprüfungen für die Extended Boot Loader-Partition.

BEISPIELE

Beispiel 1. Ausgabe aus Status und Liste

$ bootctl status
System:
     Firmware: UEFI 2.40 (firmware-version)  ← firmware vendor and version
  Secure Boot: disabled (setup)              ← Secure Boot status
 TPM2 Support: yes
 Boot into FW: supported                     ← does the firmware support booting into itself

Current Boot Loader:                         ← details about sd-boot or another boot loader
      Product: systemd-boot version            implementing the Boot Loader Interface[2]
     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:                                 ← random seed used for entropy in early boot
 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/entry-token-kernel-version.conf
      version: kernel-version
   machine-id: ...
        linux: /entry-token/kernel-version/linux
       initrd: /entry-token/kernel-version/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/entry-token-kernel-version.conf
      version: kernel-version
   machine-id: ...
        linux: /entry-token/kernel-version/linux
       initrd: /entry-token/kernel-version/initrd
      options: root=...

         type: Boot Loader Specification Type #2 (.efi)
        title: Fedora Linux 35 (Workstation Edition)
           id: ...
       source: /boot/efi/EFI/Linux/fedora-kernel-version.efi
      version: kernel-version
   machine-id: ...
        linux: /EFI/Linux/fedora-kernel-version.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 verwendet wird, und „(selected)“ gibt den Eintrag an, der das letzte Mal ausgewählt wurde (d. h. gerade ausgeführt wird).

SIEHE AUCH

systemd-boot(7), Boot Loader Specification[1], Boot Loader Interface[2], systemd-boot-random-seed.service(8)

ANMERKUNGEN

  1. Bootloader-Spezifikation: https://uapi-group.org/specifications/specs/boot_loader_specification

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

  3. Zufällige Samen: https://systemd.io/RANDOM_SEEDS

  4. Spezifikation für erkennbare Partitionen: https://uapi-group.org/specifications/specs/discoverable_partitions_specification