Ubuntu 21.10 上使用 ZFS 时出现奇怪的文件问题

Ubuntu 21.10 上使用 ZFS 时出现奇怪的文件问题

安装或升级到 Ubuntu 21.10 后,使用 ZFS 选项,我开始遇到奇怪的问题。

例如,在命令行上,我开始看到如下错误:

Cannot access 'foobar': No such file or directory

在某些目录中运行 ls -l 时,我得到问号,如下所示:

-????????? ? ? ? ? ? foobar.txt
-????????? ? ? ? ? ? foobar2.txt

最后,我甚至无法启动 Ubuntu 21.10(使用 ZFS)。

答案1

这是一个已知问题。Ubuntu 21.10 发行说明说:

已知的问题

Linux 内核

  • 5.13.0-19 内核中包含的 ZFS 驱动程序版本包含一个错误这可能会导致文件系统损坏。建议 ZFS 用户等到 21.10 版内核的第一个稳定版本更新后再进行升级。

我建议采取以下行动:

  • 如果您正在安装 Ubuntu 21.10,请不要选择 ZFS 选项。这将导致文件系统损坏,这是您不希望看到的。
  • 如果您要升级到 Ubuntu 21.10,并且正在使用 ZFS,请不要升级,直到修复程序发布并且用户不再报告问题为止。(截至撰写本文时,修复程序尚未发布。)

如果您已经升级到 Ubuntu 21.10,您可以通过选择启动菜单(grub)中的“恢复”选项恢复到旧文件系统。del启动时按下 可显示此启动菜单。

答案2

值得一提的是,在检查了 Flimm 的帖子中提到的错误并看到以下信息后,我刚刚成功地从 21.04 升级到了 21.10一些迹象(没有我希望的那么清楚...)内核版本 已经修复了这个问题5.13.0-20。这个 bug 似乎存在于所有之前的 5.13 内核版本中,包括5.13.0-19,而 21.10 最初发布的版本就是这个。

我的系统正在 root 上运行自定义部署的 ZFS。它是使用 Hirsute 附带的普通版本 (ZFS v2.0.3) 从头部署的。我没有运行 Ubuntu 的 Zsys,但我认为这无关紧要。

程序

  1. 确保我有足够的备份可用并且位于单独的系统上;显然依赖 ZFS 快照在这里不是一个合适的策略。
  2. 按照常规do-release-upgrade程序进行。一切都进行得很顺利;实际上这是我经历过的最顺畅的 Ubuntu 升级之一。
  3. 升级完成后但重启之前(即:在仍然运行“安全”的 5.11 Hirsute 内核时),我仔细检查/boot以确保即将启动的内核比 更新5.13.0-19;我得到了5.13.0-22
$ ll /boot/vmlinuz
lrwxrwxrwx 1 root root 25 Dec 27 16:59 /boot/vmlinuz -> vmlinuz-5.13.0-22-generic

更多信息

以下建议仅在 22.04(“Jammy”)稳定版本发布之前有效。

实时图像

截至撰写本文时,Canonical 的 21.10 Live 映像仍带有有缺陷的内核 5.13.0-19。因此,在任何情况下都不会使用该图像访问/部署 ZFS 文件系统。

如果您需要执行此类维护,您可能应该使用21.04 实时图像而不是 21.10;ZFS 版本非常接近(2.0.3/2.0.6)。

新的 21.10 部署,在 root 上使用 ZFS

我已经确认可以使用21.04 实时图像执行 21.10 ZFS-on-root 部署。只需按照根指南上的 ZFS,并在调用时指定所需的版本debootstrap(步骤 3.4),如下所示:

debootstrap impish /mnt

您还需要在(步骤 4.3)中指定相同的版本( impish) 。/mnt/etc/apt/sources.list

相关内容