以前用nfs的时候,主机与开发板直接用网线连起来,IP自定,/etc/exportfs是这样的:
/home/ecos *(rw,sync,no_root_squash)
从开发板挂主机的时候都没错。
后来开发板用了ucdhcp,开发板直接连到了交换机(主机也连到了交换机),能通过udhcpc获得IP,但是老出现:
Permission denied
tail /var/log/messages时有下错误:
206 rpc.mountd: refused mount request from 202.193.77.13 (13.77.193.202.in-addr.arpa) for /home/ecos (/home/ecos): no DNS forward lookup
202.193.77.13 是我开发板的IP,后来查资料才知道:
nfs server接到客户端的mount时,会先客户的IP做反解成域名,用域名(注意是用域名而不是IP)去和/etc/exports做比较,如果匹配不成功会失败。
后来我在主机的/etc/hosts加了一句:
202.193.77.13 13.77.193.202.in-addr.arpa
再mount就可以了。
13.77.193.202.in-addr.arpa是开发的主机名,在开发板上用hostname命令输出是一样的。不过还有几点要注意的:
1./etc/host.conf内容为:
order hosts,bind
2.要将主机的/etc/exporfs改为
/home/ecos *(rw,sync,no_root_squash)
或者将“*”改为开发板的主机名(我的开发板主机是:13.77.193.202.in-addr.arpa)
3.要开portmap服务:
service portmap restart
4.要开nfs服务:
service nfs restart
5.要关闭防火墙:
service iptables stop
如果这几步都做了我肯定一定能挂载的,平时我出现问题的时候都是照着这几步来做,都可以解决。