经典的 NFS “僵尸挂载(stale / frozen mount)” 问题。即使加了 -f 强制卸载,umount 也卡住,因为内核正在等待 NFS 响应,而后端已经不可达。
在这种情况下,有几种可行的方案:
1. 使用懒卸载(lazy unmount)
懒卸载不会阻塞 shell,它会立即让挂载点从用户空间消失,但内核会延迟清理资源:
umount -l /mnt/nfs2
-l= lazy- 适合后端已经挂掉的 NFS
- shell 不会再卡住
- 挂载点会在不再被进程使用时彻底释放
2. 杀掉占用挂载点的进程
有时候即使 -l,内核仍需要等所有访问挂载点的进程退出。先找占用进程:
lsof /mnt/nfs2
或者:
fuser -m /mnt/nfs2
杀掉它们:
fuser -km /mnt/nfs2
然后再执行:
umount -l /mnt/nfs2
3. 最极端方案:重启客户端节点
如果挂载点完全僵死,且懒卸载无效,有时候 唯一解决办法就是重启客户端。这是安全且可靠的方式,不会破坏 NFS 服务端。
建议流程(安全又不卡 shell)
- 不要再用普通
umount -f 先执行懒卸载:
umount -l /mnt/nfs如果挂载点被进程占用:
fuser -km /mnt/nfs umount -l /mnt/nfs确认卸载:
mount | grep nfs
