分类: LINUX
2013-01-21 23:27:02
搭建NFS根文件系统的前提是需要保证开发板与PC能够相互ping通,否则真是“白搭”了。这里我说一下本人的开发环境:主机操作系统XP,通过VMWARE8装了个Ubuntu 11.10,
网络环境:最近是使用3G无线网卡上的网,vmware通过NAT方式使ubuntu能够连接上外网,通过bridged方式使ubuntu---XP---OK6410开发板彼此能够ping通。也就是说我的ubuntu有2个网卡。
8.1 Ubuntu上安装配置NFS server
8.1.1 #sudo apt-get install nfs-common nfs-kernel-server portmap
8.1.2 修改Server的nfs配置#sudo gedit /etc/exports
在最后加上/home/my/mdev *(ro,sync,no_root_squash)
/home/my/mdev 表示要共享的文件夹,注意不要有中文字符
* 这里表示绑定的IP地址,*表示任意
ro 表示只读,rw表示可读写
sync 表示同步 no_root_squash 表示权限
8.1.3 启动nfs-server服务 #sudo /etc/init.d/nfs-kernel-server start
8.2 开发板根文件系统mdev增加网卡IP地址等配置文件(拷贝自开发板厂家提供的源程序)
8.2.1 mdev目录下/etc/目录增加eth0-setting文件,内容如下:
IP=192.168.1.110
Mask=255.255.255.0
Gateway=192.168.1.1
DNS=172.16.1.3
MAC=08:90:90:90:90:90
8.2.2 mdev目录下/etc/init.d/目录增加ifconfig-eth0文件,内容如下:
#!/bin/sh
echo -n Try to bring eth0 interface up......>/dev/ttySAC0
if [ -f /etc/eth0-setting ] ; then
source /etc/eth0-setting
#if grep -q "^/dev/root / nfs " /etc/mtab ; then
if grep -q "root=/dev/nfs" /proc/cmdline;then
echo -n NFS root ... > /dev/ttySAC0
else
ifconfig eth0 down
ifconfig eth0 hw ether $MAC
ifconfig eth0 $IP netmask $Mask up
route add default gw $Gateway
fi
echo nameserver $DNS > /etc/resolv.conf
else
if grep -q "^/dev/root / nfs " /etc/mtab ; then
echo -n NFS root ... > /dev/ttySAC0
else
/sbin/ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up
fi
fi
echo Done > /dev/ttySAC0
你还可以根据系统启动信息的提示增加其他文件,比如/etc/resolv.conf,etc/rc.d/netd等等。
8.3.开发板更新yaffs2根文件系统后,在超级终端中输入以下命令
[root@ STANzxd ]#mount –t nfs 192.168.1.100:/home/my/mdev /mnt/nfs –o nolock
/home/my/mdev 对应的是Ubuntu中的路径
/mnt/nfs 对应开发板中的路径
如果挂载成功则在超级终端中会显示
[root@ STANzxd ]#
测试:在ubuntu的/home/my/mdev/etc目录下新建一个文件nfstest
开发板上:
[root@ STANzxd ]#ls /mnt/nfs/etc显示如下:
init.d rc.d eth0-setting fstab inittab nfstest passwd profile
说明NFS挂载成功了。