Issue loading OpenZFS kernel modules in Fedora Silverblue

submitted by iotzan edited

Hello good people,

Hoping this is an appropriate place for troubleshooting questions, I'm learning Linux & OpenZFS in preparation of a server + NAS build, currently working in VMware Workstation. I have successfully setup OpenZFS on Fedora 39 and have configured my zpool using virtual disks.

Now I am looking to replicate the setup on Fedora Silverblue: setup OpenZFS, import the existing disks, then attach the zpool.

1. Import the OpenZFS repository

rpm-ostree install -y https://zfsonlinux.org/fedora/zfs-release-2-4$(rpm --eval "%{dist}").noarch.rpm

2. Confirmed zfs-fuse is not used

rpm-ostree override remove zfs-fuse error: Package "zfs-fuse" not found

3. Layer the kernel headers

rpm-ostree install kernel-devel

4. Layer OpenZFS

rpm-ostree install zfs

5. Confirmed status

rpm-ostree status State: idle Deployments: ● fedora:fedora/39/x86_64/kinoite Version: 39.20240304.0 (2024-03-04T00:39:42Z) BaseCommit: b30269aa0e2604e24fd74596a75ee79ef77e6bc2b20f87b49d02f2796ccd3da2 GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C LayeredPackages: kernel-devel zfs LocalPackages: zfs-release-2-4.fc39.noarch

6. I was expecting the next step to fail

modprobe zfs modprobe: FATAL: Module zfs not found in directory /lib/modules/6.7.7-200.fc39.x86_64 Nevertheless, I went ahead and created the 2 zfs.conf files as described in the OpenZFS documentation. cat /etc/modules-load.d/zfs.conf\ zfs\ cat /etc/dnf/protected.d/zfs.conf\ zfs

7. This is where I am now stuck

I have tired a number of things such as:

rpm-ostree kargs --append=modprobe=zfs ``` rpm-ostree kargs rhgb quiet root=UUID=cbaf12f4-d5b4-4d24-83d6-83ad53730f2a rootflags=subvol=root rw ostree=/ostree/boot.1/fedora/5d2cc07d31373ad2a64ab4ed610ce5a45625bd317c1447d2947a489056a5c077/0 modprobe=zfs

```

rpm-ostree initramfs-etc --track=/etc/modules-load.d/zfs.conf\ rpm-ostree initramfs-etc --track=/etc/dnf/protected.d/zfs.conf rpm-ostree status State: idle Deployments: ● fedora:fedora/39/x86_64/kinoite Version: 39.20240304.0 (2024-03-04T00:39:42Z) BaseCommit: b30269aa0e2604e24fd74596a75ee79ef77e6bc2b20f87b49d02f2796ccd3da2 GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C LayeredPackages: kernel-devel zfs LocalPackages: zfs-release-2-4.fc39.noarch InitramfsEtc: /etc/dnf/protected.d/zfs.conf /etc/modules-load.d/zfs.conf

8. zfs, zpool seem ok as I can get the help output or read the man pages, however:

zpool status\ The ZFS modules cannot be auto-loaded.\ Try running 'modprobe zfs' as root to manually load them.

zfs get all\ The ZFS modules cannot be auto-loaded.\ Try running 'modprobe zfs' as root to manually load them.

Obviously, I'm missing something due to my gaps in experience with Linux. I see that Universal Blue has incorporated OpenZFS as described on the GitHub page, so it should be possible for me to achieve this as well, I suppose.

Any pointers, documentation or advice is appreciated!

Log in to comment

7 Comments

ScottE , edited

I don't use Fedora, but I have ZFS on all my Arch systems for everything (including root fs). So, I'll make a guess - is the package you installed for ZFS a DKMS kernel module, or a binary one? That's the first thing. If it's a DKMS module, I don't see anything on your output showing it was compiled, which would explain the module not loading. If it's a binary module in that package, it must be for the exact same version of the kernel that is installed - exact same. If it mismatches then you need either a different kennel or different ZFS package. In either case, you'll probably need to wire in a hook for your initramfs, but it looks that part might be ok from your output. Hope that helps, good luck. ZFS is incredibly good.

iotzan [OP]

This is where my knowledge of Linux falls short.

