嵌入式环境:挂载开发板根NFS文件系统失败
挂载开发板根NFS文件系统的时候,发现了下面的问题:
Looking up port of RPC 100003/2 on 192.168.2.109
rpcbind: server 192.168.2.109 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/1 on 192.168.2.109
rpcbind: server 192.168.2.109 not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
------------------------------------------------------------------------------
出现这个问题,经过检查,原来是linux server的防火墙没有关。
1. 报这种错,防火墙是原因之一。
但不一定就是这一个原因,还有
2. 开发板的bootloader的 bootargs没有设置正确导致找不到server 的nfs,一般格式如下:
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.2.109:/home/fs/work/nfs_root/fs_qtopia ip=192.168.2.111:192.168.2.109:192.168.2.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
3. 另外挂载nfs需要启动nfs服务,并设置好nfs exports目录,
/etc/init.d/nfs start
[root@localhost fs]# vi /etc/exports /home/fs/work/nfs_root/fs_mini_mdev *(rw,sync,no_root_squash,no_subtree_check) /home/fs/work/nfs_root/fs_qtopia *(rw,sync,no_root_squash,no_subtree_check)
4. 不同开发板,不同内核,不同uboot的挂载命令不尽相同,不能盲目照搬。
我在使用s5pc100开发板的时候,nfs挂载错误如下:
usbhid: USB HID core driver TCP cubic registered NET: Registered protocol family 17 Looking up port of RPC 100003/2 on 192.168.2.109 rpcbind: server 192.168.2.109 not responding, timed out Root-NFS: Unable to get nfsd port number from server, using default Looking up port of RPC 100005/1 on 192.168.2.109 rpcbind: server 192.168.2.109 not responding, timed out Root-NFS: Unable to get mountd port number from server, using default Root-NFS: Server returned error -101 while mounting /work/farsight/nfs_root/rootfs VFS: Unable to mount root fs via NFS, trying floppy. VFS: Cannot open root device "nfs" or unknown-block(2,0)
检查我的bootargs设置,
bootargs=root=/dev/nfs nfsroot=192.168.2.109:/work/farsight/nfs_root/rootfs init=/linuxrc console=ttySAC0
经过一番比对,发现应该是:
bootargs=root=nfs nfsroot=192.168.2.109:/work/farsight/nfs_root/rootfs ip=192.168.2.200 init=/linuxrc console=ttySAC0
这一点不同于jz2440开发板。
====================================================================================================
====================================================================================================
相关链接:
nfs服务以及mount命令使用 http://blog.itpub.net/23073818/viewspace-757312/
1、在A机上启动NFS和RPC服务
/etc/init.d/portmap start
/etc/init.d/nfs start
2、检查NFS的运行级别:
chkconfig --list portmap
chkconfig --list nfs
3、根据需要设置在相应的运行级别自动启动NFS:
chkconfig --level 235 portmap on
chkconfig --level 235 nfs on
--检测nfs 的rpc 注册状态
rpcinfo -u 主机名或IP 地址 进程
[root@tmg133 data3]#-- rpcinfo -u 192.168.2.109 nfs
program 100003 version 2 ready and waiting
program 100003 version 3 ready and waiting
program 100003 version 4 ready and waiting
[root@tmg133 data3]# --rpcinfo -u 192.168.2.109 mount
program 100005 version 1 ready and waiting
program 100005 version 2 ready and waiting
program 100005 version 3 ready and waiting
--查看共享目录和参数设置 cat /var/lib/nfs/etab
/home/fs/work/nfs_root/fs_mini_mdev *(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
/home/fs/work/nfs_root/fs_qtopia *(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
~ (ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
用命令行方式关闭CentOS防火墙 http://blog.163.com/zhaoweibiao87@126/blog/static/13479948120126611325557/
临时性的完全关闭防火墙,可以不重启机器:
#/etc/init.d/iptables status ## 查看防火墙状态
#/etc/init.d/iptables stop ## 本次关闭防火墙
#/etc/init.d/iptables restart ## 重启防火墙