为什么权限在重启后被NFS拒绝?

我将Ubuntu和CentOS客户端nfsv3挂载到一个FreeBSD盒子,在nfs客户端连接的时候重新启动。 现在客户端在尝试访问挂载点时获得了拒绝权限。

在客户端上,我尝试过

# umount /nobackup/dat umount.nfs: /nobackup/dat: device is busy umount.nfs: /nobackup/dat: device is busy # fuser /nobackup/dat Cannot stat file /proc/1660/fd/473: Stale NFS file handle Cannot stat file /proc/1660/fd/475: Stale NFS file handle Cannot stat file /proc/1660/fd/476: Stale NFS file handle Cannot stat file /proc/1660/fd/478: Stale NFS file handle Cannot stat file /proc/1660/fd/479: Stale NFS file handle Cannot stat file /proc/14509/fd/1: Stale NFS file handle Cannot stat file /proc/14674/fd/1: Stale NFS file handle Cannot stat file /proc/14871/fd/1: Stale NFS file handle Cannot stat file /proc/27872/fd/436: Stale NFS file handle Cannot stat file /proc/27872/fd/444: No such file or directory # umount -f /nobackup/dat umount2: Device or resource busy umount.nfs: /nobackup/dat: device is busy umount2: Device or resource busy umount.nfs: /nobackup/dat: device is busy 

更新

现在我杀了所有的进程,并成功卸载/nobackup/dat ,但我仍然因为某种原因得到权限被拒绝错误。

 # fuser -m /nobackup/dat 2>&1 | awk -F'/' '{print $3}' | xargs -n 1 kill # fuser -m /nobackup/dat # umount -l /nobackup/dat # ll /nobackup/dat ls: cannot open directory /nobackup/dat: Permission denied # mount /nobackup/dat mount.nfs: access denied by server while mounting (null) 

任何build议如何debugging呢?

问题在于,客户端并没有意识到nfs服务器已经closures了,所以他们仍然试图访问上一次挂载文件系统时创build的文件句柄。

通常情况下,重新启动客户端是重新安装文件系统的一个肯定的方法。 但是,如果您不想这样做,请先杀死所有尝试使用NFS文件系统的进程。 之后,你可以尝试一个“懒人umount”

 umount -l 

您也可以尝试使用重新挂载文件系统

 mount -o remount 

否则,旧的文件句柄在某个时间点超时,但我不知道需要多长时间。

一旦你成功地摆脱了陈旧的文件句柄,重新安装文件系统:

 mount nobackup/dat