配置:vmware中安装Ubuntu10.04
系统:windows XP
连接:开发板通过RS232和交叉网线与PC相连
方法如下:
一、虚拟机设置(如果网络已经设置在桥接方式,跳过这步)
1、在启动ubuntu前,将其Ethernet(网络)连接方式设为Bridge(桥接方式)
2、启动ubuntu,设置静态ip地址(必须与开发板处于同一网段)
lingd@ubuntu:~$ sudo ifconfig eth0 192.168.0.26 netmask 255.255.255.0
二、为ubuntu安装NFS
1、安装NFS
lingd@ubuntu:~$ sudo apt-get install nfs-kernel-server
同时会有两个软件包nfs-common和portmap被安装上
2.修改NFS配置文件
lingd@ubuntu:~$ vi /etc/exports
内容为:
/home/lingd/arm 192.168.0.*(rw,sync,no_root_squash,no_subtree_check)
/home/lingd/arm—要共享的目录
192.168.0.*—允许访问的网段,也可以是ip地址、主机名(能够被服务器解析)、*(所有人都能访问)
(rw,sync,no_root_squash,no_subtree_check)—rw:读/写权限
sync:数据同步写入内存和硬盘
no_root_squash:服务器允许远程系统以root特权存取该目录
no_subtree_check:关闭子树检查
其他选项可以通过man exports查阅man文档
3、启动服务
重启portmapper(端口映射)服务
lingd@ubuntu:~$ sudo service portmap restart
portmap start/running, process 550
重启NFS服务
lingd@ubuntu:~$ sudo service nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon… [ OK ]
* Exporting directories for NFS kernel daemon… [ OK ]
* Starting NFS kernel daemon [ OK ]
三、测试
1、本机挂载
lingd@ubuntu:~$ ls /mnt/nfs/
lingd@ubuntu:~$ sudo mount -t nfs -o nolock localhost:/home/lingd/arm/ /mnt/nfs/
lingd@ubuntu:~$ ls /mnt/nfs/
cross-3.4.1.tar.bz2 linux-2.6.12 upload
download msap VMwareTools-8.1.3-203739.tar.gz
DSDT_2[1].8b.zip ntp vmware-tools-distrib
DSDT_2.8b protocol-converter 安装包
lingd@ubuntu:~$ sudo umount /mnt/nfs
lingd@ubuntu:~$ ls /mnt/nfs/
2、开发板挂载
lingd@ubuntu:~$ telnet 192.168.0.25 2009
Trying 192.168.0.25…
Connected to 192.168.0.25.
Escape character is ‘^]’.
(none) login: root
Password:
~ # ls /mnt
ext1 ext2
~ # mount -t nfs -o nolock 192.168.0.26:/home/lingd/arm /mnt
~ # ls /mnt
DSDT_2.8b msap
DSDT_2[1].8b.zip ntp
VMwareTools-8.1.3-203739.tar.gz protocol-converter
cross-3.4.1.tar.bz2 upload
download vmware-tools-distrib
linux-2.6.12 安装包
~ # umount /mnt
~ # ls /mnt
ext1 ext2
~ #
四、挂载nfs文件系统失败的原因
1、nfs错误信息
Too many levels of remote in path:试图挂载一个存在的文件系统
Permission denied:NFS服务器不让客户机挂接,也可能是因为用户在服务器上不存在
No such host:通常是DNS配置错误
No such file or directory:通常是访问的目录不存在
NFS server is not responding:通常是NFS已经超过负载或者NFS已经停止工作
Stale file handle:在NFS客户端关闭之前客户端访问的文件被删除
Fake hostname:Forward和reverse的DNS记录在NFS客户端下不存在
2、挂载nfs文件系统失败的原因
(1)主机和网络不通:看看网线连接、主机和开发板ip是否在同一网段、防火墙有没有关闭等。不仅vmware中linux的防火墙要关闭,vmware外xp的防火墙也要关闭,我就因为xp中的eset杀毒软件的防火墙使nfs无法挂载(可以挂本机,无法挂远程),,折腾了一天,后来才发现是xp中的防火墙搞的鬼!
(2)使用的mount命令不正确。可以参照上面的例子改一下;或者man nfs查阅一下nfs的man文档,里面有nfs中mount的使用介绍和选项解释
(3)nfs配置文件/etc/exports配置不正确。可以参照上面的例子改一下;或者man exports查阅一下/etc/exports的man文档
(4)必要时重新启动NFS和portmap服务。
sudo service portmap restart
sudo service nfs-kernel-server restart
(5)内核不支持NFS和RPC服务(可能需要重新配置、编译、烧写内核)。
普通的内核应有的选项为CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。
做对的事情比把事情做对重要。