Bootloader

Eine Auswahl an UEFI Bootloadern. Die Anleitungen mit Ausnahme von "Grub ersetzen durch EFIStub" sind speziell zugeschnitten auf eine (Arch-) Linux Neuinstallation.

Grub Bootloader

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

... zur Übersicht


Grub ersetzen durch EFIStub

Tux

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:

  • Das Live Arch, das Motherboard und auch das installierte Betriebssystem müssen UEFI unterstützen.
  • Insbesondere die Bootpartition muß mit FAT32 installiert sein.
  • Secure Boot ist de-aktiviert !

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!

... zur Übersicht


Installation des Refind Bootloaders:
  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

... zur Übersicht


Systemd-Boot

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

... zur Übersicht