NFS用于Linux主机访问网络中其他Linux主机上的共享资源。NFS的原理是在客户端上通过网络将远程主机共享文件系统以挂载(Mount)的方式加入本机的文件系统,之后的操作就如同在本机上一样。
1.硬件环境:
主机:Ubuntu(192.168.1.103) ,开发板:tiny6410(192.168.1.139),未使用虚拟机,主机与开发板通过网线链接
2.主机侧(nfs 服务器)设置:
1)建立用于挂载的目录 /home/jet/nfs
2)安装NFS服务器端和客户端:sudo apt-get install nfs-kernel-server nfs-common
3)配置挂载目录和权限:
(1)vim /etc/exports
(2)添加: /home/jet/nfs *(rw,sync,no_root_squash)。
其中,home/jet/nfs 是共享目录,*表示所有客户机都可以挂载此目录,rw表示挂载此目录的客户机对此文件可读写的权力,no_root_qtopia表示允许挂载此目录的客户机拥有root身份。
(3)更新 /etc/exports 文件:sudo exportfs-r
-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容
4)重启NFS服务:sudo /etc/init.d/nfs-kernel-server restart
5)测试主机侧NFS功能:
sudo mount -t nfs localhost:/home/jet/nfs /home/jet/Share,此时可是在/home/jet/Share中访问localhost:/home/jet/nfs中的内容。
3. 开发板侧配置
1)设置ip地址:ifconfig eth0 192.168.1.139 netmask 255.255.255.0 up,设置之后通过ping测试开发板与主机链接是否正常。
2)功过NFS挂载:busybox mount -t nfs -o nolock 192.168.1.103:/home/jet/nfs /mnt,如果挂载成功,可以在/mnt下看到主机对应文件夹中的内容。
可能会出现以下错误提示:
(1)mount: RPC: Unable to send; errno = Network is unreachable ------开发板未设置ip
(2)mount: RPC: Unable to receive; errno = Connection refused ------主机未设置ip
(3)mount: 192.168.1.103:/home/jet/nfsssss failed, reason given by server: Permission denied ------挂载的地址不在主机/etc/exports中