NFS用于Linux主机访问网络中其他Linux主机上的共享资源。
NFS的原理是在客户端上通过网络将远程主机共享文件系统以挂载(Mount)的方式加入本机的文件系统,之后的操作就如同在本机上一样。
NFS服务器(宿主机)
开发板(目标机)
1.安装NFS
Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
$ sudo apt-get install nfs-kernel-server
2.建立一个nfs服务的专有文件夹
$ mkdir -p /home/linux/nfs_service
3.打开portmap服务
输入service portmap start命令报错:
$ exportfs: Failed to stat /home/linux/nfs_exports: No such file or directory
这是因为新版本中portmap已经被rpcbind取代,输入service rpcbind start就好了。
4.修改/etc/exports文件
在最后加上共享的文件夹路径
home/linux/nfs_service *(rw,sync,no_root_squash,no_subtree_check)
重启NFS服务:
sudo /etc/init.d/nfs-kernel-server restart
输入exportfs -a命令更新nfs服务,发现报错:
$ exportfs: Failed to stat /home/linux/nfs_exports: No such file or directory
查找原因:把nfs_service错写成了nfs_exports
[exportfs 命令用法]
-a 全部挂载或卸载
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 在屏幕输出详细信息
[showmount 命令用法]
-a 显示已经于客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
5.用ifconfig命令查看本机ip地址
6.本地测试,将主机的共享目录mount到另外一个目录下:(要在root用户模式下)
输入mount 192.168.216.188:/linux/nfs_service /mnt报错:
$ mount.nfs: access denied by server while mounting 192.168.216.188:/linux/nfs_service
查找原因:路径错误,应为/home/linux/nfs_service
输入mount -t nfs localhost:/home/linux/nfs_service /mnt无误,开启nfs共享。修改/home/linux/nfs_service中的文件,可在/mnt中同步察看,反之亦然。
7.设置sysv-rc-conf管理ubuntu server开机启动服务
安装服务程序:sudo apt-get install sysv-rc-conf
安装完成后,直接运行$ sudo sysv-rc-conf命令即可打开该管理软件
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择, “X”表示开启该服务。 用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
在sysv-rc-conf中找到nfs-kernel,用空格键选择。