KERNEL-INSTALL(8) | kernel-install | 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-VERSION] [KERNEL-ABBILD] [INITRD-DATEI…]
kernel-install [OPTIONEN…] list
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…]]
Die Programmdateien aus /usr/lib/kernel/install.d/*.install und /etc/kernel/install.d/*.install (d.h. die Erweiterungen) werden mit den folgenden Argumenten aufgerufen:
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:
Falls $KERNEL_INSTALL_LAYOUT nicht »bls« ist, macht diese Erweiterung nichts.
Falls $KERNEL_INSTALL_LAYOUT nicht »uki« ist, macht diese Erweiterung nichts.
Hinzugefügt in Version 198.
add-all
Hinzugefügt in Version 255.
remove KERNEL-VERSION
Die Programmdateien aus /usr/lib/kernel/install.d/*.install und /etc/kernel/install.d/*.install (d.h. die Erweiterungen) werden mit den folgenden Argumenten aufgerufen:
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:
Hinzugefügt in Version 198.
inspect [[[KERNEL-VERSION] KERNEL-ABBILD] [INITRD-DATEI …]]
Zeigt die verschiedenen konfigurierten oder automatisch erkannten Pfade. Insbesondere zeigt dies die Werte der verschiedenen, nachfolgend aufgeführten Umgebungsvariablen $KERNEL_INSTALL_*, wie sie an die Erweiterungen übergeben würden. Die Option --json kann verwandt werden, um die Ausgabe dieses Unterbefehls als ein JSON-Objekt zu erhalten.
Hinzugefügt in Version 251.
list
Hinzugefügt in Version 255.
KOMPATIBILITÄT MIT DEM KERNELBAUSYSTEM
installkernel [OPTIONEN…] VERSION VMLINUZ [MAP] [INSTALLATIONS-VERZ]
Beim Aufruf als installkernel akzeptiert dieses Programm Argumente, wie diese für den Befehl make install des Kernelbausystems festgelegt sind. Die Parameter VERSION und VMLINUZ legen die Kernelversion und das Kernelprogramm fest. Die zwei anderen Parameter (MAP und INSTALLATION-DIR) werden derzeit ignoriert.
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=
--boot-path=
--make-entry-directory=yes|no|auto
Hinzugefügt in Version 254.
--entry-token=
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 (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.
Im Allgemeinen wird bevorzugt, die Maschinenkennung zur Benennung von Einträgen zu verwenden. Es gibt allerdings Fälle, bei denen die Verwendung anderer Kennzeichner eine gute Option ist. Insbesondere: Wenn die Identifikationsdaten, die die Maschinenkennung enthalten, nicht auf der (unverschlüsselten) Partition $BOOT_ROOT gespeichert werden sollen oder falls die Kennung beim ersten Systemstart erzeugt werden soll und 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 Systemladereinträge unabhängig aktualisieren können. Bei der Verwendung anderer Kennzeichner (wie die Betriebssystemkennung oder die Kennung des Betriebssystemabbildes) würden parallele Installationen des gleichen Betriebssystems versuchen, den gleichen Eintragsnamen zu verwenden. Um parallele Installationen zu unterstützen, muss das Installationsprogramm ein anderes Eintragsmerkmal beim Hinzufügen einer zweiten Installation verwenden.
Hinzugefügt in Version 254.
-v, --verbose
Hinzugefügt in Version 242.
--root=Wurzel
Hinzugefügt in Version 255.
--image=Abbild
Hinzugefügt in Version 255.
-h, --help
--version
--no-pager
--json=MODUS
--image-policy=Richtlinie
--no-legend
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_IMAGE_TYPE=uki|pe|unknown wird für Erweiterungen gesetzt, um den Typ des Kernelabbildes festzulegen.
Uki
Hinzugefügt in Version 254.
pe
Hinzugefügt in Version 254.
unknown
Hinzugefügt in Version 254.
$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
Implementiert durch 90-loaderentry.install.
Hinzugefügt in Version 250.
Uki
Implementiert durch 90-uki-copy.install.
Hinzugefügt in Version 253.
other
Hinzugefügt in Version 250.
auto
Es hat die gleiche Auswirkung, falls das Layout leer bleibt. Dies ist die Vorgabe.
Hinzugefügt in Version 254.
$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 ist für Erweiterungen auf einen Pfad zu einem Verzeichnis gesetzt. Erweiterungen können Ergänzungsdateien in diesem Verzeichnis sein und sie werden als Teil des Lader-Zugangs installiert, basierend auf dem Dateinamen und der Erweiterung: Dateien mit Namen initrd* werden als INITRD-DATEIen installiert und Dateien mit Namen microcode* werden den INITRD-DATEIen vorangestellt.
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
/etc/kernel/install.d/*.install, /usr/lib/kernel/install.d/*.install
Hinzugefügt in Version 198.
/etc/kernel/cmdline, /usr/lib/kernel/cmdline, /proc/cmdline
Hinzugefügt in Version 198.
/etc/kernel/devicetree, /usr/lib/kernel/devicetree
Die Devicetree-Datei enthält einen Pfad, und dieser Pfad legt einen Ort relativ zum Kernelinstallationsbaum fest. Eine Reihe von Orten wird überprüft, einschließlich insbesondere /usr/lib/modules/KERNELVERSION/dtb/, was der empfohlene Ort ist, unter dem die DTB-Dateien abgelegt werden. Ist beispielsweise »broadcom/bcm2711-rpi-4-b.dtb« in der Devicetree-Datei, würde der binäre Gerätebaum für den Raspberry Pi 4 Model B installiert und die tatsächliche Datei wäre /usr/lib/modules/KERNELVERSION/dtb/broadcom/bcm2711-rpi-4-b.dtb.
Hinzugefügt in Version 255.
/etc/kernel/tries
Hinzugefügt in Version 240.
/etc/kernel/entry-token
Hinzugefügt in Version 251.
/etc/machine-id
Hinzugefügt in Version 198.
/etc/os-release, /usr/lib/os-release
Hinzugefügt in Version 198.
/etc/kernel/install.conf, /usr/lib/kernel/install.conf
Derzeit werden die folgenden Schlüssel unterstützt: MACHINE_ID=, BOOT_ROOT=, layout=, initrd_generator=, uki_generator=. Siehe obigen Abschnitt Umgebungsvariablen für Details.
Hinzugefügt in Version 250.
/etc/kernel/uki.conf
Hinzugefügt in Version 255.
/usr/lib/modules/KERNEL-VERSION/
Hinzugefügt in Version 255.
/usr/lib/modules/KERNEL-VERSION/vmlinuz
Hinzugefügt in Version 255.
Für die verschiedenen, oben aufgeführten Fälle wird die Umgebungsvariable $KERNEL_INSTALL_CONF_ROOT, falls sie gesetzt ist, den Suchpfad außer Kraft setzen. Die Dateien werden nur aus dem Verzeichnis geladen, da in der Umgebungsvariable festgelegt ist. Wenn die Variable nicht gesetzt ist, werden die aufgeführten Pfade der Reihe nach ausprobiert und die erste existierende Datei wird verwandt.
SIEHE AUCH
machine-id(5), os-release(5), depmod(8), systemd-boot(7), ukify(1), 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
- 3.
- 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 255 |