您的位置:首页 > 理论基础 > 计算机网络

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

2016-08-19 11:15 495 查看
使用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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息