espera eficiente até que o NAS inicialize para montá-lo

2

Problema: o servidor inicializa 3 minutos, o Raspberry Pi inicializa 30 segundos. Após uma queda de energia, o RPi inicializa mais rápido e não monta o disco NAS.

Este RPi específico precisa de disco para poder gravar nele. Portanto, sem o disco (externo) montado, o RPi é inútil. Eu estava usando o RPi autostart.sh para:

mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock;

quando percebi esse problema. Então, criei um loop no autostart.sh do RPi, onde montei o NAS. Durante a operação normal (uma vez que a montagem é alcançada), este problema não pode mais ocorrer: se apenas um deles for reinicializado, a montagem do RPi funcionará bem (acho).

Esta seria uma boa solução (executada apenas na inicialização do RPi) e poderia ser feita melhor ou mais elegantemente?

until mountpoint -q /storage/nas || mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock; do sleep 30; done

Isso não deve tentar montar se já estiver montado, ou então - montar. Além disso, aguarde uma nova tentativa até que seja montado. Parece funcionar como planejado, exceto que o RPi inicializará (não o WAIT for mount), mas este RPi (na verdade o Kodi) será congelado até que o NAS seja montado.

A única coisa que posso ver colud ser adicionado aqui é: enviar WOL para o NAS antes de dormir.

Esclarecimento: Esta é a instalação do OPENelec RPi, e não há fstab não usado, mas o método descrito acima.

    
por Pila 20.05.2016 / 19:27

2 respostas

3

Você pode tentar adicionar a opção de montagem bg para nfs, se tiver. man 5 nfs :

If the bg option is specified, a timeout or failure causes the mount(8) command to fork a child which continues to attempt to mount the export. The parent immediately returns with a zero exit code. This is known as a "background" mount.

    
por 20.05.2016 / 19:53
0

Você está realmente usando um script de shell e não fstab para montar suas unidades na inicialização?

Leia em / etc / fstab (execute o comando man fstab ) e, em particular, olhe para a opção _netdev, então você acaba com algo parecido.

10.10.10.10:/srv/share /mnt/mymnt   nfs4    defaults,noexec,nosuid,_netdev,auto     0       0

Disclaimer: Não copie e cole o acima sem primeiro ler no fstab!

P.S. Dependendo do seu sistema operacional, nobootwait também pode valer a pena explorar como uma opção.

P.S.P.S. Veja também mount options in nfs (5)

    
por 20.05.2016 / 19:32

Tags