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 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. Besonders wichtig ist der Fall, dass ZFS zwar erfolgreich für einen neuen Kernel gebaut wurde, das System aber noch mit einem alten Kernel läuft.


0  Wichtig: Kernel-/ZFS-KompatibilitätLaufender Kernel und DKMS-Modul müssen zusammenpassen

DKMS baut Kernelmodule immer für bestimmte Kernelversionen. modprobe lädt Module aber nur für den aktuell laufenden Kernel. Der aktuell laufende Kernel wird so angezeigt:

uname -r

Der DKMS-Status wird so angezeigt:

dkms status
Wichtig: Wenn duuname -r einen anderen Kernel verwendest,zeigt derals deutlichdkms neuerstatus, dann ist alsZFS dernicht Debian-Standardkernel,für kannden aktuell laufenden Kernel installiert. In diesem Fall hilft oft kein weiterer Build, sondern ein Neustart in den Kernel, für den DKMS das Modul bereits gebaut hat.

Beispiel:

uname -r
6.12.74+deb13+1-amd64
dkms status
zfs/2.3.2, 6.12.90+deb13.1-amd64, x86_64: installed

In diesem Beispiel läuft das System noch mit Kernel zfs-dkms6.12.74+deb13+1-amd64, ausZFS stablewurde schlichtaber zu alt sein und der Build scheitert.

  • Debian-Standard (empfohlen): Nutzefür linux-image-6.12.90+deb13.1-amd64 +gebaut. linux-headers-amd64.modprobe Damit passt in der Regel zfs-dkmszfs ausmuss stable.
  • dann
  • Neuerfehlschlagen, Kernelweil (z.B.es 6.17.x):im Nutzefalschen zfs-dkmsModulverzeichnis aus trixie-backports (neuere OpenZFS-Versionen enthalten die nötigen Kernel-Anpassungen).
sucht.


1  Voraussetzungen & Grundlagen

  • Root-ZugriffZugriff, (sudo -i oderentweder direkt als root). oder über eine Root-Shell.
  • Netzwerkzugang zu den Debian-Repos.Repositories.
  • Aktiviertes contrib-Repository, da ZFS in Debian dort liegt.
  • Optional (bei Secure Boot):Boot: ModuleMOK-Schlüssel müssen signiertimportiert sein,und sonstbestätigt werden sie geblockt.werden.

2  Repositories einrichten

ZFS liegt in Debian in contrib. Stelle daher sicher, dass contrib (undaktiv ggf.ist. Optional können non-free, und non-free-firmware) aktivergänzt ist.werden, wenn das System entsprechende Firmware benötigt.

Beispiel für /etc/apt/sources.list oder eine passende Datei unter /etc/apt/sources.list.d/:

deb https:http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb https:http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb https:http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware

Optional (nurfür wenn du einen neueren Kernel fährst oder neuere ZFS-Version brauchst): Backports aktivieren:Backports:

deb https:http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware

Anschließend:Danach die Paketlisten aktualisieren:

apt update

3  Benötigte Pakete installieren

Basis:

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

Empfohlen fürist die Installation der Kernel-Updates: Metapakete,und damitHeader-Metapakete. Dadurch werden Kernel &und Header zusammengemeinsam laufen:aktuell gehalten, statt dass man irgendwann mit einem Kernel ohne passende Header herumsteht. Das ist ungefähr so sinnvoll wie ein Fahrrad ohne Vorderrad, nur mit mehr Fehlermeldungen.

apt install linux-image-amd64 linux-headers-amd64

WennDanach ZFS und die Build-Werkzeuge installieren:

apt install build-essential dkms zfs-dkms zfsutils-linux

Falls DKMS überwegen "pahole notoder found"BTF-Erzeugung stolpert: (kommt vor, leider)fehlschlägt:

apt install dwarves
Hinweis: Wenn du nicht denkein Debian-KernelStandardkernel nutztverwendet (Custom/extern),wird, müssen die passenden Header/Header oder Build-LinksVerzeichnisse existieren:vorhanden sein: /lib/modules/$(uname -r)/build und /lib/modules/$(uname -r)/source.

4  Nach Kernel- oder Header-Update neu starten

Wenn ein neuer Kernel installiert wurde, läuft das System nicht automatisch mit diesem Kernel. Der neue Kernel wird erst nach einem Neustart verwendet.

Vor dem Neustart kann man prüfen, welche Kernelmodul-Verzeichnisse vorhanden sind:

ls /lib/modules

Außerdem den DKMS-Status prüfenfen:

dkms status

Wenn ZFS für einen neuen Kernel gebaut wurde, aber uname -r noch den alten Kernel zeigt:

reboot

Nach dem Neustart erneut prüfen:

uname -r
dkms status

