安装或升级到 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,但我认为这无关紧要。
程序
- 确保我有足够的备份可用并且位于单独的系统上;显然依赖 ZFS 快照在这里不是一个合适的策略。
- 按照常规
do-release-upgrade
程序进行。一切都进行得很顺利;实际上这是我经历过的最顺畅的 Ubuntu 升级之一。 - 升级完成后但重启之前(即:在仍然运行“安全”的 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