KERNEL-INSTALL(8)

BEZEICHNUNG
kernel-install - Fügt Kernel und Initrd-Images zu /boot hinzu und entfernt sie von dort

ÜBERSICHT

kernel-install [OPTIONEN…] add KERNEL-VERSION KERNEL-ABBILD [INITRD-DATEI…]

kernel-install [OPTIONEN…] remove KERNEL-VERSION

kernel-install [OPTIONEN…] inspect [KERNEL-ABBILD]

BESCHREIBUNG

kernel-install wird dazu verwandt, Kernel und Initrd-Images [1] in die Bootloader-Partition zu installieren und sie von dort wieder zu entfernen. Dies wird hier mit $BOOT referenziert. Normalerweise ist es entweder /boot/, /efi/ oder /boot/efi/, siehe unten.

kernel-install führt die im Verzeichnis /usr/lib/kernel/install.d/ und dem lokalen Administratorverzeichnis /etc/kernel/install.d/ befindlichen ausführbaren Dateien (»Erweiterungen«) aus. Alle Dateien werden gemeinsam sortiert und in lexikalischer Reihenfolge ausgeführt, unabhängig davon, in welchem Verzeichnis sie sich befinden. Allerdings ersetzen Dateien mit gleichem Dateinamen einander. Dateien in /etc/kernel/install.d/ haben gegenüber Dateien mit dem gleichen Namen in /usr/lib/kernel/install.d/ Vorrang. Dies kann dazu benutzt werden, um bei Bedarf vom System bereitgestellte Programme mit einer lokalen Datei außer Kraft zu setzen. Ein symbolischer Link in /etc/kernel/install.d/ auf /dev/null mit dem gleichen Namen wie das Programm in /usr/lib/kernel/install.d/ deaktiviert das Programm komplett. Programme müssen die Erweiterung ».install« tragen, andere Erweiterungen werden ignoriert.

Ein in diesen Verzeichnissen abgelegtes Programm sollte im Erfolgsfall 0 zurückliefern. Es darf auch 77 zurückliefern, womit die gesamte Aktion beendet wird (Programme später in der lexikalischen Reihenfolge werden übersprungen).

BEFEHLE

Die folgenden Befehle werden verstanden:

