Eine Auswahl an UEFI Bootloadern. Die Anleitungen mit Ausnahme von "Grub ersetzen durch EFIStub" sind speziell zugeschnitten auf eine (Arch-) Linux Neuinstallation.
Die Installation des GRUB Bootloaders erfolgt mit
pacman -S grub
Weitere optionale Abhängigkeiten von GRUB für weitere benötigte Werkzeuge für UEFI werden folgendermaßen eingebunden:
pacman -S dosfstools efibootmgr
Fortsetzung der GRUB Installation für 64bit UEFI:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
Abschließend muß noch die Grub Konfiguration generiert werden.
grub-mkconfig -o /boot/grub/grub.cfg
Der Grub-Gau. Es kam, was irgendwann kommen mußte. Dank eines Updates des Grub Bootloaders war mein Arch-System plötzlich nicht mehr in der Lage, in den Desktop zu booten. Das war für mich auch der nötige Tritt in den Hintern, mich nach einer Alternative umzusehen. Da frage ich mich, wer gibt so etwas mehr oder weniger ungetestet frei ? Da bin ich offenbar kein Einzelfall, denn viele Arch User, die Grub verwenden, hat es ebenfalls kalt erwischt.
Aber bekanntlich gibt es für alles eine Lösung. Denn wofür hat man einen Arch-Linux affinen Schwager, der mir mit einer relativ einfachen Umsetzung des Problems aus der Patsche geholfen hat. Dafür mache ich bis ans Ende meiner Tage vor ihm einen untertänigsten Bückling ... :)
Ich möchte also den Grubloader ersetzen. Es soll aber auch kein anderer Bootloader dazwischengeschaltet werden! Das erreicht man mit EFISTUB, der den Linux-Kernel direkt vom Motherboard bootet. Dabei werden die Kernelparameter in einen UEFI-Boot-Eintrag eingebettet.
efibootmgr einrichten
Voraussetzungen:
Folgende Vorgehensweise hat bei mir zum Erfolg geführt:
a.) Arch ISO hier herunterladen: https://archlinux.org/download/
b.) Mit "gnome-disk-utility" aus dem ISO einen Arch Linux Bootstick erstellen.
c.) Mit dem USB-Stick ins UEFI Arch Live System booten.
d.) Die Tastatur auf Deutsch umstellen, sonst wird's schwierig bei den Sonderzeichen.
loadkeys de
loadkeys de-latin1
Um die Schrift zwecks besserer Lesbarkeit zu vergrößern, wechselt man den Font:
setfont ter-132n
e.) Wir identifizieren die Laufwerke und Partitionen mit:
lsblk
Das Ergebnis sieht dann so aus:
nvme0n1 259:0 0 1,8T 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot
├─nvme0n1p2 259:2 0 20G 0 part [SWAP]
└─nvme0n1p3 259:3 0 1,8T 0 part /
Das Laufwerk "nvme0n1" ist meine 2 TByte M.2 SSD mit nvme0n1p1 als Bootpartition (mit FAT32) und nvme0n1p3 als Rootpartition mit dem Betriebssytem. Hier müssen selbstverständlich die Laufwerkseinträge individuell angepaßt werden.
f.) Jetzt werden die EFI Werkzeuge efibootmgr, dosfstools und gptfdisk mit Pacman installiert. Die Verwendung des Schalters -S zeigt bei mir eine Fehlermeldung. "pacman -Sy" hingegen aktualisiert die lokale Datenbank und die Installation kann ich nun problemlos fortsetzen:
pacman -Sy efibootmgr dosfstools gptfdisk
g.) Mittels Aufruf von "efibootmgr" wird ein Eintrag in der UEFI Firmware erstellt:
efibootmgr -c -d /dev/nvme0n1 -p 1 -l \vmlinuz-linux -L "Arch Linux" -u "initrd=/initramfs-linux.img root=/dev/nvme0n1p3 rw"
h.) Fertig ! Als letztes wird Grub entfernt:
pacman -Rs grub
Rechner neu starten, alle drei Daumen drücken und die Re-Inkarnation in den Desktop triumphal zelebrieren ... Om!
pacman -S refind-efi
refind-install --usedefault /dev/nvme0n1p1 --alldrivers
Es erscheint die Meldung: " ... Copying sample configuration file as refind.conf; edit this file to configure refind."
mkrlconf
"Create a linux kernel configuration file for refind. The mkrlconf command is part of the refind package. Users may manually edit the "refind_linux.conf" file to suit their needs."
nano /boot/refind_linux.conf
Alle Zeilen werden gelöscht bis auf folgende Zeile, wobei hier die Root-Partition eingetragen werden muß: "Boot with minimal options" "ro root=/dev/nvme0n1p3"
Ggf. weitere Anpassungen in refind.conf
nano /boot/EFI/BOOT/refind.conf
Der Bootloader Systemd-boot ist für UEFI-Systeme ausgelegt und sorgt für einen schnellen Bootvorgang. Zudem ist er bereits in Arch Linux enthalten. Wir benötigen noch Werkzeuge für UEFI:
pacman -S dosfstools efibootmgr
Der Bootloader wir initiiert mit
bootctl install
Die Datei "arch-uefi.conf" mit dem Editor nano öffnen:
sudo nano /boot/loader/entries/arch-uefi.conf
Folgende Anpassungen müssen dort vorgenommen werden, wobei für "root= ..." die entsprechende Partition eingetragen werden muß:
arch-uefi.conf | |
---|---|
titel | Arch Linux |
linux | /vmlinuz-linux |
initrd | /initramfs-linux.img |
options | root=LABEL=ROOT rw lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8 |
Für den Arch Linux fallback wird die Datei "arch-uefi-fallback.conf" bearbeitet:
sudo nano /boot/loader/entries/arch-uefi-fallback.conf
arch-uefi-fallback.conf | |
---|---|
titel | Arch Linux Fallback |
linux | /vmlinuz-linux |
initrd | /initramfs-linux-fallback.img |
options | root=LABEL=ROOT rw lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8 |
Die Datei "loader.conf" öffnen mit
sudo nano /boot/loader/loader.conf
loader.conf | |
---|---|
default | Arch Uefi |
timeout | 2 |
Das Timeout (in Sekunden) kann frei gewählt werden. Die Änderungen werden verfügbar gemacht mit
bootctl --path=/boot update