Chinaunix首页 | 论坛 | 博客
  • 博客访问: 178456
  • 博文数量: 43
  • 博客积分: 2516
  • 博客等级: 少校
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-09 10:25
文章分类

全部博文(43)

文章存档

2011年(1)

2009年(11)

2008年(31)

我的朋友

分类: LINUX

2008-12-14 15:52:23

 

虚拟机下同时实现上网与linux nfs根文件系统

唐立军 2008-12-12

适用场合:XP下安装了vmware虚拟机进行linux开发,为了方便开发,避免反复压缩文件系统以及下载到开发板上,我们使用放在虚拟机上的nfs文件系统作为开发板的启动根文件系统。但是同时又带来了另外一个问题就是主机只有一张网卡,当我们需要上网时必须把上网的网线连接在网卡上,导致的问题是开发板就不能通过网络访问nfs文件系统,同样的我们的开发板的网线与网卡相连时主机就不能上网,当然,如果你要是觉得不断的插拔网线是一件非常快乐的事情,那么下面的内容你可以不用再看了。

硬件条件:两张网卡(主板集成+独立网卡)+交叉网线一根

软件条件:XP+Vmware 6.5+ubuntu8.04

 

硬件安装:安装好网卡,插好网线(另一端插在开发板的网线接口上),重新启动电脑。

软件设置:

A、设置刚刚装好的网卡的IP地址、子网掩码。本例中IP设为192.168.1.2,子网掩码为:255.255.255.0。此网卡与开发板相连。

B、设置虚拟机中的硬件设备,添加一张网卡,连接方式设为桥接(用于支持nfs文件系统)。原来那张网卡的连接方式是NAT(用于与主机共享IP上网)。

C、设置linuxIP地址为:192.168.1.1(与A中在同一个网段),子网掩码:255.255.255.0.

D、此时我们用ping命令ping 192.168.1.2ping不通的。

E、设置虚拟机中两张虚拟网卡与实际网卡的对应关系。依次打开 程序àVmwareàVirture Network Editiong,切换到 选项卡,设置与开发板先连的网卡为交接方式。如下图所示:

注:上图中只需要对VMnet0选项中设置为开发板所对应的网卡即可。

F、配置linuxnfs服务,参考大聪的文档,在此也将其贴出。

1、进行NFS服务器端与客户端的安装:

apt-get install nfs-kernel-server  nfs-common  portmap

安装客户端的作用是可以在本机进行NFS服务的测试。

2、配置portmap

两种方法任选一种就可以:

(1):emacs /etc/default/portmap

去掉 -i 127.0.0.1

(2)dpkg-reconfigure portmap (推荐)

运行后选择

3、配置挂载目录和权限

emacs /etc/exports

我的配置如下:

# /etc/exports: the access control list for filesystems which may be exported
#
  to NFS clients. 
See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes
      
hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4
       
gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes
 
gss/krb5i(rw,sync)
#
/home/nfsboot *(rw,sync)
解释一下:

#后面的都是解释

/home/nfsbootNFS的共享目录,*表示任何IP都可以共享这个目录,你可以改为受限的IPrw表示的是权限,sync是默认的。

然后在home下建立nfsboot目录

4、更新exports文件

只要你更改了/etc/exports, 你可以通过exportfs -r 来更新 这个文件

5、重启NFS服务

 /etc/init.d/nfs-kernel-server restart 重启nfs服务

 修改nfsboot属性:chmod 777 nfsboo

6、进行测试

尝试一下挂载本地磁盘(我的linux系统IP59.71.73.233,将/home/nfsboot挂载到/mnt)
$ mount 59.71.73.233:/home/nfsboot /mnt
运行 $ df 看看结果

$ umount /mnt   //
卸载

5、嵌入式系统中使用NFS服务挂载(来自网上)

 先要保证内核支持nfs文件系统,可以用如下方式查看:

cat /proc/filesystems

其中有nfs一项,表示次内核已经支持nfs,否则要在编译内核的时候选择上

 

G、以后每次重新启动之后需要使用nfs时,则先需要将其mount.

mount 59.71.73.233:/home/nfsboot /mnt

H、最后设置U-boot的环境变量和开发板的网络连接。

1、设置网卡地址:

U-Boot>setenv ethaddr 3e:36:65:ba:6f:be

2、设置IP地址:

U-Boot>setenv ipaddr 192.168.1.3

3、设置环境变量:

U-Boot>setenv bootargs mem=64M console=ttyS0 115200 root=/dev/nfs rw nfsroot=192.168.1.1:/home/nfsboot ip=192.168.1.3:192.168.1.2:192.168.1.2:255.255.255.0::eth0:off

然后保存参数:

U-Boot>saveenv

其中nfsroot=192.168.0.10:/home/target 表示nfs 将从192.168.1.1:/home/target 文件

夹内启动根文件系统

ip=192.168.1.3:192.168.1.2:192.168.1.2:255.255.255.0::eth0:off

表示ip=$(taget IP):$(servicer IP):$(netGate):$(netMask)::(device):off

重新启动目标板,就能从nfs 根文件系统启动了。

 

 

 

阅读(2507) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~