ZFS modules cannot be auto-loaded
ZFS-DKMS – Schritt-für-Schritt-Anleitung für Debian 13 (Trixie)
Diese Anleitung fasst die notwendigen Schritte zusammen, um OpenZFS als DKMS-Modul auf Debian 13 zu installieren, nach Kernel-Updates neu zu bauen und typische Fehler (fehlendes zfs.ko, DKMS-Build-Fehler, Secure-Boot) zu beheben.
0 Wichtig: Kernel-/ZFS-Kompatibilität
Wenn du einen Kernel verwendest, der deutlich neuer ist als der Debian-Standardkernel, kann zfs-dkms aus stable schlicht zu alt sein und der Build scheitert.
- Debian-Standard (empfohlen): Nutze
linux-image-amd64+linux-headers-amd64. Damit passt in der Regelzfs-dkmsaus stable. - Neuer Kernel (z.B. 6.17.x): Nutze
zfs-dkmsaustrixie-backports(neuere OpenZFS-Versionen enthalten die nötigen Kernel-Anpassungen).
1 Voraussetzungen & Grundlagen
- Root-Zugriff (
sudo -ioder direkt alsroot). - Netzwerkzugang zu Debian-Repos.
- Optional (Secure Boot): Module müssen signiert sein, sonst werden sie geblockt.
2 Repositories einrichten
ZFS liegt in contrib. Stelle sicher, dass contrib (und ggf. non-free, non-free-firmware) aktiv ist.
deb https://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
Optional (nur wenn du einen neueren Kernel fährst oder neuere ZFS-Version brauchst): Backports aktivieren:
deb https://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
Anschließend:
apt update
3 Benötigte Pakete installieren
Basis:
apt install build-essential dkms linux-headers-$(uname -r) zfs-dkms zfsutils-linux
Empfohlen für Kernel-Updates: Metapakete, damit Kernel & Header zusammen laufen:
apt install linux-image-amd64 linux-headers-amd64
Wenn DKMS über "pahole not found" stolpert: (kommt vor, leider)
apt install dwarves
/lib/modules/$(uname -r)/build und /lib/modules/$(uname -r)/source.4 DKMS-Status prüfen
dkms status
5 ZFS-Modul bauen & installieren (gezielt)
Wenn du dkms autoinstall nutzt, baut DKMS alle Module (z.B. auch NVIDIA) und du bekommst am Ende nur "alles kaputt". Für ZFS ist es oft besser, gezielt das ZFS-Modul zu bauen:
ZFS_VER="$(dpkg-query -W -f='${Version}\n' zfs-dkms | sed 's/-.*//')"
dkms install -m zfs -v "$ZFS_VER" -k "$(uname -r)"
Wenn das fehlschlägt: Log ansehen: /var/lib/dkms/zfs/<version>/build/make.log
6 Modul laden & ZFS prüfen
modprobe zfs
zpool status -v
7 Spezialfall: Neuer Kernel (z.B. 6.17.x) – ZFS aus Backports
Wenn dein Kernel deutlich neuer ist als der Debian-Standardkernel, aktualisiere ZFS über Backports:
apt install -t trixie-backports zfs-dkms zfsutils-linux
Danach das ZFS-DKMS-Modul wie oben gezielt installieren (Abschnitt 5).
8 Secure-Boot-Hinweis
Bei aktiviertem Secure Boot werden unsignierte Module nicht geladen. Typische Fehlermeldungen sind z.B. Required key not available oder Key was rejected.
- Secure Boot im UEFI deaktivieren, oder
- MOK-Schlüssel importieren und enrollen (
mokutil --import ...), dann beim nächsten Boot bestätigen.
9 Problemlösung & häufige Stolperfallen
| Symptom | Typische Ursache | Fix |
|---|---|---|
modprobe: FATAL: Module zfs not found |
DKMS-Build ist fehlgeschlagen, Modul wurde nie gebaut/installed | dkms status prüfen, dann Log /var/lib/dkms/zfs/.../make.log |
DKMS bricht mit pahole: not found ab |
dwarves fehlt |
apt install dwarves |
| DKMS-Build bricht bei neuem Kernel (API-Fehler) ab | ZFS-Version zu alt für den Kernel | ZFS aus trixie-backports installieren oder auf Debian-Standardkernel wechseln |
| Secure Boot blockiert Modul | Modul nicht signiert / MOK nicht enrolled | MOK enrollen oder Secure Boot deaktivieren |
10 Schnellreferenz (TL;DR)
# Repos ok? (contrib aktiv) + update
apt update
# Basis
apt install build-essential dkms linux-headers-$(uname -r) zfs-dkms zfsutils-linux
# Optional: falls "pahole not found"
apt install dwarves
# ZFS gezielt bauen/installen
ZFS_VER="$(dpkg-query -W -f='${Version}\n' zfs-dkms | sed 's/-.*//')"
dkms install -m zfs -v "$ZFS_VER" -k "$(uname -r)"
# Laden & prüfen
modprobe zfs
zpool status -v
No Comments