Usando o Ubuntu 16.04 zfs, há algo que achei que corrige a montagem de compartilhamentos zfs na inicialização sem criar rc.local
ou systemd
scripts e sem executar manualmente zfs set sharesmb=on
após cada inicialização.
Para resumir: zfs mount -a
e zfs share -a
não funcionam, mas usar zfs set sharesmb=on
funciona. A execução de sudo /etc/init.d/zfs-share restart
também funciona. Além disso, o programa mountall
em 16.04 não suporta zfs, por qualquer motivo.
Eu acho que o problema é que quando você define sharesmb=on
, ele cria um nome de compartilhamento baseado em poolname / sharename da seguinte forma: poolname_sharename
Mas parece que esse nome de compartilhamento pode ser muito longo. Eu li que você deve limitar nomes netbios para 14 caracteres ou menos, e também limitar o número de caracteres no campo Comentários também.
Então, criei um novo sistema de arquivos com um comprimento combinado de menos de 14 caracteres, incluindo o sublinhado:
sudo zfs create -o casesensitivity=mixed -o nbmand=on pool/share
Em seguida, edite /etc/default/zfs
e desative a montagem / compartilhamento de smb: (acho que um é para o NFS, mas desativo tudo)
ZFS_MOUNT='no'
ZFS_UNMOUNT='no'
ZFS_SHARE='no'
ZFS_UNSHARE='no'
Por fim, ative o sharesmb
para o novo sistema de arquivos:
sudo zfs set sharesmb=on pool/share
Também verifiquei se o arquivo /ect/hostid
existe. (google como criar um)
Agora, quando reinicializo, executo este comando sem precisar fazer mais nada, e meu compartilhamento aparece:
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
E sim, eu sei que o samba suporta nomes com mais de 14 caracteres, mas parece estragar a montagem de compartilhamentos do zfs na inicialização.
Eu adoraria saber se isso funciona para qualquer outra pessoa, ou se é apenas uma peculiaridade no meu sistema ...