is the package you installed for ZFS a DKMS kernel module, or a binary one?

In both Fedora and Silverblue I find the same, ZFS-related *files*, under /usr/sbin/ Jan 1 1970 blkzone lrwxrwxrwx. 43 root root 11 Feb 28 13:59 cache_metadata_size -> pdata_tools -rwxr-xr-x. 3 root root 24176 Jan 1 1970 fatresize -rwxr-xr-x. 3 root root 756 Jan 1 1970 fsck.zfs -rwxr-xr-x. 3 root root 15960 Jan 1 1970 fsfreeze lrwxrwxrwx. 91 root root 3 Feb 28 13:59 lvresize -> lvm -rwxr-xr-x. 3 root root 24104 Jan 1 1970 mount.zfs lrwxrwxrwx. 3 root root 22 Feb 28 13:59 named-checkzone -> ../bin/named-checkzone lrwxrwxrwx. 3 root root 24 Feb 28 13:59 named-compilezone -> ../bin/named-compilezone -rwxr-xr-x. 3 root root 32568 Jan 1 1970 nilfs-resize -rwxr-xr-x. 3 root root 69672 Jan 1 1970 ntfsresize lrwxrwxrwx. 91 root root 3 Feb 28 13:59 pvresize -> lvm -rwxr-xr-x. 3 root root 73784 Jan 1 1970 resize2fs lrwxrwxrwx. 11 root root 9 Feb 28 13:59 resize.f2fs -> fsck.f2fs -rwxr-xr-x. 3 root root 24408 Jan 1 1970 resizepart lrwxrwxrwx. 43 root root 11 Feb 28 13:59 thin_metadata_size -> pdata_tools -rwxr-xr-x. 3 root root 804 Jan 1 1970 xfs_freeze -rwxr-xr-x. 3 root root 212440 Jan 1 1970 zdb -rwxr-xr-x. 3 root root 107736 Jan 1 1970 zed -rwxr-xr-x. 3 root root 149984 Jan 1 1970 zfs -rwxr-xr-x. 3 root root 15920 Jan 1 1970 zfs_ids_to_path -rwxr-xr-x. 3 root root 15920 Jan 1 1970 zgenhostid -rwxr-xr-x. 3 root root 32472 Jan 1 1970 zhack -rwxr-xr-x. 3 root root 65400 Jan 1 1970 zic -rwxr-xr-x. 3 root root 36536 Jan 1 1970 zinject -rwxr-xr-x. 3 root root 264288 Jan 1 1970 zpool -rwxr-xr-x. 3 root root 57688 Jan 1 1970 zramctl -rwxr-xr-x. 3 root root 40720 Jan 1 1970 zstream lrwxrwxrwx. 3 root root 7 Mar 4 10:20 zstreamdump -> zstream -rwxr-xr-x. 3 root root 162208 Jan 1 1970 ztest -rwxr-xr-x. 3 root root 53384 Jan 1 1970 zvbid

Also, ztest does *something* verifying concrete vdev 0, metaslab 11 of 12 ... loading concrete vdev 0, metaslab 11 of 12 ... verifying concrete vdev 0, metaslab 11 of 12 ...

I assume, therefor, that OpenZFS exists, however the kernel is not loading the related module.\ Binary, library or something else - how can I tell?

MrSpandex

Unfortunately this is why I chose to run Ubuntu server. As far as I know, it's the only distro with ZFS set up by default. I wish you luck, as I run Silverblue as my desktop and would love to run it for my server too!

iotzan [OP]

I chose Fedora since I'm most familiar with RedHat from my professional activities.

The Zen Cow Says Mu , edited

DKMS isn't supported on Silverblue. Only Kmods. So there's your problem.

https://docs.fedoraproject.org/en-US/fedora-silverblue/troubleshooting/

Even if you can get it to work, running ZFS on fedora generally is an exercise in frustration because the kernels update to newer versions than what ZFS supports anyway.

iotzan [OP]

Thank you! This is the page where I discovered that I can try rpm-ostree kargs --append=modprobe=zfs, which didn't work.\ Still, as far as I understand it, ublue managed to overcome this, as they do offer a Fedora version with zfs included.\ What am I missing?

The Zen Cow Says Mu

ublue built zfs as a kmod.