Der laufende Kernel aus uname -r sollte jetzt zu einem ZFS-Eintrag aus dkms status passen.


5  ZFS-Modul bauenladen &und installieren (gezielt)prüfen

Wenn duder dkmslaufende autoinstall nutzt, baut DKMS alle Module (z.B. auch NVIDIA)Kernel und duder bekommstDKMS-Eintrag amzusammenpassen, Ende nur "alles kaputt". Für ZFS ist es oft besser, gezieltkann das ZFS-Modul geladen werden:

modprobe zfs

Danach prüfen:

lsmod | sed -n '/^zfs/p'
zpool status -v
Hinweis: Wenn noch kein ZFS-Pool existiert, kann zpool status melden, dass keine Pools vorhanden sind. Das ist dann kein Fehler des Kernelmoduls.

6  ZFS gezielt für den laufenden Kernel bauen

Diesen Schritt nur verwenden, wenn dkms status keinen installierten ZFS-Eintrag für den aktuell laufenden Kernel zeigt.

ZFS-Version aus dem installierten Paket ermitteln:

ZFS_VER="$(dpkg-query -W -f='${Version}\n' zfs-dkms | sed 's/-.*//')"
echo "$ZFS_VER"

ZFS für den aktuell laufenden Kernel bauen und installieren:

dkms install -m zfs -v "$ZFS_VER" -k "$(uname -r)"

Danach laden:

modprobe zfs

Wenn der Build fehlschlägt, das DKMS-Log ansehen:

less /var/lib/dkms/zfs/"$ZFS_VER"/build/make.log

7  Häufiger Fehler: Header für den aktuell laufenden Kernel fehlen

Typisches Fehlerbild:

apt install linux-headers-$(uname -r)
Fehler: Paket linux-headers-6.12.74+deb13+1-amd64 kann nicht gefunden werden.
Fehler: Mittels des Musters »linux-headers-6.12.74+deb13+1-amd64« konnte kein Paket gefunden werden.

Das bedeutet meistens: Der aktuell laufende Kernel ist nicht mehr der Kernel, für den die Repositories aktuell Header anbieten. Statt ewig nach alten Headern zu bauen:suchen, sollte man die Kernel- und Header-Metapakete installieren:

apt install linux-image-amd64 linux-headers-amd64

Wenn DKMS dabei ZFS erfolgreich für den neuen Kernel baut, danach neu starten:

reboot

Nach dem Neustart:

uname -r
dkms status
modprobe zfs

8  Backports nur bei Bedarf verwenden

Backports sind sinnvoll, wenn ein neuerer Kernel verwendet wird oder wenn die ZFS-Version aus Stable zu alt für den verwendeten Kernel ist.

ZFS aus Backports installieren:

apt install -t trixie-backports zfs-dkms zfsutils-linux

Wenn auch der Kernel aus Backports verwendet werden soll:

apt install -t trixie-backports linux-image-amd64 linux-headers-amd64

Danach neu starten:

reboot

Nach dem Neustart prüfen:

uname -r
dkms status
modprobe zfs
zpool status -v
Hinweis: Nicht Stable-Kernel, Backports-Header und Stable-ZFS wild mischen, außer der Grund ist klar. APT ist kein Smoothie-Mixer.

9  Secure Boot prüfen

Wenn Secure Boot aktiv ist, können nicht korrekt signierte oder nicht akzeptierte Module blockiert werden.

Typische Fehlermeldungen:

modprobe: ERROR: could not insert 'zfs': Key was rejected by service

Required key not available

Secure-Boot-Status prüfen:

mokutil --sb-state

Wenn Secure Boot aktiv ist, gibt es zwei saubere Möglichkeiten:

  • Secure Boot im UEFI deaktivieren.
  • Den DKMS/MOK-Schlüssel importieren und beim nächsten Boot bestätigen.

Beim DKMS-Build sieht man häufig Hinweise wie:

Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Dann kann der öffentliche Schlüssel importiert werden:

mokutil --import /var/lib/dkms/mok.pub

Danach neu starten und im MOK-Menü bestätigen.


10  Alte Kernel nicht vorschnell entfernen

Alte Kernel sollten erst entfernt werden, wenn ZFS mit dem neuen Kernel erfolgreich geladen wurde.

uname -r
dkms status
modprobe zfs
zpool status -v

Wenn alles funktioniert, können alte nicht mehr benötigte Pakete später bereinigt werden:

apt autoremove

11  Problemlösung und häufige Stolperfallen

