使用 ZFS 升级到主线内核 5.9(在 20.10 上)

使用 ZFS 升级到主线内核 5.9(在 20.10 上)

我在一台新机器上安装了 Ubuntu 20.10,并使用了 ZFS 选项,也就是说,/boot和根文件系统都在 ZFS 上。但是,我需要较新的内核版本 5.9 来支持硬件,我使用主线内核 PPA。 很遗憾,Ubuntu 20.10 (v0.8.4) 中包含的 ZFS 版本不适用于 Linux v5.9 内核(构建内核模块失败)。

这导致了一个相当困境:我如何才能同时使用所需的较新内核版本和 ZFS(当然,包括完整功能,例如 ZSys)?

所以,现在我陷入了困境。运行需要升级 ZFS 的主线内核的最可靠方法是什么?我确实考虑过构建一个带有内置 ZFS 支持的自定义 5.9 内核,但我的内核中的 ZFS 版本不会与使用旧版本 ZFS 的已安装 Ubuntu 软件包发生冲突吗?

答案1

我注意到,虽然Ubuntu 开发版本 (hirsute) 中的 ZFS 软件包版本目前0.8.4-1ubuntu13, 这变更日志显示以下内容:

更新日志

zfs-linux (0.8.4-1ubuntu13) hirsute; urgency=medium

  * Add Linux 5.9 compat fixes (LP: #1899826)
    - 4800-Linux-5.9-compat-add-linux-blkdev.h-include.patch
      include blkdev.h in various sources
    - 4801-Linux-5.9-compat-NR_SLAB_RECLAIMABLE.patch
      deprecate some older page free stats for arc free page calculation
    - 4802-Linux-5.9-compat-make_request_fn-replaced-with-submi.patch
      API change for block allocation
    - 4805-Increase-Supported-Linux-Kernel-to-5.9.patch
      allows driver to be built against 5.9
  * Add Linux 5.10 compat fixes
    - 4710-Use-percpu_counter-for-obj_alloc-counter-of-Linux-ba.patch
      prerequisite for 4804-Linux-5.10-compat-frame.h-renamed-objtool.h.patch
    - 4720-Linux-5.7-compat-Include-linux-sched.h-in-spl-sys-mu.patch
      prerequisite for next set of patches
    - 4804-Linux-5.10-compat-frame.h-renamed-objtool.h.patch
      rename check of linux/frame.h to linux/frame.h
    - 4805-Linux-5.10-compat-percpu_ref-added-data-member.patch
      API check to the percpu_ref structure
    - 4806-Linux-5.10-compat-check_disk_change-removed.patch
      check_disk_change removed, functionality moved to zfs_check_media_change
    - 4807-Linux-5.10-compat-revalidate_disk_size-added.patch
      use revalidate_disk_size where necessary

 -- Colin Ian King <[email protected]>  Tue, 3 Nov 2020 12:22:22 +0000

这表明与较新的 Linux 内核兼容所需的更改已反向移植到这些软件包。因此,我zfs-dkmshirsute存储库安装了该软件包,这为我的主线内核提供了一个可用的 DKMS ZFS 模块。

相关内容