Skip to main content

ZFS modules cannot be auto-loaded

ZFS‑ZFS-DKMS – Schritt‑Schritt-r‑Schritt‑r-Schritt-Anleitung für Debian 13 (Trixie)

Diese Anleitung fasst alledie notwendigen Schritte zusammen, um OpenZFS (≥ 2.3.x) als DKMS‑DKMS-Modul auf einemDebian Debian‑13‑System13 zu installieren, nach Kernel‑Kernel-Updates erneutneu zu bauen und typische Fehler (fehlendes zfs.ko, Secure‑Boot‑Probleme,DKMS-Build-Fehler, fehlende Abhängigkeiten)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 Regel zfs-dkms aus stable.
  • Neuer Kernel (z.B. 6.17.x): Nutze zfs-dkms aus trixie-backports (neuere OpenZFS-Versionen enthalten die nötigen Kernel-Anpassungen).

1  Voraussetzungen & Grundlagen

  • Laufender Debian‑13‑Kernel (Beispiel: 6.12.33+deb13‑amd64).
  • Root‑Root-Zugriff (sudo -i oder direkt als root).
  • Aktiver Netzwerkzugang zu deb.debian.org.Debian-Repos.
  • Optional (Secure Boot):: Möglichkeit, Secure Boot im Firmware‑Setup zu deaktivieren oder eigene Module zumüssen signieren.signiert sein, sonst werden sie geblockt.

2  Repositories einrichten

ZFS liegt im Zweigin contrib. Kontrolliere,Stelle sicher, dass contrib in(und ggf. /etc/apt/sources.listnon-free (oder den Dateien in, /etc/apt/sources.list.d/non-free-firmware) vorhandenaktiv ist:ist.

deb http:https://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb http:https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb http: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

Installiere die Build‑Werkzeuge, DKMS, ZFS‑Pakete sowie die Header für den aktuell laufenden Kernel: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
Hinweis: FallsWenn du einennicht generischenden MetakernelDebian-Kernel nutzt (linux-image-amd64) verwendest, installiere zusätzlich linux-headers-amd64Custom/extern), damitmüssen die Headerpassenden beiHeader/Build-Links jedemexistieren: Kernel‑Upgrade/lib/modules/$(uname automatisch-r)/build mitinstalliertund werden./lib/modules/$(uname -r)/source.

4  DKMS‑DKMS-Status prüfen

dkms status

Erwartete Ausgaben:

  • zfs/2.3.2, 6.12.33+deb13-amd64, x86_64: installed  → Modul fertig gebaut.
  • zfs/2.3.2, 6.12.33+deb13-amd64, x86_64: added       → Quellcode registriert, aber noch nicht kompiliert.

5  FehlendeZFS-Modul bauen & installieren (gezielt)

Wenn du dkms autoinstall nutzt, baut DKMS alle Module bauen(z.B. auch NVIDIA) und installierendu

Fallsbekommst am Ende nur "alles kaputt". Für ZFS ist es oft besser, gezielt das ZFS-Modul denzu Status added hat, führe aus:bauen:

ZFS_VER="$(dpkg-query -W -f='${Version}\n' zfs-dkms autoinstall| sed 's/-.*//')"
dkms install -m zfs -v "$ZFS_VER" -k "$(uname -r)"

DieWenn Ausgabedas solltefehlschlägt: mitLog DKMS: install completed. enden. Bei Fehlern sieheansehen: /var/lib/dkms/zfs/<version>/build/make.log.


6  Modul laden & ZFS‑PoolZFS prüfen

modprobe zfs
zpool status -v
Wenn zpool status deine Pools korrekt anzeigt, ist ZFS aktiv.

7  Secure‑Boot‑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 verweigert der Kernelwerden unsignierte Module.Module Möglichkeiten:nicht geladen. Typische Fehlermeldungen sind z.B. Required key not available oder Key was rejected.

    • Secure Boot temporär im BIOS/UEFI deaktivieren.deaktivieren, oder
    • Eigenen MOK‑MOK-Schlüssel erzeugen, Modul signierenimportieren und viaenrollen (mokutil --import hinterlegen.

Nach der Signatur das Modul erneut laden:

modprobe zfs

8  Automatisierung für zukünftige Kernel‑Updates

  1. Header‑Metapakete installiert lassen (linux-headers-amd64...), damitdann immerbeim passendenächsten HeaderBoot da sind.bestätigen.
  2. Sicherstellen, dass der DKMS‑Autoinstaller aktiviert ist:
    systemctl enable dkms-autoinstaller.service
  3. Nach jedem apt full-upgrade einmal überprüfen:
    dkms status

9  Problemlösung & häufige Stolperfallen

libelf-devlibssl-dev;Log
ProblemSymptom AbhilfeTypische UrsacheFix
Header fehlen (modprobe: FATAL: Module zfs not found)DKMS-Build ist fehlgeschlagen, Modul wurde nie gebaut/installed aptdkms installstatus linux-headers-$(uname -r),prüfen, dann Log dkms autoinstall/var/lib/dkms/zfs/.../make.log
DKMS‑BuildDKMS schlägtbricht fehlmit pahole: not found abdwarves fehlt apt install dwarves
DKMS-Build auswertenbricht bei neuem Kernel (API-Fehler) abZFS-Version zu alt für den KernelZFS aus /var/lib/dkms/.../make.logtrixie-backports) installieren oder auf Debian-Standardkernel wechseln
Secure Boot blockiert Modul ModuleModul signierennicht signiert / MOK nicht enrolledMOK enrollen oder Secure Boot deaktivieren
Falsche/alte ZFS‑VersionAuf ≥ 2.3.x aktualisieren (apt full-upgrade)

10  Schnellreferenz (TL;DR)

# 1. Repos &ok? Pakete(contrib aktiv) + update
apt update

&&# Basis
apt install build-essential dkms linux-headers-$(uname -r) zfs-dkms zfsutils-linux

# 2.Optional: Module bauen (falls nötig)"pahole not found"
apt install dwarves

# ZFS gezielt bauen/installen
ZFS_VER="$(dpkg-query -W -f='${Version}\n' zfs-dkms | sed 's/-.*//')"
dkms autoinstallinstall -m zfs -v "$ZFS_VER" -k "$(uname -r)"

# 3. Modul ladenLaden & Pool prüfen
modprobe zfs
zpool status -v