zfs 设置写在哪里?

zfs 设置写在哪里?

在 FreeBSD 10.0 上,当创建 zfs 分区并配置它们的挂载位置(权限等)时,这些信息存储在哪里?/etc/fstab基本上是空的。

IE:

$ zfs mount
zpool0/ROOT/default             /
zpool0/home                     /home
zpool0/tmp                      /tmp
zpool0/usr                      /usr
zpool0/usr/local                /usr/local
zpool0/usr/obj                  /usr/obj
zpool0/usr/ports                /usr/ports
zpool0/usr/ports/distfiles      /usr/ports/distfiles
zpool0/usr/ports/packages       /usr/ports/packages
zpool0/usr/src                  /usr/src
zpool0/var                      /var
zpool0/var/crash                /var/crash
zpool0/var/db                   /var/db
zpool0/var/db/pkg               /var/db/pkg
zpool0/var/empty                /var/empty
zpool0/var/log                  /var/log
zpool0/var/mail                 /var/mail
zpool0/var/run                  /var/run
zpool0/var/tmp                  /var/tmp

我已经对上面找到的字符串进行了 grep 搜索/etc/var但没有得到任何结果。

答案1

ZFS 池信息不存储在纯文本文件中。池信息存储在磁盘本身上。ZFS 池信息也可以写入ZFS 缓存文件,但不包含挂载点信息。

如果您想获取 ZFS 池的挂载点值,可以使用以下命令:

zfs get mountpoint <pool name>
zfs get mountpoint <pool name>/<dataset>

如果您想更改挂载点值,您可以使用该zfs set命令。有关管理挂载点的更多信息

此外,您还可以使用以下一些其他有用的命令来获取有关 ZFS 池的信息:

zfs list
zpool list
zpool status

如果您想知道 ZFS 池缓存文件的位置,可以使用以下命令:

zpool get cachefile <pool name>

针对你的情况特别说明:

zpool get cachefile zpool0

如果您想从该文件读取信息,您可以使用该zdb命令。 小心使用此命令. 使用时可能会有危险。更多信息

可以在没有缓存文件的情况下创建 ZFS 池,因此如果zpool get cachefile命令没有显示,不要惊慌。

编辑:我更新了我的答案,迈克尔是正确的ZFS 池缓存文件不包含有关挂载点的信息。不过,我还是会保留有关缓存文件的信息,以防有人发现它有用。

答案2

作为基因指出,ZFS 池中的文件系统(不是分区!)列表存储在池本身中。具体来说,它作为池的一部分存储元数据,其原始形式不易获取。

您可以使用(ZFS 调试器工具)访问元数据zdb,但您需要小心谨慎,并且熟悉 ZFS 磁盘格式,以便正确解释某些可能的 zdb 调用的输出。(毕竟,它是一个调试器。)

zpool您还可以使用其他 ZFS 命令(包括和命令的子命令)来使用它zfs

通常使用 ZFS 时文件系统您只需要使用zfs命令,可能zfs createzfs destroy(小心;这个命令确实会按照它的名字执行!),zfs getzfs set。在您的特定情况下,您可能对属性最感兴趣mountpoint,它指定了两件事:

  • 如果设置为路径,则该 ZFS 文件系统在整个文件系统层次结构中的挂载点,自动安装
  • 如果设置为legacy,则表示文件系统是“手动”挂载的(使用不支持 ZFS 的工具),例如mount在指定挂载点时使用普通方式(可能通过 /etc/fstab)
  • 如果设置为none,则无法挂载文件系统;这类似于设置canmountoff

ZFS 缓存文件与此无关,因为缓存文件仅包含水池信息,你问的是文件系统信息。文件系统元数据始终存储在池本身中。

相关内容