在FreeBSD 10.0上,当创buildzfs分区并configuration它们的安装位置(权限等)时,这些信息存储在哪里? /etc/fstab大部分是空的。
即:
$ 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
我已经grepped通过/etc和/var上面find的string,我没有得到任何命中。
ZFS池信息不存储在纯文本文件中。 有关池的信息存储在磁盘上。 ZFS池信息也可以写入ZFScaching文件 ,但不包含装载点信息。
如果您想获得ZFS池的安装点值,可以使用以下命令:
zfs get mountpoint <pool name> zfs get mountpoint <pool name>/<dataset>
如果要更改装入点值,可以使用zfs set命令。 有关pipe理挂载点的更多信息 。
另外,下面是一些其他有用的命令,可以用来获取有关ZFS池的信息:
zfs list zpool list zpool status
如果您想了解您的ZFS池caching文件的位置,可以使用以下命令:
zpool get cachefile <pool name>
特别为你的情况:
zpool get cachefile zpool0
如果要从该文件读取信息,可以使用zdb命令。 使用这个命令要小心 。 使用可能会很危险。 更多信息 。
一个ZFS池可以在没有caching文件的情况下创build ,所以如果zpool get cachefile命令不显示一个不会出现混乱。
编辑 :我更新了我的答案, 迈克尔是正确的 ,ZFS池caching文件不包含有关挂载点的信息。 不过,我仍然会留下有关caching文件的信息,以防万一有人发现它有用。
正如Gene指出的 ,ZFS池中的文件系统(不是分区!)列表存储在池本身中。 具体而言,它被存储为池元数据的一部分,这在原始forms中是不容易访问的。
您可以使用zdb (ZFSdebugging器工具)访问元数据,但是您需要小心以及熟悉ZFS磁盘格式,以正确解释zdb某些可能的调用的输出。 (毕竟是一个debugging器。)
您还可以使用其他ZFS命令使用它,包括zpool和zfs命令的子命令。
通常,在使用ZFS 文件系统时,您只需使用zfs命令,可能是zfs create , zfs destroy (小心;这实际上的确如它所说的那样), zfs get和zfs set 。 在你的具体情况下,你可能会对mountpoint属性最感兴趣,它指定了两件事情:
legacy ,那么指定挂载点时文件系统将被“手动”(使用非ZFS感知工具) mount ,如普通的旧mount (可能通过/ etc / fstab) none ,则不能挂载文件系统; 这与设置canmount off类似 ZFScaching文件与此无关,因为caching文件只包含caching池信息,而且您正在询问文件系统信息。 文件系统元数据始终存储在池本身中。