1、首先保持开发板和主机能够正常通信,也就是能够ping通;(Linux 端设置桥接模式,自动分配IP;配置开发板IP ifconfig eth0 172.16.31.172 up)
2、安装NFS服务器:
#sudo apt-get install nfs-kernel-server nfs-common portmap
3、配置/etc/exports文件:
增加 /home/zeng/tftpd/nfs 172.16.31.*(rw,sync)
这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:
[共享的目录] [主机名或IP(参数,参数)]
其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。
当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
下面是一些NFS共享的常用参数:
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
4、启动NFS服务
1)、启动portmap: sudo service portmap start
2)、启动nfs:sudo service nfs-kernel-server start
3)、
启动服务
# /etc/init.d/nfs-kernel-server start
停止服务
# /etc/init.d/nfs-kernel-server stop
重启
# /etc/init.d/nfs-kernel-server restart
5、挂载共享目录
#mount -t nfs -o nolock 172.16.31.165:/home/tftpd/nfs /mnt/nfs
-o nolock:表示不锁;
172.16.31.165:/home/tftpd/nfs:表示linux共享目录;
/mnt/nfs :表示开发板共享目录;
6、在客户机上查看NFS的资源共享情况:
#showmount -e 172.16.31.172
遇到问题:
挂载的时候出现:mount:mounting /home/zeng/tftpd/nfs on /mnt/nfs failed:commection refused!
确保配置路径正确,同时能够正常ping通,另外尝试重启服务器;