SymptomWahrscheinliche UrsacheLösung
modprobe: FATAL: Module zfs not found in directory /lib/modules/<kernel>ZFS wurde nicht für den aktuell laufenden Kernel gebaut.uname -r und dkms status vergleichen.
linux-headers-$(uname -r) kann nicht gefunden werden.Der laufende Kernel ist älter oder stammt nicht mehr aus den aktuell verfügbaren Repositories.linux-image-amd64 und linux-headers-amd64 installieren, danach neu starten.
DKMS zeigt ZFS für einen neueren Kernel als uname -r.Der neue Kernel wurde installiert, aber noch nicht gebootet.System neu starten und danach erneut prüfen.
DKMS-Build schlägt wegen pahole fehl.Das Paket dwarves fehlt.apt install dwarves
Modul wird wegen Schlüssel abgelehnt.Secure Boot blockiert das Modul.Secure Boot deaktivieren oder MOK-Schlüssel enrollen.
Build bricht mit Kernel-API-Fehlern ab.Die installierte ZFS-Version passt nicht zum verwendeten Kernel.ZFS aus trixie-backports nutzen oder auf den Debian-Stable-Kernel wechseln.

12  Schnellreferenz

Standardfall Debian 13 Stable

apt update
apt install linux-image-amd64 linux-headers-amd64
apt install build-essential dkms zfs-dkms zfsutils-linux
reboot

Nach dem Neustart:

uname -r
dkms status
modprobe zfs
zpool status -v

Wenn ZFS für den laufenden Kernel fehlt

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

Wenn ein neuerer Backports-Kernel genutzt wird

apt install -t trixie-backports linux-image-amd64 linux-headers-amd64
apt install -t trixie-backports zfs-dkms zfsutils-linux
reboot

Wenn das fehlschlägt: Log ansehen: /var/lib/dkms/zfs/<version>/build/make.logDanach:


6  Modul laden & ZFS prüfen

uname -r
dkms status
modprobe zfs
zpool status -v

713  Spezialfall:Praxisbeispiel: NeuerZFS wurde gebaut, aber der alte Kernel (z.B.läuft 6.17.x) – ZFS aus Backportsnoch

WennAusgangslage:

dein
uname -r
6.12.74+deb13+1-amd64

Die Header für diesen Kernel deutlichsind neuernicht ist als der Debian-Standardkernel, aktualisiere ZFS über Backports:installierbar:

apt install -tlinux-headers-6.12.74+deb13+1-amd64
trixie-backports
Fehler: zfs-dkmsPaket zfsutils-linuxlinux-headers-6.12.74+deb13+1-amd64 kann nicht gefunden werden.
Fehler: Mittels des Musters »linux-headers-6.12.74+deb13+1-amd64« konnte kein Paket gefunden werden.

Danach daswerden ZFS-DKMS-Moduldie wieMetapakete obeninstalliert:

gezielt
apt installiereninstall linux-image-amd64 linux-headers-amd64

DKMS baut ZFS erfolgreich für den neuen Kernel:

Autoinstall of module zfs/2.3.2 for kernel 6.12.90+deb13.1-amd64 (Abschnittx86_64)
5).

Building

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 module(s)................................................. done. Installing /lib/modules/6.12.90+deb13.1-amd64/updates/dkms/zfs.ko.xz Autoinstall on 6.12.90+deb13.1-amd64 succeeded for module(s) zfs.),
dann

Trotzdem beimschlägt nächstenmodprobe Bootzfs bestätigen.fehl:


9  Problemlösung & häufige Stolperfallen

falscheodereinenfunktionieren.

WennNeustartweiterhindermuss
SymptomTypische UrsacheFix
modprobe: FATAL: Module zfs not found in directory /lib/modules/6.12.74+deb13+1-amd64
DKMS-

Der Grund ist simpel: Das System läuft noch mit 6.12.74+deb13+1-amd64. ZFS wurde aber für 6.12.90+deb13.1-amd64 gebaut. Der Build ist fehlgeschlagen,also Modulerfolgreich, wurdeaber nieder gebaut/installed

Kernel ist aktiv.

Korrekte Lösung:

reboot

Nach dem Neustart:

uname -r
dkms status
modprobe zfs

Wenn uname -r prüfen, dann Logjetzt /var/lib/dkms/zfs/.../make.log6.12.90+deb13.1-amd64

DKMSanderen brichtKernel mit passendem ZFS-DKMS-Eintrag zeigt, sollte pahole:modprobe not foundzfs ab dwarves
Hinweis: fehlt
aptnach installdem dwarves
DKMS-Build bricht bei neuemalte Kernel (API-Fehler)läuft, ab ZFS-Versiondie zuBootloader-Auswahl altgeprüft werden. Dann ist nicht ZFS das Problem, sondern das System bootet schlicht nicht den Kernel, für den KernelZFS aus trixie-backports installieren oder auf Debian-Standardkernel wechseln
Secure Boot blockiertdas Modul Modulgebaut nicht signiert / MOK nicht enrolledMOK 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
wurde.

Stand: FebruarJuni 2026