Stale NFS file handle的解决方法

早上来到公司,发现有两台server有问题。
因为用df -k察看磁盘使用情况时,一台机器报如下错误:
Stale NFS file handle。
另外一台整个就没反应。
后来查了一些资料,说是“       当我们已经mount 上的file or directory ,在server上突然被remove or unexport ,就会出现此讯息“。
就是说,如果client端mount上了server端的directory之后,如果server端又将这个directory unshare了,那么就会在client端出现这个错误。

正文:

其实解决办法很简单,就是在client上把那个文件unmount掉。
可是其实做起来很难,因为经常会得到 is busy的错误。

可以用下面的三个方法:
1)用fuser杀掉占用那个目录的进程
fuser -k /directory

2)在启动的进程里面查找
ps -ef |awk '{print }' |grep -v PID |xargs /usr/proc/bin/pwdx

这种方法只能在solaris8及以上版本使用

3)umount -f /directory
强制umount


上面的1跟2方法有时候并不能解决问题,可以这三个一起结合着使用。