![如何在 ubuntu 16.04 中将 zfs 文件系统挂载到另一个 zfs 文件系统上](https://linux22.com/image/91930/%E5%A6%82%E4%BD%95%E5%9C%A8%20ubuntu%2016.04%20%E4%B8%AD%E5%B0%86%20zfs%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%8C%82%E8%BD%BD%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%20zfs%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A.png)
在 ubuntu 14.04 中,我将两个 zfs 挂载点设置为旧版,这样我就可以通过 fstab 将一个文件系统挂载到另一个文件系统上。 IE:
zfs_1/base /home/xyz
zfs_2/photo /home/xyz/stuff/photo
在 ubuntu 16.04 中,在处理 fstab 之前不会加载 zfs,因此我尝试删除旧的挂载点并在文件系统上设置挂载点。
问题是我不知道如何设置安装顺序。如果zfs_2/photo
先挂载,它将自动创建树,然后zfs_1/base
由于目录不为空而挂载失败。 16.04 是否有解决此问题的简单方法?
我有一个相关的问题,我将照片绑定到导出的 nfs 卷/export/photo
;但我认为我可以通过使用符号链接来解决这个问题/export/photo -> /home/xyz/stuff/photo
,然后仍然/export/photo
通过 nfs 导出(需要测试它)。
最简单的解决方案是恢复到旧版并使用,/etc/fstab
但从我在 ubuntu 论坛中读到的内容来看,这似乎不是一个选择。
答案1
您可以通过将 ZFS 包含到/etc/modules-load.d/*.conf
.比如说,我们创建/etc/modules-load.d/zfs.conf
以下内容:
zfs
代码本身还附带一个systemd
服务(实际上是一个他们几个)并且您可以使用最新的安装实现添加系统依赖项。例如:
/zfs_1/base /home/xyz none defaults,bind,x-systemd.requires=zfs-mount.service 0 0
/zfs_2/photo /home/xyz/stuff/photo none defaults,bind,x-systemd.requires=zfs-mount.service 0 0
(免责声明:我知道可以x-systemd.requires
在最新的 Arch 和 Debian 测试中使用,但在 Ubuntu 16.04 中可能还没有,尽管它已经在安装手册页)