FULL AI ANALYSIS

Ubuntu ZFS pool refuses import after kernel upgrade: 'incompatible feature flags' and module version mismatch

Generated Oct 3, 2026, 12:35:03 AM

Analysis summary

The core issue is mismatch between the ZFS on Linux kernel module version and the on-disk pool feature flags. Kernel upgrade changed ABI or DKMS failed to build a matching module, leaving either an older ZFS userspace with incompatible on-disk features or an incomplete kernel module. Pools upgraded (feature flags set) on another host will refuse to import on older ZFS implementations. Attempting any write operations on an incompatible implementation risks corruption. Best path is to import read-only to examine metadata, then run matching ZFS tooling / kernel module that supports the pool's features.

Possible causes

Pool was used on a host with newer ZFS feature flags enabled; current host's ZFS implementation lacks those features.

95%

Partial upgrade left zfsutils (userspace utilities) and kernel module out-of-sync (different versions).

90%

DKMS failed to build a kernel module against the new kernel headers, leaving an older or missing kernel module.

85%

Booting with a kernel that has an incompatible ABI for the existing ZFS DKMS module, causing module build failures.

80%

Suggested fixes

1

Diagnostic step 1

Do not attempt zpool import -f or any commands that may write metadata until you have a compatible ZFS environment; prefer read-only operations.

2

Diagnostic step 2

Boot the machine into the older kernel (5.15) where ZFS previously worked and attempt zpool import -o readonly=on to confirm data visibility; if it imports read-only, create a full backup (replicate dataset to another system) before further changes.

3

Diagnostic step 3

Examine zfs --version and zpool import -D output to discover specific feature flags required; on a temporary rescue system with matching ZFS version (or the original host that last used the pool), export the pool cleanly and then import here after resolving module mismatch.

4

Diagnostic step 4

Install a matching ZFS package set: either (a) install vendor-provided zfs packages whose versions match the pool, or (b) obtain the exact kernel-modules matching your zfsutils package (avoid mixing upstream builds). If DKMS build fails, install prebuilt zfs modules for your kernel (from Ubuntu archives) or revert to the kernel where DKMS builds succeeded. If you cannot resolve package/version mismatches or recover a read-only import, escalate to a storage specialist or ZFS mailing list/bug tracker with: zfs/zpool version outputs, dmesg logs, zpool import -D output and copies of the first 1MB of device blocks (using dd) so experts can analyse without risking writes.