mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
97 lines
4.6 KiB
Markdown
97 lines
4.6 KiB
Markdown
如何解决 “mount.nfs: Stale file handle”错误
|
||
======
|
||
|
||
> 了解如何解决 Linux 平台上的 `mount.nfs: Stale file handle` 错误。这个 NFS 错误可以在客户端或者服务端解决。
|
||
|
||
_![][1]_
|
||
|
||
当你在你的环境中使用网络文件系统时,你一定不时看到 `mount.nfs:Stale file handle` 错误。此错误表示 NFS 共享无法挂载,因为自上次配置后有些东西已经更改。
|
||
|
||
无论是你重启 NFS 服务器或某些 NFS 进程未在客户端或服务器上运行,或者共享未在服务器上正确输出,这些都可能是导致这个错误的原因。此外,当这个错误发生在先前挂载的 NFS 共享上时,它会令人不快。因为这意味着配置部分是正确的,因为是以前挂载的。在这种情况下,可以尝试下面的命令:
|
||
|
||
确保 NFS 服务在客户端和服务器上运行良好。
|
||
|
||
```
|
||
# service nfs status
|
||
rpc.svcgssd is stopped
|
||
rpc.mountd (pid 11993) is running...
|
||
nfsd (pid 12009 12008 12007 12006 12005 12004 12003 12002) is running...
|
||
rpc.rquotad (pid 11988) is running...
|
||
```
|
||
|
||
如果 NFS 共享目前挂载在客户端上,则强制卸载它并尝试在 NFS 客户端上重新挂载它。通过 `df` 命令检查它是否正确挂载,并更改其中的目录。
|
||
|
||
```
|
||
# umount -f /mydata_nfs
|
||
|
||
# mount -t nfs server:/nfs_share /mydata_nfs
|
||
|
||
#df -k
|
||
------ output clipped -----
|
||
server:/nfs_share 41943040 892928 41050112 3% /mydata_nfs
|
||
```
|
||
|
||
在上面的挂载命令中,服务器可以是 NFS 服务器的 IP 或[主机名][4]。
|
||
|
||
如果你在强制取消挂载时遇到像下面错误:
|
||
|
||
```
|
||
# umount -f /mydata_nfs
|
||
umount2: Device or resource busy
|
||
umount: /mydata_nfs: device is busy
|
||
umount2: Device or resource busy
|
||
umount: /mydata_nfs: device is busy
|
||
```
|
||
|
||
然后你可以用 `lsof` 命令来检查哪个进程或用户正在使用该挂载点,如下所示:
|
||
|
||
```
|
||
# lsof |grep mydata_nfs
|
||
lsof: WARNING: can't stat() nfs file system /mydata_nfs
|
||
Output information may be incomplete.
|
||
su 3327 root cwd unknown /mydata_nfs/dir (stat: Stale NFS file handle)
|
||
bash 3484 grid cwd unknown /mydata_nfs/MYDB (stat: Stale NFS file handle)
|
||
bash 20092 oracle11 cwd unknown /mydata_nfs/MPRP (stat: Stale NFS file handle)
|
||
bash 25040 oracle11 cwd unknown /mydata_nfs/MUYR (stat: Stale NFS file handle)
|
||
```
|
||
|
||
如果你在上面的示例中看到共有 4 个 PID 正在使用该挂载点上的某些文件。尝试杀死它们以释放挂载点。完成后,你将能够正确卸载它。
|
||
|
||
有时 `mount` 命令会有相同的错误。接着使用下面的命令在客户端重启 NFS 服务后挂载。
|
||
|
||
```
|
||
# service nfs restart
|
||
Shutting down NFS daemon: [ OK ]
|
||
Shutting down NFS mountd: [ OK ]
|
||
Shutting down NFS quotas: [ OK ]
|
||
Shutting down RPC idmapd: [ OK ]
|
||
Starting NFS services: [ OK ]
|
||
Starting NFS quotas: [ OK ]
|
||
Starting NFS mountd: [ OK ]
|
||
Starting NFS daemon: [ OK ]
|
||
```
|
||
|
||
另请阅读:[如何在 HPUX 中逐步重启 NFS][5]
|
||
|
||
即使这没有解决你的问题,最后一步是在 NFS 服务器上重启服务。警告!这将断开从该 NFS 服务器输出的所有 NFS 共享。所有客户端将看到挂载点断开。这一步将 99% 解决你的问题。如果没有,请务必检查 [NFS 配置][6],提供你修改的配置并发布你启动时看到的错误。
|
||
|
||
上面文章中的输出来自 RHEL6.3 服务器。请将你的评论发送给我们。
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://kerneltalks.com/troubleshooting/resolve-mount-nfs-stale-file-handle-error/
|
||
|
||
作者:[KernelTalks][a]
|
||
译者:[geekpi](https://github.com/geekpi)
|
||
校对:[wxy](https://github.com/wxy)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]:https://kerneltalks.com
|
||
[1]:http://kerneltalks.com/wp-content/uploads/2017/01/nfs_error-2-150x150.png
|
||
[2]:https://www.clouddesktoponline.com/
|
||
[3]:http://www.apps4rent.com
|
||
[4]:https://kerneltalks.com/linux/all-you-need-to-know-about-hostname-in-linux/
|
||
[5]:http://kerneltalks.com/hpux/restart-nfs-in-hpux/
|
||
[6]:http://kerneltalks.com/linux/nfs-configuration-linux-hpux/
|