Systemd-boot: Unterschied zwischen den Versionen
K Typos |
K Eintrag ergänzt |
||
(10 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
Zuerst installiert man die benötigten EFI Werkzeuge: | Zuerst installiert man die benötigten EFI Werkzeuge: | ||
pacman -S efibootmgr dosfstools gptfdisk | pacman -S efibootmgr dosfstools gptfdisk | ||
Der Bootloader an sich | Der Bootloader an sich sollte bereits installiert sein, da er in [[Systemd]] vorhanden ist. | ||
=== Installation === | === Installation === | ||
Zeile 13: | Zeile 13: | ||
# bootctl install | # bootctl install | ||
'''Hinweis:''' Im folgenden ist ''' | '''Hinweis:''' Im folgenden ist '''INHALT_ROOT''' zu ersetzen durch: | ||
* LABEL=NAME-DER-ROOT-PARTITION zB. p_arch | * LABEL=NAME-DER-ROOT-PARTITION zB. LABEL=p_arch | ||
oder | oder | ||
* /dev/BEZEICHNUNG-DER-ROOT-PARTITION /dev/sda1 | * /dev/BEZEICHNUNG-DER-ROOT-PARTITION /dev/sda1 | ||
oder | oder | ||
* UUID-DER-ROOT-PARTITION | * UUID=UUID-DER-ROOT-PARTITION | ||
und ''' | und '''INHALT_SWAP''' zu ersetzen durch: | ||
* LABEL=NAME-DER-SWAP-PARTITION zB. p_swap | * LABEL=NAME-DER-SWAP-PARTITION zB. LABEL=p_swap | ||
oder | oder | ||
* /dev/BEZEICHNUNG-DER-SWAP-PARTIOTION zB. /dev/sda2 | * /dev/BEZEICHNUNG-DER-SWAP-PARTIOTION zB. /dev/sda2 | ||
oder | oder | ||
* UUID-DER-SWAP-PARTITION | * UUID=UUID-DER-SWAP-PARTITION | ||
Anschließend die Datei {{ic|/boot/loader/entries/arch-uefi.conf}} mit folgendem Inhalt erstellen: | Anschließend die Datei {{ic|/boot/loader/entries/arch-uefi.conf}} mit folgendem Inhalt erstellen: | ||
Zeile 33: | Zeile 33: | ||
linux /vmlinuz-linux | linux /vmlinuz-linux | ||
initrd /initramfs-linux.img | initrd /initramfs-linux.img | ||
options root= | options root=INHALT_ROOT rw resume=INHALT_SWAP | ||
Das Gleiche noch für Arch Linux fallback die Datei {{ic|/boot/loader/entries/arch-uefi-fallback.conf}} mit folgendem Inhalt erstellen: | Das Gleiche noch für Arch Linux fallback die Datei {{ic|/boot/loader/entries/arch-uefi-fallback.conf}} mit folgendem Inhalt erstellen: | ||
Zeile 39: | Zeile 39: | ||
linux /vmlinuz-linux | linux /vmlinuz-linux | ||
initrd /initramfs-linux-fallback.img | initrd /initramfs-linux-fallback.img | ||
options root= | options root=INHALT_ROOT rw resume=INHALT_SWAP | ||
Nun die Datei {{ic|/boot/loader/loader.conf}} bearbeiten: | Nun die Datei {{ic|/boot/loader/loader.conf}} bearbeiten: | ||
default arch-uefi | default arch-uefi.conf | ||
timeout 1 | timeout 1 | ||
Das timeout (in Sekunden) kann natürlich frei gewählt werden. | Das timeout (in Sekunden) kann natürlich frei gewählt werden. | ||
== Update == | == Update == | ||
Falls man etwas an der Konfiguration geändert hat muss folgendes ausgeführt werden: | Falls man etwas an der Konfiguration geändert hat, muss folgendes ausgeführt werden: | ||
bootctl update | bootctl update | ||
Falls vorher der {{ic|path}} Parameter nicht spezifiziert wurde, | Falls vorher der {{ic|path}} Parameter nicht spezifiziert wurde, werden nacheinander {{ic|/efi}}, {{ic|/boot}} und {{ic|/boot/efi}} überprüft. | ||
Hat man die EFI-Partition nicht nach diesen Orten eingehängt kann man den {{ic|path}} Parameter wie folgt setzen: | Hat man die EFI-Partition nicht nach diesen Orten eingehängt, kann man den {{ic|path}} Parameter wie folgt setzen: | ||
bootctl --path=$esp update | bootctl --path=$esp update | ||
Zeile 58: | Zeile 58: | ||
Die Konfiguration erfolgt über die Datei {{ic|$esp/loader/loader.conf}}. Existiert sie nicht, muss man sie neu anlegen. | Die Konfiguration erfolgt über die Datei {{ic|$esp/loader/loader.conf}}. Existiert sie nicht, muss man sie neu anlegen. | ||
* {{ic|default}} - der Standardeintrag, von dem automatisch gebootet wird. Der Name richtet sich nach der zugehörigen Datei (siehe unten) ohne die Endung {{ic|.conf}}. | * {{ic|default}} - der Standardeintrag, von dem automatisch gebootet wird. Der Name richtet sich nach der zugehörigen Datei (siehe unten) ohne die Endung {{ic|.conf}}. | ||
* {{ic|timeout}} - die Zeitspanne, nach der der | * {{ic|timeout}} - die Zeitspanne, nach der der Standardeintrag automatisch gebootet wird. Beträgt es 0 oder existiert kein entsprechender Eintrag, wird automatisch '''ohne Nachfrage''' gebootet. In diesem Fall kommt man nur durch Drücken der Leertaste zum Auswahlmenü. | ||
* {{ic|console-mode}} – ändert den UEFI-Konsolenmodus: {{ic|0}} für 80x25, {{ic|1}} für 80x50, {{ic|2}} und höher für keine Standard Optionen unterstützt durch der UEFI-Firmware, {{ic|auto}} wählt automatisch einen geeigneten Modus aus, {{ic|max}} für den höchsten verfügbaren Modus, {{ic|keep}} (standart) für den Firmware-Modus. | * {{ic|console-mode}} – ändert den UEFI-Konsolenmodus: {{ic|0}} für 80x25, {{ic|1}} für 80x50, {{ic|2}} und höher für keine Standard Optionen unterstützt durch der UEFI-Firmware, {{ic|auto}} wählt automatisch einen geeigneten Modus aus, {{ic|max}} für den höchsten verfügbaren Modus, {{ic|keep}} (standart) für den Firmware-Modus. | ||
* {{ic|editor}} - ob der Kernelparameter-Editor aktiviert werden soll oder nicht. {{ic|yes}} ist Standard und der Editor ist aktiviert. {{ic|no}} | * {{ic|editor}} - ob der Kernelparameter-Editor aktiviert werden soll oder nicht. {{ic|yes}} ist Standard und der Editor ist aktiviert. {{ic|no}} heißt deaktiviert und wird empfohlen, da durch das Hinzufügen von {{ic|init{{=}}/bin/bash}} das root-Passwort umgangen werden kann. | ||
* {{ic|auto-entries}} - Zeigt automatische Einträge für Windows, EFI Shell und | * {{ic|auto-entries}} - Zeigt automatische Einträge für Windows, EFI Shell und den Standard-Loader an, wenn sie auf {{ic|1}} (Standard) gesetzt sind, {{ic|0}} zum Ausblenden. | ||
* {{ic|auto-firmware}}- Zeigt den Eintrag für den Neustart in die UEFI-Firmwareeinstellungen an, wenn er auf {{ic|1}} (Standard) gesetzt ist, {{ic|0}} zum Ausblenden; | * {{ic|auto-firmware}}- Zeigt den Eintrag für den Neustart in die UEFI-Firmwareeinstellungen an, wenn er auf {{ic|1}} (Standard) gesetzt ist, {{ic|0}} zum Ausblenden; | ||
Die Datei könnte zum Beispiel so aussehen: | Die Datei könnte zum Beispiel so aussehen: | ||
default arch-uefi | default arch-uefi.conf | ||
timeout 4 | timeout 4 | ||
console-mode max | console-mode max | ||
Zeile 77: | Zeile 77: | ||
Daneben können optional noch angegeben werden: | Daneben können optional noch angegeben werden: | ||
* {{ic|options}} Kommandozeilenparameter, die an das EFI-Programm weitergegeben werden. Hier sollten die root-Partition | * {{ic|options}} Kommandozeilenparameter, die an das EFI-Programm weitergegeben werden. Hier sollten die root-Partition sowie die swap-Partition (Eintrag ''resume'') für hibernate angegeben werden. Außerdem muss für Btrfs File-Systeme das Subvolume (Eintrag ''subvol="subvolume"'') angegeben werden. | ||
* {{ic|version}} Kernelversion – wird nur bei gleichen Namen angezeigt | * {{ic|version}} Kernelversion – wird nur bei gleichen Namen angezeigt | ||
Zeile 86: | Zeile 86: | ||
options root=LABEL=p_arch rw resume=LABEL=p_swap | options root=LABEL=p_arch rw resume=LABEL=p_swap | ||
Statt | Statt dem LABEL=LABEL kann man auch die UUIDs oder Partitionsnamen angeben. | ||
[[Kategorie:Bootloader]] | [[Kategorie:Bootloader]] |
Aktuelle Version vom 9. Oktober 2021, 09:11 Uhr
Systemd-boot (ehemals Gummiboot) ist ein schlanker EFISTUB-Bootloader, der einfach zu konfigurieren ist. Er wendet das EFISTUB-Verfahren an, bei dem der Linux-Kernel als ausführbare Datei (Executable) von der EFI-Firmware des Rechners geladen wird. Dies sorgt für einen schnelleren Bootvorgang, auf mancher Hardware treten dabei allerdings Probleme auf. In diesem Fall sollte man einen anderen Bootloader wie GRUB verwenden.
Hinweis: In dem Artikel wird nachfolgend $esp
für den Pfad der EFI-Partition verwendet und muss dann entsprechend ersetzt werden. Es empfielt sich, die EFI-Partition nach /boot
zu mounten.
Installation - Vorbereitung
Hinweis: Es ist sinnvoll, die EFI-Partition nach /boot zu mounten.
Zuerst installiert man die benötigten EFI Werkzeuge:
pacman -S efibootmgr dosfstools gptfdisk
Der Bootloader an sich sollte bereits installiert sein, da er in Systemd vorhanden ist.
Installation
Zuerst den EFI-Booteintrag installieren und einrichten:
# bootctl install
Hinweis: Im folgenden ist INHALT_ROOT zu ersetzen durch: * LABEL=NAME-DER-ROOT-PARTITION zB. LABEL=p_arch oder * /dev/BEZEICHNUNG-DER-ROOT-PARTITION /dev/sda1 oder * UUID=UUID-DER-ROOT-PARTITION und INHALT_SWAP zu ersetzen durch: * LABEL=NAME-DER-SWAP-PARTITION zB. LABEL=p_swap oder * /dev/BEZEICHNUNG-DER-SWAP-PARTIOTION zB. /dev/sda2 oder * UUID=UUID-DER-SWAP-PARTITION
Anschließend die Datei /boot/loader/entries/arch-uefi.conf
mit folgendem Inhalt erstellen:
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=INHALT_ROOT rw resume=INHALT_SWAP
Das Gleiche noch für Arch Linux fallback die Datei /boot/loader/entries/arch-uefi-fallback.conf
mit folgendem Inhalt erstellen:
title Arch Linux Fallback linux /vmlinuz-linux initrd /initramfs-linux-fallback.img options root=INHALT_ROOT rw resume=INHALT_SWAP
Nun die Datei /boot/loader/loader.conf
bearbeiten:
default arch-uefi.conf timeout 1
Das timeout (in Sekunden) kann natürlich frei gewählt werden.
Update
Falls man etwas an der Konfiguration geändert hat, muss folgendes ausgeführt werden:
bootctl update
Falls vorher der path
Parameter nicht spezifiziert wurde, werden nacheinander /efi
, /boot
und /boot/efi
überprüft.
Hat man die EFI-Partition nicht nach diesen Orten eingehängt, kann man den path
Parameter wie folgt setzen:
bootctl --path=$esp update
Konfiguration
Die Konfiguration erfolgt über die Datei $esp/loader/loader.conf
. Existiert sie nicht, muss man sie neu anlegen.
default
- der Standardeintrag, von dem automatisch gebootet wird. Der Name richtet sich nach der zugehörigen Datei (siehe unten) ohne die Endung.conf
.timeout
- die Zeitspanne, nach der der Standardeintrag automatisch gebootet wird. Beträgt es 0 oder existiert kein entsprechender Eintrag, wird automatisch ohne Nachfrage gebootet. In diesem Fall kommt man nur durch Drücken der Leertaste zum Auswahlmenü.console-mode
– ändert den UEFI-Konsolenmodus:0
für 80x25,1
für 80x50,2
und höher für keine Standard Optionen unterstützt durch der UEFI-Firmware,auto
wählt automatisch einen geeigneten Modus aus,max
für den höchsten verfügbaren Modus,keep
(standart) für den Firmware-Modus.editor
- ob der Kernelparameter-Editor aktiviert werden soll oder nicht.yes
ist Standard und der Editor ist aktiviert.no
heißt deaktiviert und wird empfohlen, da durch das Hinzufügen voninit=/bin/bash
das root-Passwort umgangen werden kann.auto-entries
- Zeigt automatische Einträge für Windows, EFI Shell und den Standard-Loader an, wenn sie auf1
(Standard) gesetzt sind,0
zum Ausblenden.auto-firmware
- Zeigt den Eintrag für den Neustart in die UEFI-Firmwareeinstellungen an, wenn er auf1
(Standard) gesetzt ist,0
zum Ausblenden;
Die Datei könnte zum Beispiel so aussehen:
default arch-uefi.conf timeout 4 console-mode max editor no
Booteinträge hinzufügen
Damit gebootet werden kann, muss ein entsprechender Eintrag erstellt werden. Dazu legt man eine Datei mit der Endung .conf
in $esp/loader/entries/
an. Folgende Angaben müssen enthalten sein:
title
Der Name des Eintrags im Auswahlmenüefi
oderlinux
Die EFI-Datei, die ausgeführt werden soll (Pfadangabe relativ zur EFI-Partition). Standardmäßig sollte das bei Arch Linux/vmlinuz-linux
sein.
Daneben können optional noch angegeben werden:
options
Kommandozeilenparameter, die an das EFI-Programm weitergegeben werden. Hier sollten die root-Partition sowie die swap-Partition (Eintrag resume) für hibernate angegeben werden. Außerdem muss für Btrfs File-Systeme das Subvolume (Eintrag subvol="subvolume") angegeben werden.version
Kernelversion – wird nur bei gleichen Namen angezeigt
Ein Eintrag für Arch Linux könnte zum Beispiel so aussehen:
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=LABEL=p_arch rw resume=LABEL=p_swap
Statt dem LABEL=LABEL kann man auch die UUIDs oder Partitionsnamen angeben.