我的笔记本电脑上有 nfs 客户端,它通过 nfs 从本地服务器挂载了几个分区。一切正常,但在从 wifi 切换到 utp 接口时遇到了问题,反之亦然。因此,当我使用 utp 然后将其拔出并连接到 wifi 网络时,nfs 分区变得无法访问,也无法重新挂载。当我发出挂载命令时,它只是挂在那里。如果我重新启动笔记本电脑,它会毫无问题地挂载 nfs。我不知道为什么需要重新启动,但它解决了这个问题。所以,我正在寻找一种无需重新启动即可完成此操作的方法。
谢谢
答案1
首先解决无法重新挂载分区的问题。
尝试
umount -f -l /mnt/myfolder
这样就可以解决问题。
-f – 强制卸载(在无法访问 NFS 系统的情况下)。
-l – 延迟卸载。立即将文件系统从文件系统层次结构中分离出来,并在文件系统不再繁忙时清除对文件系统的所有引用。
成功后umount
您将能够再次挂载。
现在我们可以编写一些脚本来根据网络接口状态自动重新挂载。/etc/network/if-up.d/
如果特定接口启动时您不想采取行动,您可以使用它。
使脚本被调用并具有执行权限 755
sudo nano /etc/network/if-up.d/script
# Check for specific interface if desired
[ "$IFACE" != "wlan0" ] || exit 0
# Do something
sudo umount -f -l /mnt/myfolder
# then call your code to mounting `nfs`
sudo mount ...
wlan0
此脚本将在接口启动时执行。脚本将执行umount
,之后mount
您nfs
还可以为eth0
接口创建脚本
sudo nano /etc/network/if-up.d/script2
# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Do something
sudo umount -f -l /mnt/myfolder
# then call your code to mounting `nfs`
sudo mount ...
答案2
用于自动重新连接noresvport
在客户端使用noresvport
sudo mount -t nfs [2b01:7f8:1a:f243::a]:/data/ /data/ -o noresvport
在服务器上使用insecure
/data/ 2831:650:5b00:9232::9(rw,sync,no_subtree_check,no_root_squash,insecure)