我在 Ubuntu 18.04 上的两个镜像驱动器上创建了一个名为 zstorage 的 zpool。操作系统安装在 SSD 上,/home 目录位于同一 SSD 上的自己的分区上。我想将 /home 迁移到 ZFS 池。如您所见,据我所知,池已设置完毕并准备就绪。我接下来该怎么做?
通常,当将 /home 移动到另一个驱动器时,可以编辑 fstab,但 ZFS 不使用 fstab。我不知道如何将现有的 /home 移动到 /zstorage/home 以及如何挂载 /zstorage/home。命令
sudo zfs set mountpoint=/home zstorage/home
给了我错误
cannot mount '/home': directory is not empty property may be set but unable to remount filesystem
。
答案1
首先,你需要将zstorage/home
文件系统迁移到不同的挂载点,例如/zstorage/主页传输文件/家到/zstorage/主页。
要传输数据,最好是在没有用户登录时执行此操作,而您直接以 root 身份登录,这样就不会在主目录中进行任何操作。要复制数据,请使用以下两个命令之一,但rsync
如果复制过程中断并且必须重新运行,则更好。
cp -a /home/* /zstorage/home/
rsync -axHAX --delete /home/ /zstorage/home/
复制过程完成后,您可以将 ZFS 文件系统挂载到/家但是正如您之前提到的,ZFS 默认拒绝包含某些内容的挂载点。您可以使用以下命令进行更改。
zfs set overlay=on zstorage
该属性通常会被子文件系统继承,但您可以使用 来检查它zfs get overlay zstorage
。现在您应该能够在 上挂载 ZFS 文件系统/home
。
为此,您可能需要按如下方式更改 ZFS 中的挂载点。
zfs set mountpoint=/home zstorage/home
它也可能是/home
一个单独的挂载点,在这种情况下,您需要删除、注释或更改相应的条目/etc/fstab。
您可能还想保留原始数据并覆盖/家测试新设置时,当一切正常时将其删除。以防万一出现问题或您想返回。
在启动过程中,ZFS 文件系统应该会自动挂载,无需配置/etc/fstab。