ZFS auf Arch Linux installieren / updaten
Vorwort
Durch fehlerhafte Konfiguration kann das System in einen nicht bootbaren Stand geraten!
Vor einem Reboot sollten alle Probleme gelöst werden!
Aufgrund der Lizenz von ZFS ist eine native Integration in den Linux Kernel nicht möglich.
Deshalb gibt es diverse Projekte die eine nachträgliche Installation ermöglichen.
In diesem Beispiel wird das ZFS Linux Modul und die damit verbundenen Tools aus dem AUR installiert.
Hierbei wird ZFS mit seinem Tools aus dem Quellcode kompiliert, was je nach Hardware mehrere Minuten dauern kann.
Dabei ist zu beachten, dass bei jedem Kernel Update das ZFS-Paket erneut gebaut werden muss um zur Kernel-Version zu passen!
Es ist daher empfehlenswert den Linux-LTS Kernel zu verwenden und das Paket zu pinnen, damit nicht jedes Update durchgeführt wird.
Das ZFS Paket aus dem AUR kann auch kurzzeitig nicht auf den neuen Kernel angepasst sein und dann nicht ohne Anpassungen installiert werden…
Installation
Zuerst wird linux-lts und die entsprechenden Header installiert. Das Paket linux sollte gelöscht werden:
sudo pacman -Syu linux-lts linux-lts-headers
sudo pacman -R linux linux-headers
yay -S zfs-linux-lts
sudo mkinitcpio -p linux-lts
Beim Tausch von Linux zu Linux-LTS muss der bootloader angepasst werden. Dieser kann sehr unterschiedlich sein.
Bei Nutzung von Grub:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Paket Pinning
In der Datei /etc/pacman.conf
die Zeile IgnorePkg wie folgt ergänzen:
IgnorePkg = linux-lts linux-lts-headers
Dadurch werden Updates ignoriert und die Pakete nicht automatisch mit aktualisiert. Updates müssen dann erzwungen werden, wobei dies in Zusammenspiel mit dem Update des zfs-linux-lts Pakets passieren muss.
Updates
Weil das Paket zfs-linux-lts auf eine bestimmte Kernel-Version gepinnt ist, kann ein Update etwas komplizierter sein.
Denn das aktuell installierte Kernel-Paket wird vom aktuellen ZFS benötigt, ZFS kann aber nicht aktualisiert werden, weil es eine neuere Kernel-Version benötigt (Henne-Ei-Problem).
Deshalb muss zunächst das ZFS Paket gelöscht werden, der Kernel aktualisiert und dann ZFS re-installiert werden:
yay -R zfs-linux-lts zfs-utils
sudo pacman -Syu linux-lts linux-lts-headers
yay -S zfs-linux-lts
sudo mkinitcpio -p linux-lts