虚拟机中Ubuntu成功挂载NFS并为arm11烧录YAFFS2文件系(2)

第二步:配置NFS

1、配置portmap
方法1:编辑/etc/default/portmap,将"-i 127.0.0.1"去掉;
方法2:$ sudo dpkg-reconfigure portmap,出现“正在设定portmap”软件包设置界面,对Should portmap be bound to the loopback address?选择“否(No)”。

第三步:创建共享目录

例如我们采用/home/localhost/arm6410/root作为NFS共享目

$ sudo mkdir arm6410

$ cd  arm6410

$ sudo mkdir root   

$ chmod 777 arm6410   (更改文件权限,这个一定要改,不然很可能后面会出问题)

$ chmod 777 root          (更改文件权限,这个一定要改,不然很可能后面会出问题)

第四步:配置共享目录及yaffs2文件

修改主机上/etc/exports文件的内容,添加一行:/home/localhost/arm6410/root    *(rw,sync,no_root_squash)
  $ sudo vim /home/localhost/arm6410/root    *(rw,sync,no_root_squash)   

注:后面设置uboot启动参数的时候,目录名要和这个一样。

其中:
/home/localhost/arm6410/root    表示NFS共享目录,它可以通过NFS挂接作为开发板的根文件系统;
* 表示所有的客户机都可以挂接此目录,当然你也可以指定具体的IP,如192.168.x.x;
rw 表示挂接此目录的客户机对该目录有读写的权力;
sync 表示所有数据在请求时写入共享,即数据同步写入内存和硬盘;
no_root_squash 表示允许挂接此目录的客户机享有该主机的root身份;

配置好文件共享目录后,将yaffs2文件放置在共享目录下,然后解压即可。

第五步:启动NFS服务

在完成前面的配置后,首先需要启动portmap和NFS这两个服务,并且 portmap服务一定要先于NFS服务启动。
$ sudo /etc/init.d/portmap start
$ sudo /etc/init.d/nfs-kernel-server start

其他可能要用到了:

停止NFS服务
在停止NFS服务的时候,需要先停止NFS服务再停止portmap服务,如果系统中还有其他服务需要使用portmap服务,则可以不停止 portmap服务。
$ sudo /etc/init.d/nfs-kernel-server stop
$ sudo /etc/init.d/portmap stop

重新启动portmap和NFS服务
$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart

检查portmap和NFS服务状态
$ sudo /etc/init.d/portmap status

$ sudo /etc/init.d/nfs-kernel-server status

第六步:配置目标板和主机(我的是虚拟机中Ubuntu)IP

这两个IP一定要在同一个网段内,否则会出现很多的问题,很多像Root-NFS: Server returned error -5 while mounting /forlinx/root的问题就是由此引起。

假设:

主机IP:192.168.1.20
目标板IP:192.168.1.10

关于怎么知道目标板的IP,在你设置uboot环境变量后,使用printenv,既可以查看到目标板的IP信息。

那么这一步就有两种选择:1是更改主机IP,这个相对简单。(当然以后为了上网可以再改回去)

$ sudo vim  etc/network/interfaces

然后设置:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1

保存后重启

sudo /etc/init.d/networking restart

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24562.html