Montagem CIFS através do fstab não montada na inicialização


20

Eu tenho um compartilhamento CIFS no meu NAS que quero montar na inicialização - ele é usado pelo meu servidor MythTV como a principal loja de mídia. Eu adicionei uma entrada fstabpara ele montar, mas não. Parece que, depois de examinar os logs do meu sistema, fstabestá sendo lido antes de minhas interfaces de rede ficarem online. Existe alguma edição que eu possa fazer na fstabentrada que altere isso?

A fstabentrada para montar o compartilhamento é:

\\192.168.0.26\mythtv\media  /media/mybooklive  cifs  username=user,password=pass,umask=002,uid=136,gid=144,iocharset=utf8   0       0

Ele monta bem após a inicialização quando emito sudo mount -ae não há outros problemas com ele.

Obrigado!


2
Se o servidor estiver rodando Ubuntu, é provável que você precisa a / em vez de um \ - "//192.168.0.26/mythtv/media" See wiki.ubuntu.com/MountWindowsSharesPermanently
Panther

@ bodhi.zazen Pode ter o / quando o inseri, mas agora é lido com o \
douggro

Verifique a sintaxe (/ vs \) no fstab
Panther

@ bodhi.zazen Tenho certeza de que o artigo da wiki foi o que eu segui ao configurá-lo. Verificarei a sintaxe mais tarde quando tiver tempo para me sentar com meu servidor.
Douggro

1
@ bodhi.zazen Por favor, converta seu comentário em uma resposta - alterando o \ para / resolvido.
douggro

Respostas:



24

Você tentou adicionar a opção _netdevà sua fstabentrada? Você o adicionaria com as outras opções em sua string, como

//192.168.0.26/mythtv/media  /media/mybooklive  cifs  username=user,password=pass,_netdev,umask=002,uid=136,gid=144,iocharset=utf8   0       0

_netdev deve atrasar a montagem até que a rede se conecte.


Você pode adicionar contexto para onde isso seria colocado na fstablinha? Com isso, e um período em que eu posso reiniciar o servidor quando ele não estiver sendo usado, tentarei. Obrigado por responder.
douggro

1
Isso funcionou para mim no Ubuntu 12.04, mas não no Ubuntu 16.04. Isso mudou na versão mais recente?
Katu

2
Nota: Acho que o _netdev realmente funciona no 16.04, no entanto, credenciais = / home / user / .smbcreds não funcionam mais. Pelo menos para mim quando eu uso user =, pass =, _netdev ele funciona, quando eu uso credenciais =, _ netdev isso não acontece. Ambos funcionam via sudo mount-a na linha de comando após a inicialização.
Jb510

1
Na verdade, acho que isso pode ter mais a ver com as alterações de permissão feitas na pasta de mídia. Em algum momento, o Ubuntu começou a montar coisas no / media / nome de usuário / nome da pasta em vez de / media / nome da pasta. Se não for montado no local "nome de usuário", será necessário ter permissões no nível do sudo para acesso. Se você mudar seu caminho para usar o caminho / media / nome de usuário, acho que ainda deve funcionar.
Djmadscribbler

1
_netdev - Válido apenas com o NFS fstype
Mikhail Chuprynski

15

se _netdev não funcionar, tente a opção:

x-systemd.automount

em vez de. Ele funciona montando a unidade no primeiro acesso.

Para testar a montagem automática, desmonte seu compartilhamento se ele estiver montado no momento:

$ sudo umount /media/mybooklive

E, em seguida, reinicie a remote-fsunidade systemd:

$ sudo systemctl daemon-reload
$ sudo systemctl restart remote-fs.target

2
obrigado, isso funcionou para mim em 18.04 LTS
Chief

1
_netdev não estava funcionando no 18.04, funcionou perfeitamente :)
Brian diz Reinstate Monica

6

Estou usando a versão Raspbian-Stretch de 07-09-2017 e tive o mesmo problema. No entanto, consegui superar isso acessando o raspi-config e, no menu Opções de inicialização, ativei a opção "Aguardar a rede na inicialização".


1
Na verdade, isso é MUITO útil, eu tive problemas que, mesmo que a inicialização dissesse tudo OK, ela simplesmente não a montava ou exibia pastas
Alfred Espinosa

3

-Usar barras (/) NÃO corrigiu isso para mim.
-Além disso, adicionar a opção _netdevà minha /etc/fstabentrada NÃO a corrigiu para mim.

O que fiz para corrigir esse problema (no meu Pi3) é modificar /etc/rc.localpara dormir 20 segundos (ligando sleep 20) e depois ligar mount -a. Dessa forma, mesmo que a rede ainda não esteja conectada quando o sistema ler o arquivo fstab pela primeira vez, a montagem falhará, forço o sistema a aguardar 20 segundos aqui (dando tempo à rede para conectar-se) e o forço a ligar mount -anovamente para montar todas as unidades no fstabarquivo.

Aqui está a /etc/rc.localaparência do meu arquivo:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
#GS notes: a *minimum* of sleep 10 is required for the mount below to work on the Pi 3; it failed with sleep 5, but worked with sleep 10, sleep 15, and sleep 30
sleep 20
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  mount -a #GS: mount all drives in /etc/fstab
fi

exit 0

Feito! Agora funciona perfeitamente para mim!

Referências:


Você está se conectando via wifi?
Cbcoutinho 17/11

Sim, estou usando WiFi em vez de Ethernet.
Gabriel Staples

Isso é realmente muito estranho, mas provavelmente não está relacionado ao meu problema. Eu tenho três unidades de rede que estou tentando conectar através de um cabo Ethernet - sem wifi. Um dos nomes das unidades possui um caractere especial e isso faz com que não seja conectado após uma nova inicialização. A execução sudo mount -aresolve o problema, mas estou curioso para saber por que ele não funciona durante a inicialização. Vou tentar sua solução e ver se isso ajuda.
Cbcoutinho 21/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.