如何在 fstab 中使用 zfs 挂载循环设备?

如何在 fstab 中使用 zfs 挂载循环设备?

如何在 fstab 中使用 zfs 挂载循环设备?

以下是我创建它的方式:

fallocate -l 150G /jdata/zfs_psql.disk
sudo losetup /dev/loop2 jdata/zfs_psql.disk
sudo zpool create -f -O atime=off -O compression=lz4 -O recordsize=128K zfsdisk /dev/loop2

然后我将以下字符串添加到fstab

/jdata/zfs_psql.disk  /zfsdisk zfs loop  0 0

在其中mount -a

filesystem 'zfsdisk' cannot be mounted, unable to open the dataset

我该怎么做?

答案1

在您的第一个代码块中,您创建并销毁了 zpool。请再试一次,但请运行以下命令

fallocate -l 150G /jdata/zfs_psql.disk 
sudo losetup /dev/loop2 jdata/zfs_psql.disk
sudo zpool create -f -m legacy -O atime=off -O compression=lz4 -O recordsize=128K  zfsdisk /dev/loop2

您需要将 zpool 挂载点设置为使用 fstab 的传统挂载点。Zfs 通常会在启动时尝试自动挂载设备,但由于您使用的是文件而不是设备,因此自动挂载将不起作用。因此需要legacy挂载点和使用。fstab

现在fstab

/jdata/zfs_psql.disk  /zfsdisk zfs loop  0 0

应该mount -a可以按预期工作。但是,由于挂载顺序,它仍然可能在启动时给您一个错误,因为您需要先完全挂载基本文件系统,然后再挂载 loop 文件。在这种情况下,您需要在 loop 中添加 noauto 选项。

/jdata/zfs_psql.disk /zfsdisk zfs loop,noauto 0 0

相关内容