Skip to main content

ZFS modules cannot be auto-loaded

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

Diese Anleitung fasst alle notwendigen Schritte zusammen, um OpenZFS (≥ 2.3.x) als DKMS‑Modul auf einem Debian‑13‑System zu installieren, nach Kernel‑Updates erneut zu bauen und typische Fehler (fehlendes zfs.ko, Secure‑Boot‑Probleme, fehlende Abhängigkeiten) zu beheben.


1  Voraussetzungen & Grundlagen

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

2  Repositories einrichten

ZFS liegt im Zweig contrib. Kontrolliere, dass contrib in /etc/apt/sources.list (oder den Dateien in /etc/apt/sources.list.d/) vorhanden ist:

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

apt install build-essential dkms linux-headers-$(uname -r) \
            zfs-dkms zfsutils-linux
Hinweis: Falls du einen generischen Metakernel (linux-image-amd64) verwendest, installiere zusätzlich linux-headers-amd64, damit die Header bei jedem Kernel‑Upgrade automatisch mitinstalliert werden.

4  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  Fehlende Module bauen und installieren

Falls das Modul den Status added hat, führe aus:

dkms autoinstall -k $(uname -r)

Die Ausgabe sollte mit DKMS: install completed. enden. Bei Fehlern siehe /var/lib/dkms/zfs/<version>/build/make.log.


6  Modul laden & ZFS‑Pool prüfen

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

7  Secure‑Boot‑Hinweis

Bei aktiviertem Secure Boot verweigert der Kernel unsignierte Module. Möglichkeiten:

  1. Secure Boot temporär im BIOS/UEFI deaktivieren.
  2. Eigenen MOK‑Schlüssel erzeugen, Modul signieren und via 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), damit immer passende Header da sind.
  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

Problem Abhilfe
Header fehlen (modprobe: FATAL: Module not found) apt install linux-headers-$(uname -r), dann dkms autoinstall
DKMS‑Build schlägt fehl apt install dwarves libelf-dev libssl-dev; Log auswerten (/var/lib/dkms/.../make.log)
Secure Boot blockiert Modul Module signieren oder Secure Boot deaktivieren
Falsche/alte ZFS‑Version Auf ≥ 2.3.x aktualisieren (apt full-upgrade)

10  Schnellreferenz (TL;DR)

# 1. Repos & Pakete
apt update && apt install build-essential dkms linux-headers-$(uname -r) zfs-dkms zfsutils-linux

# 2. Module bauen (falls nötig)
dkms autoinstall -k $(uname -r)

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

Stand: 29. Juni 2025   |  Autor: [dein Name]