将 /home 迁移到 ZFS

将 /home 迁移到 ZFS

我在 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

相关内容