私がオフィスにいるときに有線イーサネット接続(ドッキングステーション経由)に接続している場合は、ノートブックにNFS共有をマウントする必要があります。この場合、NFS共有を自動的にマウントしてアンマウントする安定した方法はありますか?
私はアーチLinuxを使用しています。ここで説明したNetworkManagerスケジューラ方法を試しました。NFS - ArchWiki
この方法を使用すると、オフィスの外部のWiFiアクセスポイントに接続しようとすると、システムが停止(停止、応答しない)されます。
私のすべてのNFSマウントは次のオプションを使用します。
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
上記のリンクで使用された完全な説明はここに貼り付けられています。
NetworkManager-dispatcher.serviceを有効にして起動します。
次のスクリプトは、接続されたネットワーク接続を無効にする前にNFS共有を安全にアンマウントするために、pre-downイベントとvpn-pre-downイベントをリッスンします。
注:このスクリプトはnoautoオプションを使用したインストールを無視します。
このスクリプトを /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
chmodを使用してスクリプトを実行可能にし、/etc/NetworkManager/dispatcher.d/pre-downにシンボリックリンクを作成してダウン前のイベントをキャプチャします。
# ln -s /etc/NetworkManager/dispatcher.d/30-nfs.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-nfs.sh
このスクリプトが実際に機能するには、事前ダウンイベントのケース説明を次のように変更する必要がありました。
"pre-down"|"down")
この変更以前は、ダウンタイム前のイベントに応答してスクリプト操作は実行されませんでした。変更後、スクリプトはイベントに適切に応答します。しかし、あなたが言ったように、オフィスの外からWiFiアクセスポイントに接続しようとするたびに、ラップトップは動作を停止します。
ログにこれに関連するコンテンツが見つかりません。ただし、NFSマウントが利用できない場合に問題が発生すると推測できるほど、NFSの経験は十分です。そして、上記の方法を使い始めてから問題が現れ始めました。以前はSSHFS経由で手動で接続していましたが、停止の問題はありませんでした。
また、以下を簡単に試しました。
[解決済み] NFS共有が閉じて起動が長時間遅れている/ネットワーク、サーバー、保護/Arch Linuxフォーラム
しかし、この方法はあまりにもやさしく、古く見えてすぐ放棄しました。これは一般的な要件であると思われるので、信頼できる既知の解決策があることを願っています。しかし、見つからないようです。