我想用另一个 ZFS 文件系统(同一池中的另一个卷)替换一个 ZFS 文件系统(池中的卷)。重新启动是可以的,但我想避免单用户模式。
当我尝试在旧文件系统上进行设置时mountpoint=none
,ZFS 会尝试卸载它,但由于文件正在使用中,因此会失败。因此,我无法mountpoint=/data
在新文件系统上进行设置,因为那里正在安装某些东西。属性mountpoint
也不会写入文件系统。
如果我重新启动,旧文件系统仍处于挂载状态,服务将开始使用其中的文件,并且我无法再卸载它。有没有办法在mountpoint
不实际更改任何已挂载内容的情况下在文件系统上写入属性,然后重新启动,以便在系统再次启动时使用新文件系统?
答案1
在较新版本的 OpenZFS 中,有一个zfs set -u
标志。
zfs set -u mountpoint=/data-old zpool/data1
zfs set -u mountpoint=/data zpool/data2
现在属性已更改,但当前挂载点没有任何改变;/data
仍然指向zpool/data1
,但重新启动后,它将是zpool/data2
。