我使用 ZFS 存储我的台式电脑的数据(包括配置文件),因此在启动时自动挂载数据集非常重要。我无论如何也想不出如何在 Ubuntu 19.10 中做到这一点。
一开始,当我运行 时zfs list
,zpool list
没有任何输出;它是空的。然后,在弄清楚如何导入我的池之后,它们仍然无法挂载。
答案1
正确的做法是确保三个单元文件enable
在启动时启动:
zfs.target
,这是所有 ZFS 的首要目标zfs-import.service
,在启动时导入 zpoolszfs-mount.service
,在启动时挂载所有数据集
这些单元的依赖关系已正确设置,因此您只需运行:
systemctl enable zfs.target zfs-import.service zfs-mount.service
确保它们都已打开。此后,重新启动以进行测试;您的 ZFS 数据集应该会显示出来。
答案2
我发现,如果我忘记缓存不会在下次重新启动时更新任何后续更改,那么更新 zpool 缓存和 zfs-list 缓存的 zfs-zed.service 在 systemctl 暂停后不再运行,需要手动重新启动。我将很快通过详细信息改进这一点,以复制并在周末尝试全新安装,或将其移动到适当的位置。Openzfs 2.1.5 兼容性设置为 openzfs-2.1-linux。Ubuntu 22.04 和 proxmox 使用 zsys 共享启动和根池进行黑客攻击。
答案3
22.04 LTS 更新:
手册页上有说明zfs-mount-generator(8)
,但我不得不做一些更改。以下是对我有用的方法:
# enable tracking for the pool
mkdir /etc/zfs/zfs-list.cache
touch /etc/zfs/zfs-list.cache/main
# enable the tracking ZEDLET
systemctl enable zfs-zed.service
systemctl restart zfs-zed.service
# trigger cache refresh
zfs set relatime=off main/secure
zfs inherit relatime main/secure
# re-run systemd generators and reboot
systemctl daemon-reload
reboot