嵌入式环境:挂载开发板根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
Looking up port of RPC / 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 / 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 - 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(,)

检查我的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                ## 重启防火墙

上一篇:Cuckoo for Hashing_双哈希表


下一篇:grep、head和tail