Issue loading OpenZFS kernel modules in Fedora Silverblue
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
<span style="color:#323232;">error: Package "zfs-fuse" not found
</span>
3. Layer the kernel headers
rpm-ostree install kernel-devel
4. Layer OpenZFS
rpm-ostree install zfs
5. Confirmed status
rpm-ostree status
<span style="color:#323232;">State: idle
</span><span style="color:#323232;">Deployments:
</span><span style="color:#323232;">● fedora:fedora/39/x86_64/kinoite
</span><span style="color:#323232;"> Version: 39.20240304.0 (2024-03-04T00:39:42Z)
</span><span style="color:#323232;"> BaseCommit: b30269aa0e2604e24fd74596a75ee79ef77e6bc2b20f87b49d02f2796ccd3da2
</span><span style="color:#323232;"> GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
</span><span style="color:#323232;"> LayeredPackages: kernel-devel zfs
</span><span style="color:#323232;"> LocalPackages: zfs-release-2-4.fc39.noarch
</span>
6. I was expecting the next step to fail
modprobe zfs
<span style="color:#323232;">modprobe: FATAL: Module zfs not found in directory /lib/modules/6.7.7-200.fc39.x86_64
</span>
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:
i. Adding modprobe as a kernel argument similar to Silverblue using nVidia drivers
rpm-ostree kargs --append=modprobe=zfs
<span style="color:#323232;">rpm-ostree kargs
</span><span style="color:#323232;">rhgb quiet root=UUID=cbaf12f4-d5b4-4d24-83d6-83ad53730f2a rootflags=subvol=root rw ostree=/ostree/boot.1/fedora/5d2cc07d31373ad2a64ab4ed610ce5a45625bd317c1447d2947a489056a5c077/0 modprobe=zfs
</span><span style="color:#323232;">
</span>
ii. Installed, then disabled, rpm-ostree initramfs
, continuing instead with initramfs-etc
as described here
rpm-ostree initramfs-etc --track=/etc/modules-load.d/zfs.conf
rpm-ostree initramfs-etc --track=/etc/dnf/protected.d/zfs.conf
<span style="color:#323232;">rpm-ostree status
</span><span style="color:#323232;">State: idle
</span><span style="color:#323232;">Deployments:
</span><span style="color:#323232;">● fedora:fedora/39/x86_64/kinoite
</span><span style="color:#323232;"> Version: 39.20240304.0 (2024-03-04T00:39:42Z)
</span><span style="color:#323232;"> BaseCommit: b30269aa0e2604e24fd74596a75ee79ef77e6bc2b20f87b49d02f2796ccd3da2
</span><span style="color:#323232;"> GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
</span><span style="color:#323232;"> LayeredPackages: kernel-devel zfs
</span><span style="color:#323232;"> LocalPackages: zfs-release-2-4.fc39.noarch
</span><span style="color:#323232;"> InitramfsEtc: /etc/dnf/protected.d/zfs.conf /etc/modules-load.d/zfs.conf
</span>
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!