第一步:安装NFS服务
sudo apt-get install nfs-kernel-server portmap
第二步:增加NFS配置文件
sudo vim /etc/exports
在vim终端中添加如下信息:
/home/china/nfsroot *(rw,sync,no_root_squash)
上面的路径解释如下图,其中nfsroot文件夹为NFS服务所用的共享文件夹
第三步:重启NFS服务
sudo /etc/init.d/nfs-kernel-server restart
每修改一次NFS的配置信息时,都需要执行命令重启一次NFS服务
DONE!!!
验证一:linux自己挂载自己
首先用以下命令查看挂载文件夹路径信息
showmount -e
然后执行以下命令挂载改文件夹:
sudo mount -t nfs 192.168.1.218:/home/china/nfsroot /mnt/nfs/
其中,以上的IP地址为我Ubuntu的IP地址,你可以通过ipconfig
命令查看自己的,/mnt/nfs/
中的nfs文件夹是我自己在Ubuntu系统根目录的/mnt/下自己建立的。
执行以下命令可以看到是否挂载成功
ls /mnt/nfs/
可以看到/home/china/nfsroot/
目标文件夹里面的信息已经挂载到了/mnt/nfs/
文件夹下面
执行以下命令可以完成共享文件夹的卸载工作
sudo umount /mnt/nfs
验证二:arm开发板挂载linux系统里的文件夹
进入arm开发板(笔者的是JZ2440V3)
在开发板的终端里执行以下命令
mount -t nfs -o nolock 192.168.1.218:/home/china/nfsroot /mnt/nfs/
这个/mnt/nfs/
里的nfs文件夹是我在开发板上建立的
在开发板的终端里执行命令
ls /mnt/nfs/
正常挂载
卸载挂载的文件夹命令为
umount /mnt/nfs/
验证卸载成功。
先不要高兴的太早了,在开发板上这样的挂载方式是不能拷贝Linux系统上的大文件的,会出现nfs: server 192.168.1.218 not responding, still trying
错误提示的
接下来这个图片是我再次测试后的图片,我在Linux的NFS服务挂载文件夹下来增加了测试文件"led_test",文件大小如图所示。
不过能挂载成功,说明开发板与主机相连,不存在网络拥塞问题,出现该问题的原因只能是网卡丢包,而导致网卡丢包的原因有软件配置原因和硬件原因(包括接线),要是硬件原因那就要好好排查了,不过大多数情况都是软件配置问题。
换用以下命令进行NFS服务挂载
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.218:/home/china/nfsroot /mnt/nfs/
拷贝大文件测试:
SUCCESS
P.S.
每修改一次NFS的配置信息时,都需要执行命令重启一次NFS服务sudo /etc/init.d/nfs-kernel-server restart
若执行时遇到错误,把问题复制到baidu或者google里,也许就会解决了