我在 ecryptfs 目录中安装了 ZFS 数据集,现在无法查看内容或更改安装点

我在 ecryptfs 目录中安装了 ZFS 数据集,现在无法查看内容或更改安装点

我在使用 ZFS on Linux (ZoL) 池的桌面上运行 Ubuntu 16.04 LTS。我的主目录在安装时使用内置加密设置进行了加密,并且运行良好,并且 ZFS 一直运行良好。

然后,我不假思索地做了一件事。我更新了一些 ZFS 数据集的挂载点以驻留在我的加密主目录中。这最初工作正常,但重新启动后我注意到安装的目录显示为空(没有列出任何内容)。 ZFS 仍然将这些集报告为使用空间,但当我尝试更改安装点时,我收到错误umount failed,并且安装点保持不变。

我怀疑 ZFS 可能在 ecryptfs 之前安装。当 ecryptfs 挂载时,它会“隐藏”ZFS 挂载。 Ecryptfs 具有与挂载名称匹配的空目录,但它们似乎不是实际的 ZFS 挂载。

所以,我很好奇如何解决这个问题。是否可以强制 ZFS 在不挂载的情况下启动,并且它可以让我更新该状态下的挂载点吗?我可以启动到单用户模式,卸载加密的主文件夹并让 ZFS 运行吗?

答案1

如果您在单用户模式下启动,并且 zpool 不会自动导入,您可以altroot在导入期间通过该属性将池导入到备用路径结构中。

zpool import -R /tmp/zfs <poolname>

这将导入池,所有内容都安装在 /tmp/zfs 下。从那里,您应该能够zfs set mountpoint=<newpath> <dataset>处理任何需要新安装点的数据集。

然后在后续启动时正常导入池。

相关内容