Systemd-boot
Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!
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.
Hinweis: Damit Systemd-boot funktioniert, muss Secure Boot deaktiviert sein!
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
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. p_arch oder * /dev/BEZEICHNUNG-DER-ROOT-PARTIOTION /dev/sda1 und INHALT SWAP zu ersetzen durch: * LABEL=NAME-DER-SWAP-PARTITION zB. p_swap oder * /dev/BEZEICHNUNG-DER-SWAP-PARTIOTION zB. /dev/sda2
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 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 rw resume=INAHLT SWAP
Nun die Datei /boot/loader/loader.conf
bearbeiten:
default arch-uefi 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, wird 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. Es gibt zwei einstellbare Optionen:
default
der Standardeintrag. Der Name richtet sich nach der zugehörigen Datei (siehe unten) ohne die Endung.conf
.timeout
die Zeitspanne, nach der der Standarteintrag 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ü.
Die Datei könnte zum Beispiel so aussehen:
default arch timeout 0
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 hilbernate 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=/dev/sda2 rw resume=/dev/sda4
Statt den Partitionsnamen kann man auch die UUIDs angeben.