内容纲要

umount:Stale NFS file handle & device is busy

问题

1、卸载文件系统时报 ==device is busy== 说明设备正在被使用,无法卸载
2、在访问或卸载 NFS 时报 ==Stale NFS file handle==,通常可能是NFS服务端异常、共享被remove、网络异常等导致的,需要重新挂载才能恢复

解决方法

如遇到无法卸载的情况,可以尝试通过如下方法:

umount -f /data     ===> -f 强制卸载
fuser -mk  /data     =====> 尝试kill使用挂载的进程
fuser -cu /data     ====> 找出使用挂载的用户和进程,停止进程后应该就可以正常卸载了

如果前面的方法不能奏效还有一种

umount -l /data 

-l,–lazy
Lazy unmount。将文件系统从文件层次结构中分离,并在该文件系统不再繁忙时清除对它的所有引用。

如果打算将此选项用于带有子挂载的网络文件系统或本地文件系统,那么在不久的将来将需要重新引导系统。umount -l 的推荐用例是为了防止由于网络共享不可达而导致的关机挂起,因为服务器宕机或网络分区宕机而导致的正常umount挂起。重新安装共享是不可能的。

请注意,该方法并不是完全安全的,lazy umount 主要完成如下操作:

立即从目录结构中实现卸载,即新进程将无法通过挂载点访问文件系统。
正在访问该文件系统的程序不受影响。即正在操作该文件系统的进程不会被打断,且仍可以读写文件系统中的所有文件。
如果所有进程对文件系统的操作都执行完,那么才真正地umount。
由此可知,lazy umount并没有真正实现umount,仅用于特殊需要的情况,而用这种方法来卸载U盘是不安全的。

示例:

[root@localhost ~]# umount /idpdata
umount: /idpdata: device is busy
umount: /idpdata: device is busy
[root@localhost ~]# fuser -k /idpdata 
Cannot stat /idpdata: Stale NFS file handle
Cannot stat /idpdata: Stale NFS file handle
[root@localhost ~]# umount -f 192.168.1.111:/nfsdata
umount2: No such file or directory
umount: 192.168.1.111:/nfsdata: not found
[root@localhost ~]# 
 mount  -f -t nfs -o rw,bg,hard,rsize=32768,wsize=32768,vers=3 192.168.1.111:/nfsdata /idpdata
mount.nfs: Stale NFS file handle

[root@localhost ~]# umount -l /idpdata
[root@localhost ~]# 
[root@localhost ~]# mount -t nfs -o rw,bg,hard,rsize=32768,wsize=32768,vers=3 192.168.1.111:/nfsdata /idpdata
[root@localhost ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                30472188  10440080  18459244  37% /
/dev/root             30472188  10440080  18459244  37% /
/dev                  32933516       488  32933028   1% /dev
/dev/cciss/c0d0p1       101086     21408     74459  23% /boot
tmpfs                 32933516         0  32933516   0% /dev/shm
/dev/hdvg/homelv     206424760 164493360  31445640  84% /home
192.168.1.111:/nfsdata    94361696  11660992  82700704  13% /idpdata