add KERNEL-VERSION KERNEL-ABBILD [INITRD-DATEI …]
    Dieser Befehl erwartet eine Kernelversionszeichenkette und einen Pfad zu einer Kernel-Abbild-Datei als Argument. Optional können auch eine oder mehrere Initrd-Abbilder festgelegt werden (beachten Sie, dass Erweiterungen zusätzliche erstellen könnten). kernel-install führt die ausführbaren Dateien aus /usr/lib/kernel/install.d/*.install und /etc/kernel/install.d/*.install (d.h. die Erweiterungen) mit folgenden Argumenten aus:

        add KERNEL-VERSION $BOOT/ZUGANGSMERKMAL/KERNEL-VERSION/ KERNEL-ABBILD [INITRD-DATEI …]

    Das dritte Argument bezieht sich direkt auf den Pfad, unter dem Kernelabbilder, Initrd-Abbilder und andere Ressourcen für Systemladerspezifikation[2] Typ-#1-Zugänge abgelegt werden (das »Zugangsverzeichnis«). Falls andere Systemstartprogramm-Schemata verwandt werden, könnte dieser Parameter ignoriert werden. Die Zeichenkette ZUGANGSMERKMAL ist typischerweise die Maschinenkennung und soll die lokale Installation auf dem System identifizieren. Details sind nachfolgend beschrieben.

    Die Vorgabeerweiterungen führen in diesem Fall die folgenden Aktionen aus:

        • kernel-install erstellt $BOOT/ZUGANGSMERKMAL/KERNEL-VERSION, falls aktiviert (siehe $KERNEL_INSTALL_LAYOUT).

        • 50-depmod.install führt depmod(8) für die KERNEL-VERSION aus.

        • 90-loaderentry.install copies KERNEL-IMAGE to $BOOT/ENTRY-TOKEN/KERNEL-VERSION/linux. If INITRD-FILEs are provided, it also copies them to $BOOT/ENTRY-TOKEN/KERNEL_VERSION/INITRD-FILE. This can also be used to prepend microcode before the actual initrd. It also creates a boot loader entry according to the Boot Loader Specification[2] (Type #1) in $BOOT/loader/entries/ENTRY-TOKEN-KERNEL-VERSION.conf. The title of the entry is the PRETTY_NAME parameter specified in /etc/os-release or /usr/lib/os-release (if the former is missing), or "Linux KERNEL-VERSION", if unset.

        Falls $KERNEL_INSTALL_LAYOUT nicht »bls« ist, macht diese Erweiterung nichts.

        • 90-uki-copy.install kopiert eine Datei uki.efi von $KERNEL_INSTALL_STAGING_AREA oder, falls dies nicht existiert, dem Argument KERNEL-ABBILD, falls und nur falls es eine Erweiterung ».efi« hat, nach $BOOT/EFI/Linux/ZUGANGSMERKMAL-KERNEL-VERSION.efi.

        Falls $KERNEL_INSTALL_LAYOUT nicht »uki« ist, macht diese Erweiterung nichts.

remove KERNEL-VERSION
    Dieser Befehl erwartet eine Kernelversionszeichenkette als einzelnes Argument. Er ruft Programme aus /usr/lib/kernel/install.d/*.install und /etc/kernel/install.d/*.install mit den folgenden Argumenten auf:

        remove KERNEL-VERSION $BOOT/ZUGANGSMERKMAL/KERNEL-VERSION/

    Anschließend entfernt kernel-install das Zugangsverzeichnis $BOOT/ZUGANGSMERKMAL/KERNEL-VERSION/ und seine Inhalte, falls es existiert.

    Die Vorgabeerweiterungen führen in diesem Fall die folgenden Aktionen aus:

        • 50-depmod.install entfernt die durch depmod für diesen Kernel erstellten Dateien wieder.

        • 90-loaderentry.install entfernt die Datei $BOOT/loader/entries/ZUGANGSMERKMAL-KERNEL-VERSION.conf.

        • 90-uki-copy.install entfernt die Datei $BOOT/EFI/Linux/ZUGANGSMERKMAL-KERNEL-VERSION.efi.

inspect [KERNEL-ABBILD]
    Zeigt die verschiedenen konfigurierten oder automatisch erkannten Pfade. Insbesondere zeigt dies die Werte der verschiedenen, nachfolgend aufgeführten Umgebungsvariablen $KERNEL_INSTALL_*.

DIE PARTITION »$BOOT«

Die Partition, in der die Kernel und die Schnipsel der Bootloader-Spezifikation[2] liegen, wird $BOOT genannt. kernel-install bestimmt den Ort dieser Partition durch Überprüfung von nacheinander /efi/, /boot/ und /boot/efi/. Der erste Ort, an dem $BOOT/loader/entries/ oder $BOOT/ZUGANGSMERKMAL/ existiert, wird verwandt.

OPTIONEN

Die folgenden Optionen werden verstanden:

--esp-path=
    Pfad zur EFI-Systempartition (ESP). Falls nicht angegeben, werden in dieser Reihenfolge /efi/, /boot/ und /boot/efi/ geprüft. Es wird empfohlen, den ESP unter /efi/ einzuhängen, falls möglich.

--boot-path=
    Pfad zur Erweiterten Systemladerpartition, wie in der Systemlader-Spezifikation[2] definiert. Falls nicht angegeben, wird /boot/ geprüft. Es wird empfohlen, die Erweiterte Systemladerpartition unter /boot/ einzuhängen, falls möglich.

--make-entry-directory=yes|no|auto
    Steuert die Erstellung und Entfernung des Typ-#1-Eintragsverzeichnisses der Systemlader-Spezifikation[2] auf dem Dateisystem, das Ressourcen wie Kernel- und Initrd-Abbilder während des add bzw. remove enthält. Das Verzeichnis wird nach dem Eintragsmerkmal benannt und wird direkt unterhalb des Systemstart-Wurzelverzeichnis abgelegt. Wenn »auto«, wird das Verzeichnis nur erstellt und entfernt, wenn das Installations-Layout »bls« ist. Standardmäßig »auto«.

--entry-token=
    Steuert, wie Systemladereinträge für diese Kernelinstallation oder -entfernung benannt und identifiziert werden. Akzeptiert entweder »auto«, »machine-id«, »os-id«, »os-image-id« oder eine beliebige Zeichenkette, der »literal:« vorangestellt ist, als Argument.

    Falls auf machine-id gesetzt, werden die Einträge nach der Maschinenkennung des laufenden Systems benannt (z.B. »b0e793a9baf14b5fa13ecbe84ff637ac«). Siehe machine-id(5) zu 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, falls auf os-image-id gesetzt, werden die Einträge nach der Betriebssystemabbildkennung des laufenden Systems benannt, d.h. dem Feld IMAGE_ID= von os-release(5) (z.B. »vendorx-cashier-system«).

    Falls auf (die Vorgabe) auto gesetzt, wird die Datei /etc/kernel/entry-token (oder $KERNEL_INSTALL_CONF_ROOT/entry-token) ausgelesen, falls sie existiert, und der gespeicherte Wert verwandt. Andernfalls wird die lokale Maschinenkennung verwandt, falls sie initialisiert ist. Andernfalls wird IMAGE_ID= von os-release(5) verwandt, falls gesetzt. Andernfalls wird ID= von os-release(5) verwandt, falls gesetzt. Andernfalls wird eine zufällig erstellte Maschinenkennung verwandt.

    Using the machine ID for naming the entries is generally preferable, however there are cases where using the other identifiers is a good option. Specifically: if the identification data that the machine ID entails shall not be stored on the (unencrypted) $BOOT_ROOT partition, or if the ID shall be generated on first boot and is not known when the entries are prepared. Note that using the machine ID has the benefit that multiple parallel installations of the same OS can coexist on the same medium, and they can update their boot loader entries independently. When using another identifier (such as the OS ID or the OS image ID), parallel installations of the same OS would try to use the same entry name. To support parallel installations, the installer must use a different entry token when adding a second installation.

-v, --verbose
    gibt zusätzliche Informationen über durchgeführte Aktionen aus.

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

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

UMGEBUNGSVARIABLEN

  Für Erweiterungen exportierte Umgebungsvariablen

Es wird $KERNEL_INSTALL_VERBOSE=1 für Erweiterungen exportiert, falls --verbose verwandt wird. Sie können in diesem Fall zusätzliche Protokollmeldungen ausgeben.

$KERNEL_INSTALL_MACHINE_ID wird für die Erweiterungen auf die gewünschte zu verwendende Maschinenkennung gesetzt. Es ist immer eine 128-bit-Kennung. Normalerweise wird sie aus /etc/machine-id ausgelesen, aber das kann auch mittels $MACHINE_ID außer Kraft gesetzt werden (siehe unten). Falls nicht über eine diese Methoden festgelegt, wird der Rückfallwert durch kernel-install erstellt und nur für einen einzelnen Aufruf verwandt werden.

$KERNEL_INSTALL_ENTRY_TOKEN wird für Erweiterungen auf das gewünschte, zu verwendene Zugangs-»Merkmal« gesetzt. Es ist ein Kennzeichner, der zur Identifizierung der lokalen Installation verwandt wird und oft die Maschinenkennung ist, dh. identisch zu $KERNEL_INSTALL_MACHINE_ID. Es kann aber auch eine andere Art von Kennzeichner sein, beispielsweise eine feste Zeichenkette oder die Werte ID=, IMAGE_ID= aus /etc/os-release. Die hier übergebene Zeichenkette wird dazu verwandt, die Systemlader-Spezifikationseinträge zu benennen oder die Verzeichnisse, in die das Kernelabbild und die anfänglichen RAM-Plattenabbilder abgelegt werden.

Beachten Sie, dass oft $KERNEL_INSTALL_ENTRY_TOKEN und $KERNEL_INSTALL_MACHINE_ID auf die gleichen Werte gesetzt werden, aber der erste Wert eine beliebige kurze Zeichenkette sein kann, während letzterer garantiert eine gültige 32-Zeichen-Kennung in kleingeschriebener hexadezimaler Form ist. Das zu verwendende Zugangsmerkmal wird aus /etc/kernel/entry-token gelesen, falls diese existiert. Andernfalls werden einige mögliche Kandidaten unterhalb von $BOOT auf Systemlader-Spezifikation-Typ-1-Zugangsverzeichnisse überprüft und, falls diese gefunden werden, daraus das Zugangsmerkmal abgeleitet wird. Falls das nicht erfolgreich ist, wird $KERNEL_INSTALL_MACHINE_ID als Rückfalloption verwandt.

KERNEL_INSTALL_BOOT_ROOT= wird für die Erweiterungen auf den absoluten Pfad des Wurzelverzeichnisses (normalerweise den Einhängepunkt) der Hierarchie gesetzt, in der Systemstartprogramm-Einträge, Kernel-Abbilder und zugehörige Ressourcen abgelegt werden sollen. Dies ist normalerweise der Pfad, auf dem die XBOOTLDR-Partition oder die ESP (EFI-Systempartition) eingehängt sind. Dieser kann konzeptionell auch mittels $BOOT referenziert werden. Kann mit BOOT_ROOT außer Kraft gesetzt werden (siehe unten).

KERNEL_INSTALL_LAYOUT=auto|bls|uki|other|… wird für die Erweiterungen zur Angabe des Installationslayouts festgelegt. Per Konvention können zusätzliche Layoutnamen definiert sein. Falls eine Erweiterung ein bestimmtes Layout verwendet, wird empfohlen, dass ein eigener Layoutname erklärt und layout= während der Installation in install.conf konfiguriert wird. Die folgenden Werte werden derzeit verstanden:

bls
    Standard Systemladerspezifikation[2]-Typ-#1-Layout, kompatibel mit systemd-boot(7): Einträge in $BOOT/loader/entries/ZUGANGSMERKMAL-KERNELVERSION[+VERSUCHEN].conf, Kernel und Initrds unter $BOOT/ZUGANGSMERKMAL/KERNELVERSION/

    Implementiert durch 90-loaderentry.install.

Uki
    Standard Systemladerspezifikation[2]-Typ-#2-Layout, kompatibel mit systemd-boot(7): vereinigte Kernelabbilder unter $BOOT/EFI/Linux als $BOOT/EFI/Linux/ZUGANGSMERKMAL-KERNEL-VERSION[+VERSUCHEN].efi.

    Implementiert durch 90-uki-copy.install.

other
    Anderes, von kernel-install nicht nativ verstandenes Layout.

auto
    Pick the layout automatically. If the kernel is a UKI set layout to uki. If not default to bls if $BOOT/loader/entries.srel with content "type1" or $BOOT/ENTRY-TOKEN exists, or other otherwise.

    Leaving layout blank has the same effect. This is the default.

$KERNEL_INSTALL_INITRD_GENERATOR und $KERNEL_INSTALL_UKI_GENERATOR sind für Erweiterungen gesetzt, um den Initrd-Generator und/oder UKI-Generator auszuwählen. Dies kann über initrd_generator= und uki_generator= in install.conf konfiguriert werden, siehe unten.

$KERNEL_INSTALL_STAGING_AREA is set for plugins to a path to a directory. Plugins may drop files in that directory, and they will be installed as part of the loader entry, based on the file name and extension: Files named initrd* will be installed as INITRD-FILEs, and files named microcode* will be prepended before INITRD-FILEs.

  Von Kernel-install verstandene Umgebungsvariablen

$KERNEL_INSTALL_CONF_ROOT kann gesetzt werden, um den Ort der von kernel-install gelesenen Konfigurationsdateien außer Kraft zu setzen. Wenn gesetzt, werden install.conf, entry-token und andere Dateien aus diesem Verzeichnis gelesen.

$KERNEL_INSTALL_PLUGINS kann gesetzt werden, um die Liste der von kernel-install ausgeführten Erweiterungen außer Kraft zu setzen. Das Argument ist eine Lerraum-getrennte Liste von Pfaden. Mit »KERNEL_INSTALL_PLUGINS=:« kann erreicht werden, dass keine Erweiterung ausgeführt wird.

$MACHINE_ID kann gesetzt werden, damit kernel-install $KERNEL_INSTALL_MACHINE_ID, die Maschinenkennung, außer Kraft setzt.

$BOOT_ROOT kann gesetzt werden, damit kernel-install $KERNEL_INSTALL_BOOT_ROOT, der Installationsort für Systemstarteinträge, außer Kraft setzt.

Die letzten zwei Variablen können auch in install.conf gesetzt werden. In der Umgebung gesetzte Variablen haben Vorrang vor in Konfigurationsdateien gesetzten Werten.

EXIT-STATUS

Falls alle Programme 0 oder 77 zurückliefern, wird 0 zurückgeliefert, andernfalls ein von Null verschiedener Fehlercode.

DATEIEN

/usr/lib/kernel/install.d/*.install /etc/kernel/install.d/*.install
    Ergänzungsdateien, die durch kernel-install ausgeführt werden.

/usr/lib/kernel/cmdline /etc/kernel/cmdline /proc/cmdline
    Wird von 90-loaderentry.install gelesen. Der Inhalt der Datei /etc/kernel/cmdline legt die zu verwendende Kernelbefehlszeile fest. Falls die Datei nicht existiert, wird /usr/lib/kernel/cmdline verwandt. Falls auch diese Datei nicht existiert, wird /proc/cmdline verwandt. Mit $KERNEL_INSTALL_CONF_ROOT kann der Pfad außer Kraft gesetzt werden.

/etc/kernel/tries
    Wird von 90-loaderentry.install und 90-uki-copy.install gelesen. Falls diese Datei existiert, wird aus ihr ein numerischer Wert gelesen und die Benennung der erstellten Eintragsdatei oder UKI wird leicht geändert, um ihn als $BOOT/loader/entries/ZUGANGSMERKMAL-KERNEL-VERSION+VERSUCHE.conf bzw. $BOOT/EFI/Linux/ZUGANGSMERKMAL-KERNEL-VERSION+VERSUCHE.efi aufzunehmen. Dies ist für Systemstartprogramme wie systemd-boot(7) nützlich, die Systemstartversuchezähler implementieren, bei der der Zähler in den Eintragsdateinamen eingebettet ist. Mit $KERNEL_INSTALL_CONF_ROOT kann der Pfad außer Kraft gesetzt werden.

/etc/kernel/entry-token
    Falls diese Datei existiert, wird sie gelesen und als »Zugangsmerkmal« für dieses System verwandt, d.h. sie wird für die Benennung von Systemlader-Spezifikationseinträge verwandt, siehe vorstehenden $KERNEL_INSTALL_ENTRY_TOKEN für Details. Mit $KERNEL_INSTALL_CONF_ROOT kann dieser Pfad außer Kraft gesetzt werden.

/etc/machine-id
    Der Inhalt dieser Datei legt die Maschinenkennung MASCHINENKENNUNG fest.

/etc/os-release /usr/lib/os-release
    Wird von 90-loaderentry.install gelesen. Falls verfügbar, wird PRETTY_NAME= aus diesen Dateien gelesen und als den Titel für den Systemstarteintrag verwandt. Andernfalls wird »Linux KERNELVERSION« verwandt.

/usr/lib/kernel/install.conf /etc/kernel/install.conf
    Konfigurationsoptionen für kernel-install, als eine Reihe von SCHLÜSSEL=WERT-Zuweisungen, kompatibel mit der Shell-Syntax und den in os-release(5) beschriebenen Regeln folgend. Falls vorhanden, wird /etc/kernel/install.conf gelesen und /usr/lib/kernel/install.conf andernfalls. Diese Datei ist optional. $KERNEL_INSTALL_CONF_ROOT kann zum Außerkraftsetzen des Pfades verwandt werden.

    Derzeit werden die folgenden Schlüssel unterstützt: MACHINE_ID=, BOOT_ROOT=, layout=, initrd_generator=, uki_generator=. Siehe obigen Abschnitt Umgebungsvariablen für Details.

SIEHE AUCH

machine-id(5), os-release(5), depmod(8), systemd-boot(7), Systemstartladeprogrammspezifikation[2]

ANMERKUNGEN

1.  Heutzutage werden tatsächlich CPIO-Archive als »initramfs« statt einer »initrd« verwandt. Siehe bootup(7) für eine Erläuterung.

2.  Systemladerspezifikation
    https://uapi-group.org/specifications/specs/boot_loader_specification

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).