11.Linux:使用NFS挂载网络根文件系统(原创)

使用NFS挂载网络根文件系统
宿主机Linux:
1、拷贝并解压root_qtopia.tgz至/opt/mini2440目录下;
tar xvzf root_qtopia-20100108.tar.gz - C /opt/mini2440/

2、设置共享目录,运行命令:#gedit/etc/exports,编辑nfs配置文件,打开后文件是空的,在文件中加入:/opt/mini2440/root_qtopia *(rw,sync,no_root_squash),保存退出。
   设置生效并查看:
   exportfs -ra
   exportfs -v
   其中,/opt/mini2440/root_qtopia是共享目录,*表示所有客户机都可以挂载此目录,rw表示挂载此目录的客户机对此文件可读写的权力,no_root_qtopia表示允许挂载此目录的客户机拥有root身份。

3、启动nfs服务,有两种方法,一种是输入命令:#/etc/init.d/nfs start,这将启动nfs服务,输入命令:#/etc/init.d/nfs stop,关闭nfs服务。要想在每次开机都自动启动nfs服务,需输入命令:#serviceconf,此时会弹出linux的服务配置窗口,找到nfs这一项,选中它并启动,然后保存退出即可。

4、此时,主机的nfs服务已经配置完毕,可以输入命令:#mount –t nfs localhost: /opt/mini2440/rootfs_qtopia_qt4 /mnt/,输入后如果不提示任何消息,说明nfs已经挂载成功,进入/mnt目录下看看是否有/opt/mini2440/rootfs_qtopia_qt4文件夹下的内容。如有,则主机搞定!
(注意:宿主机和虚拟机的ip地址保持在同一个网段)


开发板设置:(在NAND FLASH下面)
1、打开超级终端,连接好开发板,选择NAND FLASH启动开发板,启动时迅速按下空格键,进入vivi模式

2、在Supervivi模式下面输入以下命令行,修改引导参数:
setenv bootargs console=ttySAC0 root=/dev/nfsnfsroot=172.16.3.201:/opt/mini2440/rootfs_qtopia_qt4ip=172.16.3.202:172.16.3.201:172.16.3.201:255.255.255.0:mini2440.arm9.net:eth0:off

其中 ,setenv bootargs 是设置启动开发板时的命令参数。其各参数的含义
如下:
nfsroot 是自己开发主机的IP 地址。
“ip=”后面:
第一项(172.16.3.202)是目标板的临时IP(注意不要和局域网内其他IP 冲突);
第二项(172.16.3.201)是开发主机的IP;
第三项(172.16.1.1)是目标板上网关(GW)的设置;
第四项(255.255.255.0)是子网掩码;
第五项是开发主机的名字(一般无关紧要,可随便填写)
eth0 是网卡设备的名称。

回车,然后:
saveenv
回车再重新启动开发板Linux系统: boot

4、启动YAFFS:
setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
回车再输入saveenv

5、要想每次启动都通过nfs启动系统,输入命令:Supervivi>menu,按下s,然后再按下w,将启动命令写入flash,成功!以后每次都可以以NFS方式启动。如不进行此操作,以后要想通过nfs启动系统都要对开发板进行上面环境变量的设置。
(注意:注:用ifconfig eth0 172.16.3.201可以设置linux开发板的ip地址,但重启后又变成默认,要想保存改变的ip地址,需要改掉/etc/eth0-setting里面的IP就可以永久保存了)


按开发板的任何键,然后开电源,注意跳线在NOR,进入VIVI的菜单,按q,到COMMAND下,复制下面这个语句
param set linux_cmd_line "console=ttySAC0 root=/dev/nfsnfsroot=172.16.3.201:/root/tmp/root_qtopiaip=172.16.3.202:172.16.3.201:172.168.3.201:255.255.0.0:sbc2440.arm9.net:eth0:off"
然后param save
还原:param set linux_cmd_line "noinitrdroot=/dev/mtdblock3 init=/linuxrc console=ttySAC0"
然后param save

小技巧: 通过word来复制setenvbootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0, 可以消除换行符错误。

-----2013/3/10

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值