困扰了我好久的搭建NFS环境现在成功解决了,现在的心情无比的畅快。写下这篇博文希望能帮助到他人,而且这还是我在CSDN的第一篇博文。#^_^#
首先第一步:安装nfs所需文件:
sudo apt-get install nfs-kernel-server
sudo apt-get install nfs-common
sudo apt-get install portmap
若失败,请sudo apt-get update一下,还有检查网络设置。
第二步:当然是开发板、主机、虚拟机的互相ping通。注意,是互相,单向ping通的不算,这部分最烦。
将主机、开发板、虚拟机设置在同一网段:
主机:192.168.0.80
虚拟机Ubuntu:
eth0 inet 地址:192.168.0.81 掩码:255.255.255.0
建议新建一个连接,手动设置静态IP。
开发板:
eth0 inet addr:192.168.0.82 Mask:255.255.255.0
(开发板可进入uboot里->printenv->setenv ipaddr 192.168.0.*->saveenv,之后在ifconfig eth0 192.168.0.82)
在VM设置里将网络改成桥接并将下边的方框勾上。虚拟机->设置->网络适配器 改为桥接并选上“复制…..”(不能用NAT,虚拟机要上网就要改过来)
在VM的虚拟网络编辑器里将VMnet0选为桥接,并选择你的有线网卡(避免有时选择为无线网卡)。
第三步: 配置挂载目录和权限
sudo vim /etc/exports
我的配置: /home/wing/nfs_share *(rw,sync,no_root_squash)
*表示所有的IP都可以访问.
之后执行 sudo exportfs -r 更新文件第四步: 重启 NFS 服务
sudo/etc/init.d/portmap restart
sudo/etc/init.d/nfs-kernel-server restart
(若不可以用,则重启一下)
第五步: 本机回环测试:
sudo mount 192.168.0.81:/home/wing/nfs_share /mnt
ls /mnt
若在本虚拟机/mnt能看到/home/wing/ nfs_share 里的文件,表明挂载成功。第六步: 解除挂载
sudo umount /mnt
第七步: 在开发板测试
mount -t nfs -o nolock 192.168.0.81:/home/wing/nfs_share /mnt
ls /mnt若在开发板/mnt能看到/home/wing/nfs_share 里的文件,表明挂载成功。
但是在使用时,传一个不大的文件(4M)要很久,而且出现了错误:
nfs:server * is not responding,still trying
经过了Google后得到的答案是:数据量太大,网卡丢包严重。
解决方法:在挂载时使用TCP协议传输:
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.0.81:/home/wing/nfs_share /mnt
问题解决。
此方法在Ubuntu 12.04 、Redhat 5、fedora 9下亲测通过。
当然,在除Ubuntu外,命令把sudo去掉,而且nfs所需文件不同。
希望能帮到你。
END