NFS(Network FileSystem),即网络文件系统, 其用于在不同机器、不同操作系统之间通过网络互相分享各自的文件,它的通讯协议设计与主机及操作系统无关。NFS服务器共享文件或目录记录在/etc/exports文件中,挂载成功之后,操作远程文件和操作本地文件没有什么不同。
下面来介绍如何进行NFS的安装及挂载。
首先,需要使用下面的命令来安装NFS服务器。

sudo apt-get install nfs-kernel-server

新建一个目录用来作为NFS的工作目录,该目录挂载成功后就可以在另一端进行文件的读写操作,比如在home下新建一个work文件夹,然后使用下面的命令以图形化的方式打开exports文件进行编辑。

sudo gedit /etc/exports

在文件的末尾添加下面的内容。

/home/path *(rw,sync,no_root_squash,no_subtree_check)

一定要注意,/home之后的path就是你新建的NFS共享目录,可以通过pwd命令获得。

nfs挂载带锁 nfs挂载需要密码吗_重启


添加成功后的exports文件如下图所示。

nfs挂载带锁 nfs挂载需要密码吗_linux_02


以上工作完成后,接着在命令行执行下面两条命令重启相关服务。

sudo systemctl restart rpcbind
sudo systemctl restart nfs-kernel-server

这两个文件在/etc/init.d文件夹下,上面重启的命令也可以通过下面的两条命令来进行替换。

sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart

/etc/init.d文件夹下的内容如下图所示。

nfs挂载带锁 nfs挂载需要密码吗_nfs挂载带锁_03


在执行完重启语句后,也可以通过下面的命令查看状态。

sudo systemctl status rpcbind
sudo systemctl status nfs-kernel-server

如下图所示就表示重启成功了。

nfs挂载带锁 nfs挂载需要密码吗_开发板_04


使用下面的命令就可以将work目录挂载到/mnt目录下了。

sudo mount -t nfs127.0.0.1:/home/path /mnt
mount

设置前面的两项服务为开机启动,命令如下。

sudo systemctl enable rpcbind
sudo systemctl enable nfs-kernel-server

连接开发板后,在ubuntu中设置主机的ip地址为192.168.0.3(可以自己设置,这里仅是举例),设置完成后再给开发板通过下面的命令设置一个ip地址,确保两个地址在同一个网段内。

ifconfig eth0 192.168.0.2

设置完成后的结果如下图所示。

nfs挂载带锁 nfs挂载需要密码吗_重启_05


然后在开发板和主机之间互ping一下,如果双方都能ping通就没问题了,接着就可以使用下面的命令将Ubuntu中创建的work文件夹挂载到开发板上的/nfs目录下了。

mount -t nfs -o nolock 192.168.0.3:/home/path /nfs

在work文件夹下创建一个名为test的文件夹,这时后在开发板上也能同步的显示该文件夹。

nfs挂载带锁 nfs挂载需要密码吗_重启_06


这就说明NFS挂载成功了,之后就可以通过这个共享的文件夹进行相应的交互操作了。

卸载使用下面的命令即可。

umount /path
umount -l /path

卸载的时候需要退出当前挂载的目录,不然系统会提示device is busy,退出当前目录后执行该命令就卸载成功了。

nfs挂载带锁 nfs挂载需要密码吗_开发板_07


参考视频:
NFS的安装