É possível montar automaticamente o compartilhamento SMB / CIFS local a partir do / etc / fstab?

0

Eu tenho o servidor Ubuntu 16.04 LTS com compartilhamento público configurado nele.
Meu /etc/samba/smb.conf está abaixo

[public_share]
    comment = Ubuntu Public Share
    path = /srv/samba/public_share
    guest ok = yes
    read only = no

Por alguns motivos, eu preciso montar esse compartilhamento na inicialização para / media / public_share . Então eu adicionei ao / etc / fstab :

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
//localhost/public_share /media/public_share/ cifs guest,noperm 0 2

Mas ele não é montado na inicialização. É montado apenas manualmente com sudo mount -a após o login.

Adicioná-lo a /etc/rc.local como

mount -t cifs //localhost/public_share /media/public_share/ -o guest,noperm

não ajuda também.

O que estou fazendo de errado?
Como posso montar automaticamente // localhost / public_share para / media / public_share / durante a inicialização?
Preciso de configuração especial do systemd ou algo especial?

Atualização 1: Para o nome do servidor localhost , tenho o seguinte log:

$ systemctl status media-public_share.mount 
● media-public_share.mount - /media/public_share
   Loaded: loaded (/etc/fstab; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since Вт 2017-12-19 22:15:05 MSK; 16min ago
    Where: /media/public_share
     What: //localhost/public_share
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
  Process: 1461 ExecMount=/bin/mount //localhost/public_share /media/public_share -t cifs -o guest,noperm (code=exited, status=32)

дек 19 22:15:05 hostname systemd[1]: Mounting /media/public_share...
дек 19 22:15:05 hostname mount[1461]: Unable to find suitable address.
дек 19 22:15:05 hostname systemd[1]: media-public_share.mount: Mount process exited, code=exited status=32
дек 19 22:15:05 hostname systemd[1]: Failed to mount /media/public_share.
дек 19 22:15:05 hostname systemd[1]: media-public_share.mount: Unit entered failed state.

Alterar o endereço para 127.0.0.1 ou configurar 127.0.0.1 com as opções username=guest,password=,noperm não remova a mensagem "Não foi possível encontrar o endereço adequado".

Mudei atualização 2 e atualização 3 para responder.

    
por N0rbert 19.12.2017 / 19:14

1 resposta

0

O problema pode ser resolvido com uma das seguintes soluções:

  • Hack suja rápida com /etc/network/if-up.d :

    cat <<EOF | sudo tee /etc/network/if-up.d/zz-mount-all
    #!/bin/sh
    mount -a
    
    EOF
    
    sudo chmod a+x /etc/network/if-up.d/zz-mount-all
    

Com esta alteração, monta normalmente:

$ systemctl status media-public_share.mount 
● media-public_share.mount - /media/public_share
   Loaded: loaded (/etc/fstab; bad; vendor preset: enabled)
   Active: active (mounted) (Result: exit-code) since Вт 2017-12-19 23:17:34 MSK; 7s ago
    Where: /media/public_share
     What: //127.0.0.1/public_share
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
  Process: 1481 ExecMount=/bin/mount //127.0.0.1/public_share /media/public_share -t cifs -o guest,noperm (code=exited, status=32)

Funciona mesmo com o endereço do host local.

  • Funciona como esperado sem hacks se eu adicionar x-systemd.automount,noauto a / etc / fstab como

     //localhost/public_share /media/public_share/ cifs guest,noperm,x-systemd.automount,noauto 0 255
    

e cria duas unidades systemd:

$ systemctl status media-public_share.*
● media-public_share.mount - /media/public_share
   Loaded: loaded (/etc/fstab; bad; vendor preset: enabled)
   Active: active (mounted) since Ср 2017-12-20 20:33:10 MSK; 3min 4s ago
    Where: /media/public_share
     What: //localhost/public_share
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
  Process: 2461 ExecMount=/bin/mount //localhost/public_share /media/public_share -t cifs -o guest,noperm,x-systemd.automount (code=exited, status=0/SUCCESS)

дек 20 20:33:10 hostname systemd[1]: Mounting /media/public_share...
дек 20 20:33:10 hostname systemd[1]: Mounted /media/public_share.

● media-public_share.automount
   Loaded: loaded (/etc/fstab; bad; vendor preset: enabled)
   Active: active (running) since Ср 2017-12-20 20:33:02 MSK; 3min 12s ago
    Where: /media/public_share
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)

дек 20 20:33:09 hostname systemd[1]: media-public_share.automount: Got automount request for /media/public_share, triggered by 2456 (pool)
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavail

Mas essa solução adiciona dois ícones de compartilhamento à minha janela do gerenciador de arquivos da Caja.

Então, vou usar if-up.d hack.

    
por N0rbert 20.12.2017 / 17:44