zfs 不会在启动时导入或挂载 (fedora)

zfs 不会在启动时导入或挂载 (fedora)

我刚刚将系统从 Fedora 35 升级到 Fedora 37。我重建了 ZFS,并且能够手动导入和挂载我的文件系统。但是,无论我做什么,它们在启动时都不会安装。我不知道还能尝试什么。

我做了以下事情: 确保启用所有 ZFS 相关服务

我还重新创建了 ZFS 缓存。

的状态systemctl status zfs-import-cache.service

         Loaded: loaded (/usr/lib/systemd/system/zfs-import-cache.service; enabled; preset: enabled)
         Active: inactive (dead)
           Docs: man:zpool(8)

这很有趣: systemctl status zfs-mount.service

○ zfs-mount.service - Mount ZFS filesystems
     Loaded: loaded (/usr/lib/systemd/system/zfs-mount.service; enabled; preset: enabled)
     Active: inactive (dead)
  Condition: start condition failed at Wed 2023-03-01 13:59:56 EST; 7min ago
       Docs: man:zfs(8)

Mar 01 13:59:56 alpha systemd[1]: zfs-mount.service - Mount ZFS filesystems was skipped because of a failed condition check (ConditionPathIsDirectory=/sys/module/zfs).

我发现了 boot.log 的旧副本,显示服务正在启动:

[  OK  ] Reached target ZFS pool import target.
[  OK  ] Stopped target ZFS pool import target.
         Starting Import ZFS pools by cache file...
[  OK  ] Finished Import ZFS pools by cache file.
[  OK  ] Reached target ZFS pool import target.
         Starting Mount ZFS filesystems...
[  OK  ] Finished Mount ZFS filesystems.
[  OK  ] Started ZFS Event Daemon (zed).

但现在的都是空的。这意味着服务未启用。但它们已启用。

还有什么想法可以看看或尝试吗?

答案1

这个问题的答案是 ZFS 处理挂载文件系统的方式的改变。

看看这里: https://wiki.archlinux.org/title/ZFS

现在正确的方法依赖于 zed 服务(已启用)

按照这些步骤可以使文件系统在启动时再次挂载。

  • 确保 zed 服务正在运行: systemctl enable zfs-zed.service
  • 为每个池创建一个空文件 touch /etc/zfs/zfs-list.cache/<pool-name>
  • Spark zed 付诸行动: zfs set canmount=off <pool> 现在,其中的文件/etc/zfs/zfs-list.cache/不应再为空。
  • 重新设置 canmount: zfs set canmount=off <pool>
  • 重启

这为我解决了这个问题。
一个致命的问题是 ZFS 导入服务被屏蔽并且无法启用。

相关内容