NFS报错:rpc.rquotad: unable to register service|mount: wrong fs type, bad option, bad superblock
今天准备在正式环境测试一下puppet,搭建仓库后,需要搭建一个nfs来进行文件共享,让下面发agnet通过nfs安装. yum install nfs-utils成功后,启动nfs服务时,发现有如下报错信息:
[root@master ~]# service nfsd start
nfsd: unrecognized service
[root@master ~]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
[FAILED]
Starting NFS mountd: [FAILED]
Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
rpc.nfsd: unable to set any sockets for nfsd
[FAILED]
从原因来看是由于不能注册服务,RPC不能接收.网上一查,发现原因如下:
Redhat系列在6.0版本之后没有portmap服务控制rpc的启动,NFS和nfslock的启动需要向rpc进行注册,rpc不启动的话就会报错。
解决方法:启动rpcbind&rpcidmap rpcbind是6.0版本后默认的RPC服务,所以要先于nfs启动。 如果不启动rpcidmap则会造成用户权限的映射错误,用户的权限看起来是一串数字。 具体解决如下:
[root@master ~]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
[FAILED]
Starting NFS mountd: [FAILED]
Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
rpc.nfsd: unable to set any sockets for nfsd
[FAILED]
[root@master ~]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
[root@master ~]# /etc/init.d/rpcidmapd start
Starting RPC idmapd: [ OK ]
[root@master ~]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
[root@master ~]#
在客户端挂载nfs时,发现有如下问题:
root@agent1 media]# /bin/mount -t nfs 10.20.102.154:/puppet /media/
mount: wrong fs type, bad option, bad superblock on 10.20.102.154:/puppet,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so
解决方法是在客户端也需要启动rpcbind和rpcidmapd服务.
[root@agent1 ~]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
[root@agent1 ~]# /etc/init.d/rpcidmapd start
Starting RPC idmapd: [ OK ]
[root@agent1 ~]# mount -t nfs 10.20.102.154:/puppet /media
[root@agent1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos6264-lv_root
25G 17G 6.2G 74% /
tmpfs 1.5G 0 1.5G 0% /dev/shm
/dev/vda1 485M 51M 409M 11% /boot
10.20.102.154:/puppet
26G 17G 7.7G 68% /media
[root@agent1 ~]#