在 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
我已经找到了上面找到/etc
的/var
字符串,但我没有得到任何点击。
ZFS 池信息不存储在纯文本文件中。有关池的信息存储在磁盘本身上。ZFS 池信息也可以写入ZFS 缓存文件,但它不包含挂载点信息。
如果要获取 ZFS 池的挂载点值,可以使用以下命令:
如果要更改挂载点值,可以使用该
zfs set
命令。有关管理挂载点的更多信息。此外,还有一些其他有用的命令可用于获取有关 ZFS 池的信息:
如果您想找出 ZFS 池缓存文件的位置,可以使用以下命令:
专门针对您的情况:
如果要从该文件中读取信息,可以使用该
zdb
命令。 小心使用这个命令。使用它可能很危险。更多信息。可以在没有缓存文件的情况下创建 ZFS 池,因此如果该
zpool get cachefile
命令未显示,请不要惊慌。编辑:我更新了我的答案,迈克尔是正确的,ZFS 池缓存文件不包含有关挂载点的信息。但是,我仍然会留下有关缓存文件的信息,以防有人发现它有用。
正如Gene 指出的那样,ZFS 池中的文件系统列表(不是分区!)存储在池本身中。具体来说,它存储为池元数据的一部分,以原始形式不易访问。
您可以使用
zdb
(ZFS 调试器工具)访问元数据,但您需要小心并熟悉 ZFS 磁盘格式才能正确解释 zdb 某些可能调用的输出。(毕竟,它是一个调试器。)您还可以使用其他 ZFS 命令使用它,包括
zpool
and命令的子zfs
命令。通常,在使用 ZFS文件系统时,您可能只使用
zfs
命令,zfs create
(zfs destroy
小心;这个确实做到了它在锡上所说的!)zfs get
和zfs set
. 在您的特定情况下,您可能对mountpoint
属性最感兴趣,它指定了两件事:legacy
,则在指定挂载点时“手动”挂载文件系统(使用不支持 ZFS 的工具),例如普通旧的mount
(可能通过 /etc/fstab)none
,则无法挂载文件系统;这类似于设置canmount
为off
ZFS 缓存文件与此无关,因为缓存文件仅包含池信息,而您正在询问文件系统信息。文件系统元数据始终存储在池本身中。