我在一台带有 ZFS 选项的新机器上安装了 Ubuntu 20.10,即。e. 两者/boot
和根文件系统都在 ZFS 上。但是,我需要更新的内核版本 5.9 来支持硬件,我使用主线内核 PPA安装了它。不幸的是, Ubuntu 20.10 (v0.8.4) 中包含的 ZFS 版本不适用于 Linux v5.9 内核(构建内核模块失败)。
这导致了相当的困境:如何同时使用所需的较新内核版本和 ZFS(当然,包括完整的功能,例如 ZSys)?
我已经尝试从 source 构建和安装 ZFS。但是,
.deb
从源代码构建 ZFS 时创建的包与 Ubuntu 的包不兼容,因此任何依赖于 Ubuntu 包(如 ZSys!)的东西都会成为包冲突的受害者,必须删除/无法安装。由于这些问题,我注意到当前的Debian Bullseye(测试版)有更新的软件包,版本为 0.8.5 的 ZFS(与 Linux v5.9 兼容),并且打包方案看起来与 Ubuntu 中的兼容。所以我尝试升级到这些包,并为我的主线 5.9.8 内核构建内核模块确实成功了。但是,在启动时,这无法挂载 ZFS 文件系统(即使使用普通的 5.8 Ubuntu 内核):
Command: mount -o zfsutil -t zfs rpool/ROOT/ubuntu_682y7z /root// Message: filesystem 'rpool/ROOT/ubuntu_682y7z' can not be mounted: Permission denied
所以,现在我被困住了。运行还需要升级 ZFS 的主线内核的最强大的方法是什么?我确实考虑过构建一个具有内置 ZFS 支持的自定义 5.9 内核,但是我的内核中的 ZFS 版本不会与已安装的使用旧版本 ZFS 的 Ubuntu 软件包冲突吗?
我注意到,虽然Ubuntu 开发版 (hirsute) 中 ZFS 软件包的版本目前是
0.8.4-1ubuntu13
,但变更日志显示以下内容:这表明与较新的 Linux 内核兼容所需的更改已向后移植到这些软件包。所以我
zfs-dkms
从存储库安装了这个包hirsute
,它给了我一个带有我的主线内核的工作 DKMS ZFS 模块。