报障案例:
mount.nfs: Stale file handle for 192.168.1.1:/fs/1000/nfs/test on /mnt
mount.nfs: mounting 192.168.1.1:/fs/1000/nfs/test failed, reason given by server: No such file or directory
如果你是中文系统,应该就是报失效文件句柄
先直接说结果怎么处理:
先查看自己的NFS服务器配置文件,如果你没开NFS4的话这篇文章你可以直接关掉了,没对到症:
在你NFS服务器查看文件/etc/nfs.conf
[nfsd]
vers3=n
vers4=y
vers4.0=n
vers4.1=n
vers4.2=y
y代表开启,n代表关闭,如果要开v4.0-4.2的话,需要同时开v4,我这样就是只开v4.2的做法
然后再来看服务端的 exports 设置
nano /etc/exports
/fs/1000/nfs/volume1 192.168.1.1/24(rw,sync,no_subtree_check,nohide,insecure,no_root_squash,fsid=1001)
/fs/1000/nfs/volume2 192.168.1.1/24(rw,sync,no_subtree_check,nohide,insecure,no_root_squash,fsid=1002)
/fs/1000/nfs/volume4 192.168.1.1/24(rw,sync,no_subtree_check,nohide,insecure,no_root_squash,fsid=1004)
这里1-4都是我的nfs共享绝对路径
然后保存查看是否配置生效:
exportfs -ra
exportfs -v
systemctl restart nfs-server
systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; preset: enabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Wed 2025-06-18 22:21:16 CST; 3s ago
Process: 13424 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Process: 13425 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Main PID: 13425 (code=exited, status=0/SUCCESS)
CPU: 5ms
Jun 18 22:21:16 NAS systemd[1]: Starting nfs-server.service - NFS server and services...
Jun 18 22:21:16 NAS systemd[1]: Finished nfs-server.service - NFS server and services.
看上去已经成功拉起服务器了,这个问题基本上就解决了
客户端如何配置呢?因为我们已经在服务器定义了绝对路径,因此我们只需要在客户端这样挂载就行了
mount -t nfs4 -o vers=4.2,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600 192.168.1.1:/fs/1000/nfs/volume1 /volume1/
问题解决
原理:
如有不对就当看个乐:
这个问题的核心原因是因为你的客户端没用NFS3而是使用了NFS4+协议

与我们用惯的nfs3 不同,nfs4 不支持直接挂绝对路径,我们需要设置一个带fsid标记的虚拟根目录
| NFSv3 | NFSv4 | |
|---|---|---|
| 路径 | 配置绝对路径即可 | 必须设置虚拟根目录 |
fsid=0 | 不需要 | 必须设置 |
| 中间路径 | 否 | 是 |
| 客户端挂载 | 按绝对路径挂载 | 按服务端的虚拟路径挂载 |