我正在使用 ZFSBootMenu 进行多 zroot。
zpRoot/LINUX/Artix/System mountpoint /
zpRoot/LINUX/eos/SysClone1 mountpoint /
zpRoot/LINUX/eos/System mountpoint /
启动时zpRoot/LINUX/eos/SysClone1
,我想从其他数据集中读取文件,例如zpRoot/LINUX/eos/System
.常见的做法是修改挂载点然后挂载,但我经常忘记将挂载点恢复到/
.
我尝试过zfs mount -o mountpoint=/mnt/1 zpRoot/LINUX/eos/System
和zfs mount -o altroot=/mnt/1 zpRoot/LINUX/eos/System
,但都不起作用。
如何更改内存中的安装点而不将其提交到磁盘?
答案1
我在 FreeBSD 上运行了很多 ZFS,但在 Linux 上运行得很少。看来我的Ubuntu系统无法做到这一点没有环境mountpoint=legacy
:
# zfs list -o name,canmount,mounted,mountpoint pool/test
NAME CANMOUNT MOUNTED MOUNTPOINT
pool/test on no /home/research/test
# mount -t zfs pool/test /mnt
filesystem 'pool/test' cannot be mounted using 'mount'.
Use 'zfs set mountpoint=legacy' or 'zfs mount pool/test'.
See zfs(8) for more information.
在 FreeBSD 上,这很容易做到,只需mount -t zfs <dataset> <temp mountpoint>
:
# zfs list -o name,canmount,mounted,mountpoint jimsdesk/home/test
NAME CANMOUNT MOUNTED MOUNTPOINT
jimsdesk/home/test on no /home/test
# mount -t zfs jimsdesk/home/test /mnt
# zfs mount | grep home
jimsdesk/home /home
jimsdesk/home/test /mnt