nfs启动开发板总结

   在开发板上要使用nfs方式启动linux的主要原因:可以在电脑上完成程序的调试,不用反复擦写flash,快速完成开发。

  nfs基础知识:

来自:http://www.cio69.com/html/201118/89.html

   NFS守护进程:NFS是通过使用许多用户级的守护进程及远程过程调用等网络应用程序来实现的。而NFS服务器及客户端的守护进程并不完全一致。

1、 作为NFS服务器所需的守护进程
portmap:将远程过程调用(RPC)程序映射为传输层的TCP/UDP端口号。
rpc.mountd:响应客户机发来得文件系统安装请求
nfsd:执行客户机的IO请求
2、 作为NFS客户机所需的守护进程
portmap:将远程过程调用(RPC)程序映射为传输层的TCP/UDP端口号。
biod:从客户机的高速缓冲区提前读入或延迟写成数据块。
3、 NFS服务器和客户机都运行的守护进程
rpc.statd:为rpc.lockd进程提供冲突和复原功能
rpc.lockd:处理本地或远地的加锁功能

 

   为了实现这一功能,

第一、在电脑上安装nfs服务器。

     1.运行rpm -qa|grep portmap查看有没有portmap安装包

     2.运行rmp -qa | grep nfs查看相关的nfs安装包

    如果没有就到相应的安装光盘里找。在redhat enterprise6这个版本里默认安装里没有portmap包。(或许是没有显式说明)但运行nfs不受影响

第二、配置/etc/exports文件

  基本格式

        指定共享目录 指定能访问的主机(权限)

   例如:/home/share 192.168.1.100(rw,sync,no_root_squash)

   说明

       来自:http://www.cnblogs.com/heiyue/archive/2011/05/31/2065159.html    

目录:自己定义的
/arm2410cl *(或缺省)      所有主机 
/arm2410cl/temp  192.168.1.0/24(或192.168.1.*)    指

定子网中的所有主机
/arm2410cl/mail    www.chen.com        指定域名的主机
/arm2410cl/samba   *.chen.com      指定域中的所有主机
/arm2410cl/ftp  192.168.1.10指定IP地址的主机 
  基本权限:
ro: 只读
rw: 读写
两个基本权限是单选的,选择ro,rw就不能存在。同理,选择rw

就不能选择ro
  常规选项:
Insecure:允许来自高于1024的端口的连接
Insecure_locks:允许不安全的文件锁定
no_subtree_check:禁用子树查询
sync:按要求同步写操作
no_wdelay:立即强制同步写操作
  用户访问:
no_root_squash:把远程根用户当作本地根用户
all_squash:把所有客户用户当作匿名用户
anonuid=XXX:为匿名用户指定本地用户ID
anongid=XXX:为匿名用户指定本地组群ID
  维护NFS服务的输出目录列表
  每当修改了/etc/exports文件的内容后,实际上不需要重新启动NFS服务,而直接使用命令exportfs就可以使设置立即生效。exportfs -av

exportfs [选项]
选项有以下几个。
-a:输出在/etc/exports文件中所设置的所有目录。
-r:重新读取/etc/exports文件中的设置,并使设置立即生效

,而不需重新启动NFS服务。
-u:停止输出某一目录。
-v:在输出目录时将目录显示到屏幕上。
  1.重新输出共享目录每当修改了/etc/exports文件的内容后,可使用下面的命令来重新输出共享目录Exports –-rv
  2.停止输出所有共享目录要停止输出当前主机中NFS服务器的所有共享目录,可使用下面的命令。exportfs –-auv

 

使用showmount命令测试NFS服务器的输出目录状态
showmount命令的基本格式为:
showmount –-e 192.168.1.10
showmount
showmount命令如下:
# showmount [-ae] hostname
参数说明如下。
(1)-a:以host:dir这样的格式来显示客户主机名和挂载点目录。
(2)-d:仅显示被客户挂载的目录名。
(3)-e:显示NFS服务器的输出清单。
(4)-h:显示帮助信息。
(5)-v:显示版本信息。
(6)--no-headers:禁止输出描述头部的信息。
  当要扫描某一主机所提供的NFS共享的目录时,使用showmount -e IP(或主机名称hostname)即可。

nfs所开启的端口是2049,其他端口是RPC Server等程序(例如rpc.mountd、rpc.rquotad及rpc.nfsd.)随机产生的

(即端口号不会是固定的,每次restart nfs都会得到不一样的端口号)。

 

 

第三、启动nfs

  service nfs start

 service portmap start

如果要停止:将start换成stop即可。查询

ps aux | grep nfsd
ps aux | grep portmap
如果要设置nfs为自动启动状态除了使用setup办法外,还可以使用:

chkconfig --list portmap

chkconfig --list nfs

chkconfig --level 35 portmap on

chkconfig --level 35 nfs on

第四、配置开发板的启动参数

uboot> setenv bootargs 'console=ttyS0,115200n81 mem=64M root=/dev/nfs rw nfsroot=192.168.1.95:/home/uncompress/rootfs ip=192.168.1.104:192.168.1.95:192.168.1.1:255.255.255.0:yongan.com:eth0:off'
ip=”后面:
第一项(192.168.1.104)是目标板的临时IP(注意不要和局域网内其他IP 冲突);
第二项(192.168.1.95)是开发主机的IP;
第三项(192.168.1.1)是目标板上网关(GW)的设置;
第四项(255.255.255.0)是子网掩码;
第五项是开发主机的名字(一般无关紧要,可随便填写)
eth0 是网卡设备的名称。

第五、配置linux内核,编译下载到开发板中。

第六、检查网络连通性。最好将开发板启动后的ip设成静态的,并与主机iP在一个子网内。

 

 

可能出现的问题:

Server returned error -13 while mounting

可能是开发板设置的启动根文件与nfs服务器设置的共享文件不一致,甚至根本没有配置nfs的exports文件

Root-NFS: Server returned error -5 while mounting

可能是没有安装或启动portmap服务,也有可能是网络不通导致

如果出现网络问题,先ping一下,仔细查看下关于网络不通可能的原因:防火墙,网线脱落,ip设置,selinux设置,如果有虚拟机,还有可能是网卡选择等。

最后就是:开发板有关于网络的驱动有问题也会造成上面的现象

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值