Preciso montar compartilhamentos NFS no meu laptop quando estou no escritório e conectado a uma conexão Ethernet com fio (por meio de uma estação de acoplamento). Existe uma maneira confiável de montar e desmontar automaticamente compartilhamentos NFS neste cenário?
Estou executando o Arch Linux. Eu tentei o método de despachante NetworkManager descrito aqui: NFS - ArchWiki
Usando esse método, meu sistema congelará (travará, ficará sem resposta) quando eu tentar conectar-me a qualquer ponto de acesso Wi-Fi fora do escritório.
Todas as minhas montagens do NFS usam estas opções:
nfsserver:/path/one/ /path/one nfs _netdev,defaults,noatime,nodiratime,soft,retrans=6,timeo=20,retry=0,rsize=32768,wsize=32768,proto=tcp 0 0
As instruções completas que usei no link acima são coladas aqui:
Enable and start the NetworkManager-dispatcher.service.
The following script safely unmounts the NFS shares before the relevant network connection is disabled by listening for the pre-down and vpn-pre-down events:
Note: This script ignores mounts with the noauto option.
Place this script at /etc/NetworkManager/dispatcher.d/30-nfs.sh
#!/bin/bash
# Find the connection UUID with "nmcli con show" in terminal.
# All NetworkManager connection types are supported: wireless, VPN, wired...
WANTED_CON_UUID="CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9"
if [[ "$CONNECTION_UUID" == "$WANTED_CON_UUID" ]]; then
# Script parameter $1: NetworkManager connection name, not used
# Script parameter $2: dispatched event
case "$2" in
"up")
mount -a -t nfs4,nfs
;;
"pre-down");&
"vpn-pre-down")
umount -l -a -t nfs4,nfs >/dev/null
;;
esac
fi
Make the script executable with chmod and create a symlink inside /etc/NetworkManager/dispatcher.d/pre-down to catch the pre-down events:
# ln -s /etc/NetworkManager/dispatcher.d/30-nfs.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-nfs.sh
Para fazer esse script realmente funcionar, tive que modificar a instrução case para o evento pre-down da seguinte forma:
"pre-down"|"down")
Antes dessa alteração, nenhuma ação de script foi tomada em resposta ao evento de pré-redução. Após a alteração, o script responde adequadamente aos eventos. No entanto, como eu disse, meu laptop congela sempre que tento conectar a pontos de acesso WiFi fora do escritório.
Não consigo encontrar nada nos registros que pareça relacionado a isso. Mas tenho experiência suficiente com o NFS para adivinhar que esse problema é exatamente o que acontece quando as montagens do NFS não estão disponíveis. Além disso, o problema só começou depois que comecei a usar o método descrito acima. Anteriormente, eu estava me conectando manualmente via SSHFS e não tinha um problema de congelamento.
Eu também tentei brevemente o seguinte método:
No entanto, esse método parecia realmente incompleto e datado, então desisti rapidamente. Como esta parece ser uma necessidade comum, espero que exista uma solução conhecida e confiável. No entanto, não consigo encontrar um.
Tags mount nfs linux automounting