报障案例:
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/exports
[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 192.168.1.0/24(rw,fsid=0,sync,no_subtree_check,no_root_squash)
/fs/1000/nfs/test1 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
/fs/1000/nfs/test2 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
/fs/1000/nfs/test3 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
/fs/1000/nfs/test4 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
这里test1-4都是我的nfs共享绝对路径, /fs/1000/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 nfs -o vers=4.2 192.168.1.1:/test1 /mnt
问题解决
原理:
如有不对就当看个乐:
这个问题的核心原因是因为你的客户端没用NFS3而是使用了NFS4+协议

与我们用惯的nfs3 不同,nfs4 不支持直接挂绝对路径,我们需要设置一个带fsid=0标记的虚拟根目录
NFSv3 | NFSv4 | |
---|---|---|
路径 | 配置绝对路径即可 | 必须设置虚拟根目录 |
fsid=0 |
不需要 | 必须设置 |
中间路径 | 否 | 是 |
客户端挂载 | 按绝对路径挂载 | 按服务端的虚拟路径挂载 |
回到我的服务端配置:
/fs/1000/nfs 192.168.1.0/24(rw,fsid=0,sync,no_subtree_check)
/fs/1000/nfs/test1 192.168.1.0/24(rw,sync,no_subtree_check)
/fs/1000/nfs 是虚拟根目录,是 nfs4协议定义的起点
/test1 是相对于这个虚拟根的路径
中间路径 /fs、/fs/1000 不需要管,但 /fs/1000/nfs 这个路径必须配置,必须 fsid=0