ZFS als Root-Dateisystem unter Linux — will man haben. Verschlüsselung auf der Festplatte — will man auch haben. Die Kombination aus beidem war unter Linux lange ein manueller Kraftakt. Seit Linux Mint 20 bringt der Installer aber fast alles mit. Man muss ihm nur an zwei Stellen unter die Arme greifen.

Hinweis: Diese Anleitung wurde mit Linux Mint 20.1 geschrieben, funktioniert aber genauso mit Mint 21.x und 22.x — der Installer nutzt das gleiche zsys-setup-Skript.
Pakete im Live-System nachinstallieren
Die gewünschte Linux Mint ISO herunterladen und davon booten. Im Live-System ein Terminal öffnen und die ZFS-Pakete installieren:
sudo aptitude -y install libzfs2linux zfs-initramfs zfsutils-linux zfs-zed
Wer nur ZFS ohne Verschlüsselung will, ist damit schon fertig. Einfach den Installer starten, bei der Festplattenauswahl auf Advanced features… klicken und EXPERIMENTAL: Erase disk and use ZFS wählen. Für Verschlüsselung weiter lesen.
Installer-Skript für Verschlüsselung anpassen
Der Installer fragt kein Passwort für die ZFS-Verschlüsselung ab — das muss man ihm vorher ins Skript schreiben. Im Terminal:
sudo vi /usr/share/ubiquity/zsys-setup
Nach zpool create suchen — es taucht zweimal auf. Beim rpool (nicht beim bpool) zwei Änderungen vornehmen:
1. Vor die zpool create-Zeile des rpool ein echo mit dem gewünschten Passwort setzen:
echo 'EUER-PASSWORT' | zpool create -f \
2. Vor die Zeile -O mountpoint=/ -R "${target}" rpool "${partrpool}" die Encryption-Optionen einfügen:
-O encryption=aes-256-gcm \ -O keylocation=prompt \ -O keyformat=passphrase \
Das fertige Ergebnis sieht dann so aus:
echo 'Kennwort!' | zpool create -f \
-o ashift=12 \
-O compression=lz4 \
-O acltype=posixacl \
-O xattr=sa \
-O relatime=on \
-O normalization=formD \
-O mountpoint=/ \
-O canmount=off \
-O dnodesize=auto \
-O sync=disabled \
-O encryption=aes-256-gcm \
-O keylocation=prompt \
-O keyformat=passphrase \
-O mountpoint=/ -R "${target}" rpool "${partrpool}"
Sicherheitshinweis: Das Passwort steht kurzzeitig im Klartext in der Datei und in der Bash-History. Im Live-System ist das unkritisch — nach dem Reboot ins installierte System ist das Live-System weg. Trotzdem nicht das Produktivpasswort in Screenshots posten.
Jetzt den Installer starten, ZFS als Dateisystem wählen — fertig. Funktioniert mit EFI und Legacy-Boot.
Verschlüsselung prüfen
Nach dem ersten Boot ins neue System — Terminal öffnen und prüfen, ob die ZFS-Verschlüsselung aktiv ist und sich durch den Pool bis zu den Benutzerdaten vererbt hat:
$ zpool get feature@encryption bpool rpool NAME PROPERTY VALUE SOURCE bpool feature@encryption disabled local rpool feature@encryption active local $ zfs get encryption rpool/USERDATA/test_9d9i92 NAME PROPERTY VALUE SOURCE rpool/USERDATA/test_9d9i92 encryption aes-256-gcm -
feature@encryption: active beim rpool und aes-256-gcm auf den Benutzerdaten — alles korrekt. Der bpool (Boot-Pool) bleibt unverschlüsselt — GRUB muss den Kernel lesen können, bevor das Passwort eingegeben wird.
Wer seine SSDs im ZFS-Pool auch gleich mit TRIM versorgen will — das ist in einem separaten Beitrag beschrieben.
Bilder von der Installation zum Durchklicken:
Siehe auch: ZFS Encryption
Fragen? Einfach melden.






Hi! Das war immer meine „goto“ Seite, wenn ich neu installiert habe.
–> Danke für die Anleitung, sie hatte mir bisher sehr geholfen!!!
Ich installiere gerade Linux Mint 21.3 (Virginia) neu und da ist mir aufgefallen, dass man „gar nix mehr“ machen muss. Soll heissen:
– einfach auf „Erweiterte Funktionen …“ klicken
– „Festplatte löschen und ZFS verwenden“ auswählen
– „Die neue Linux Mint-Installation zur Sicherheit verschlüsseln“ auswählen
Nach dem Klick auf OK geht es dann im Installer weiter; man wählt die Festplatte aus, gibt das Passwort zur Ver-/ Entschlüsselung ein, es wird installiert … fertig 🙂