Mount NFS 报 “wrong fs type” error

最近碰到了个有意思的事情,可以细说一下。在一次 mount NFS 的操作中出现了如下的报错:

wrong fs type, bad option, bad superblock on 192.168.1.112:/mnt/file,missing codepage on helper program, or other error (for several filesystems (e.g:nfs, cifs) you might need a /sbin/mount.<type>. help program)

In some cases useful info is found in syslog - try
dmesg | tail or so.

我们都知道在 mount NFS 的时候我们都使用类似 mount -t nfs 192.168.1.112:/mnt/file /file 这样的命令来指定 mount 类型为 NFS。所以出现 “wrong fs type” 这样的报错就很奇怪了。

经过测试,NFS 客户端系统与服务端之间的网络没有问题,到服务端的 111 端口和 2049 端口也是正常。并且使用另外一个系统 mount 同样的目录是成功的。经过这一轮的测试,我们可以确定服务端,防火墙等设置是没问题的。那么问题很有可能是发生在 NFS 的相关服务上。

执行 systemctl status rpcbind 检查 NFS 依赖服务 rpcbind 的状态,结果返回 Unit rpcbind. service could not be Found. 。额,服务都没找到,那岂不是 rpcbind 都没安装么?再试试 rpcinfo -p,返回 -bash: rpcinfo: command not Found。果然如此,估计 nfs 相关包都没安装。直接使用 yum -y install nfs-utils 把 NFS 相关包给安装了后,执行 systemctl start rpcbind,然后再尝试 mount 。额,报错还是一样的。看样子还有猫腻。

执行 rpcbind -p,得到以下的输出:

# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper

再对比一下 mount 正常的系统输出:

# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  62335  status
    100024    1   tcp  62065  status
    100021    1   udp  22306  nlockmgr
    100021    3   udp  22306  nlockmgr
    100021    4   udp  22306  nlockmgr
    100021    1   tcp  11463  nlockmgr
    100021    3   tcp  11463  nlockmgr
    100021    4   tcp  11463  nlockmgr

原来我们还少了两个服务 statusnlockmgr 没有启动。使用 systemctl 启动 statusnlockmgr 服务报错,都是报没有该服务。感觉 rpcinfo 列出的服务名并不是实际需要启动的服务名。经过一番搜索,找到了 Red Hat Enterprise Linux 8 Managing File System 这个文档,原来 status 对应的是 rpc-statdnlockmgr 并没有相应的服务对应因为我们在 mount NFS 时会自动启动。所以我们再执行 systemctl start rpc-statdrpc-statd 启起来即可。对于 NFS 相关服务依赖该文档均有说明,有兴趣的话可以自行前往查看。

最后,尝试 mount NFS ,一切正常,问题解决。需要说明的是,由于服务端 NFS 版本为 v3 版本所以才会碰到该问题,如果是 NFSv4 的话就不会啦,因为 NFSv4 已经摒弃了 RPC 相关服务。

版权声明:
作者:Kaol
链接:https://www.kaol.net/linux/mount-nfs-reports-wrong-fs-type-error.html
来源:Kaol's Blog
本站文章除特殊标明者外均为原创,版权所有,未经允许严禁转载!
THE END
分享
二维码
< <上一篇
下一篇>>