zpools在引导后不会自动挂载

运行ubuntu 13.10服务器。 从ubuntu ppa安装并设置zfs。 如果我手动执行’sudo zfs mount -a’,那么所有看起来都可以正常工作,但是在zfsonlinux.org上阅读常见问题解答它似乎应该会自动挂载。 不知道在哪里调试。 我没有看到/ var / log / syslog中与zfs或mount相关的任何错误。

$ sudo zfs get all zp NAME PROPERTY VALUE SOURCE zp type filesystem - zp creation Sat Mar 16 17:14 2013 - zp used 464G - zp available 449G - zp referenced 13.3M - zp compressratio 1.00x - zp mounted no - zp quota none default zp reservation none default zp recordsize 128K default zp mountpoint /zp default zp sharenfs off default zp checksum on default zp compression off default zp atime on default zp devices on default zp exec on default zp setuid on default zp readonly off default zp zoned off default zp snapdir hidden default zp aclinherit restricted default zp canmount on default zp xattr on default zp copies 1 default zp version 5 - zp utf8only off - zp normalization none - zp casesensitivity sensitive - zp vscan off default zp nbmand off default zp sharesmb on local zp refquota none default zp refreservation none default zp primarycache all default zp secondarycache all default zp usedbysnapshots 25.3K - zp usedbydataset 13.3M - zp usedbychildren 464G - zp usedbyrefreservation 0 - zp logbias latency default zp dedup off default zp mlslabel none default zp sync standard default zp refcompressratio 1.00x - zp written 13.3M - zp snapdev hidden default 

您需要使用您喜欢的编辑器编辑文件/etc/default/zfs ,例如:nano,vim或其他内容,并更改行

 ZFS_MOUNT='no' ZFS_UNMOUNT='no' 

 ZFS_MOUNT='yes' ZFS_UNMOUNT='yes' 

另一个选择是从ZFS Stable PPA安装mountallapt-get install mountall ),它会为您完成这项工作。 第一种选择更好,更快。

对于我在Ubuntu 14.04 LTS上,我必须设置以下内容

要自动导入zpool,请将值从1更改为0

文件: /etc/init/zpool-import.conf

 modprobe zfs zfs_autoimport_disable=0 

要自动安装zfs安装,请添加以下行:

文件: /etc/rc.local

 zfs mount -a 

重新启动,zpool ZFS挂载自动挂载。

我在16.04 LTS的干净安装上遇到了同样的问题。

重新启动后,没有池存在( zpool status显示没有池),但zpool import 将恢复我的池。

原来是由未安装16.04的ZFS池的答案修复。 在此重现工作答案:

 sudo apt remove zfs.doc sudo apt install zfsutils-linux 

这个

我发现即使使用mountall它有时也无法正常工作。 我实际上构建了两个相同的服务器,在每个服务器中放置了相同的模型HD,并且从相同的源同时安装了Ubuntu和ZFS PPA。 一个是automount,另一个不会。 即使遵循有关在mountall.conf文件中添加睡眠等的额外FAQ说明,它也永远不会在启动时挂载。 我最终在/etc/rc.local了一个mountall命令。

使用Ubuntu 16.04 zfs,我发现可以修复在启动时挂载zfs共享而无需创建rc.localsystemd脚本,并且无需在每次启动后手动运行zfs set sharesmb=on

总结一下: zfs mount -azfs share -a不起作用,但使用zfs set sharesmb=on确实有效。 运行sudo /etc/init.d/zfs-share restart也可以。 此外,无论出于何种原因,16.04中的mountall程序都不支持zfs。

我认为问题是当你设置sharesmb=on ,它会根据poolname / sharename创建一个共享名称,如下所示: poolname_sharename

但似乎这个共享名称可能太长了。 我已经读过你应该将netbios名称限制为14个字符或更少,并且还限制了Comments字段中的字符数。

所以,我创建了一个新的文件系统,其总长度少于14个字符,包括下划线:

 sudo zfs create -o casesensitivity=mixed -o nbmand=on pool/share 

然后编辑/etc/default/zfs ,并禁用smb挂载/共享:(我认为一个用于NFS,但我禁用它)

 ZFS_MOUNT='no' ZFS_UNMOUNT='no' ZFS_SHARE='no' ZFS_UNSHARE='no' 

最后,为新文件系统启用sharesmb

 sudo zfs set sharesmb=on pool/share 

我还确保/ect/hostid文件存在。 (谷歌如何创建一个)

现在,当我重新启动时,我运行此命令而不必执行任何其他操作,我的共享显示:

 smbclient -U guest -N -L localhost (or use smbclient -L localhost) 

 Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (my server (Samba, Ubuntu)) pool_share Disk Comment: /pool/share 

是的,我知道samba支持超过14个字符的名称,但它似乎搞砸了在启动时挂载zfs共享。

我很想知道这是否适用于其他任何人,或者它是否只是我系统上的一些怪癖……