A montagem do rc.local falha; como fazê-lo corretamente?

2

Aqui está meu /etc/rc.local :

atual
#!/bin/sh -e

# Test 1
echo line1 > /home/myHome/rclog.txt

# the mount
mount /mnt/mediaDrive &> /home/myHome/mountlog.txt

# Test 2
echo line2 >> /home/myHome/rclog.txt

exit 0

O /mnt/mediaDrive é um noauto em fstab . É um compartilhamento de rede, portanto, a montagem em rc.local .

A montagem no script acima não funciona na inicialização. Após a inicialização, o arquivo rclog.txt contém line1 e line2 , e o arquivo mountlog.txt está vazio. Isso indicaria que todos os comandos no script foram executados com sucesso, no entanto, a unidade não está montada.

Executar sudo /etc/rc.local manualmente em um terminal faz montar o compartilhamento de rede.

Não há nada relevante em /var/syslog que eu possa ver, e as permissões para rc.local são 755. A% relevantefstab entry:

//192.168.1.100/home  /mnt/mediaDrive  cifs  noauto,credentials=/home/myHome/.mediaCredentials,uid=myName,gid=myGroup  0  0

O que está acontecendo aqui?

    
por Rody Oldenhuis 26.11.2013 / 11:51

4 respostas

3

O problema deve ser que no momento da inicialização sua rede ainda não está disponível, e é a razão pela qual ela é montada após inicialização. Você deve usar outros mecanismos para montar o dispositivo, como o upstart. Exemplo usando upstart:

# mount CIFS share

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

pre-start script /bin/mount /mnt/mediaDrive
pre-stop script /bin/umount /mnt/mediaDrive

Você pode modificá-lo para atender às suas necessidades. O nome do arquivo deve terminar com .conf e salvo no diretório /etc/init .

    
por Braiam 26.11.2013 / 12:28
1

Como foi observado por Braiam, no momento em que rc.local é executado, não há rede disponível por algum motivo.

Esse foi o motivo original pelo qual mudei para a abordagem noauto + rc.local . Então, embora eu não tenha certeza do porque, essa abordagem é falha.

No meu caso, um simples _netdev (em vez de noauto ) em /etc/fstab resolveu o problema.

Observe que, no meu caso, eu tinha várias dúzias de montagens de ligação em locais na unidade de rede. Cada uma dessas montagens de ligação também precisa de uma opção _netdev em /etc/fstab , ao lado da opção bind .

    
por Rody Oldenhuis 26.11.2013 / 12:54
1

Basta adicionar um "sleep 5" acima do seu comando de rede no rc.local

Eu tive o problema de montar o acesso cifs no meu framboesa com osmc, com este 5s a rede está ativa e a montagem está OK

    
por user597723 22.09.2016 / 00:36
0

Adicionar noauto,x-systemd.automount à minha linha fstab é o que finalmente funcionou para mim. Eu também tenho uma linha mount /media/share no meu rc.local, mas não tenho certeza se isso é importante ou redundante.

_netdev in /etc/fstab não funcionou para mim (com ou sem um comando mount em rc.local)

    
por Clint Robinstein 02.11.2017 / 07:04