zpools 在启动后不会自动挂载

zpools 在启动后不会自动挂载

运行 Ubuntu 13.10 服务器。从 Ubuntu ppa 安装并设置 zfs。如果我手动执行“sudo zfs mount -a”,重启后一切似乎都正常工作,但读取常问问题在 zfsonlinux.org 上,我似乎应该期望它自动挂载。我不确定在哪里可以找到调试。我没有看到任何与/var/log/syslogzfs 或挂载相关的错误。

$ 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

答案1

你需要/etc/default/zfs用你最喜欢的编辑器编辑该文件,例如:nano、vim 或其他,然后更改行

ZFS_MOUNT='no'
ZFS_UNMOUNT='no'

ZFS_MOUNT='yes'
ZFS_UNMOUNT='yes'

另一个选项是mountallapt-get install mountallZFS Stable PPA,它会帮你搞定一切。第一个选项更可取,也更快。

答案2

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

要自动导入 zpools,请将值从 更改10

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

modprobe zfs zfs_autoimport_disable=0

要自动挂载 zfs 挂载点,请添加以下行:

文件: /etc/rc.local

zfs mount -a

重新启动后,zpool ZFS 挂载点已自动挂载。

答案3

使用 Ubuntu 16.04 zfs,我发现有些东西可以修复在启动时安装 zfs 共享的问题,而无需创建rc.local脚本,也不需要在每次启动后systemd手动运行。zfs set sharesmb=on

总结一下:zfs mount -azfs share -a不起作用,但使用zfs set sharesmb=on可以。运行sudo /etc/init.d/zfs-share restart也可以。此外,mountall16.04 中的程序不支持 zfs,无论出于什么原因。

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

但这个共享名似乎太长了。我读到过,你应该将 netbios 名称限制在 14 个字符或更少,并且也要限制注释字段中的字符数。

因此,我创建了一个新的文件系统,其总长度小于 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 共享。

我很想知道这是否对其他人有用,或者这是否只是我的系统上的一些怪癖......

答案4

我发现即使mountall这样有时也无法正常工作。我实际上构建了两个相同的服务器,在每个服务器上放置了相同型号的硬盘,并从相同的源同时安装了 Ubuntu 和 ZFS PPA。一个会自动挂载,另一个则不会。即使按照额外的常见问题解答说明在文件中添加 sleepmountall.conf等,它也永远不会在启动时挂载。我最终mountall在 中输入了一个命令/etc/rc.local

相关内容