环境:虚拟机,Ubuntu
一、什么是NFS服务器?
NFS(Network File System)是指网络文件系统,它是基于UDP/IP协议的应用,NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。
在开发过程用我们会遇到开发板空间不足的情况,搭建NFS服务器,让开发板能够直接访问服务器共享文件夹中的文件,不仅提供了开发效率,而且不用担心开发板内存不足。
二、NFS服务器的搭建
1. 下载NFS服务器
sudo apt-get install nfs-common nfs-kernel-server portmap
下载成功!
图1.1 NFS服务器下载成功
遇到的问题及解决方法
图1.2 NFS服务器下载过程遇到的问题
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
2. 配置NFS服务器
(1)文本编辑exports文件
sudo gedit /etc/exports
(2)在文件末尾添加:
/home/gec/nfs *(rw,sync,no_subtree_check)
--> /home/gec/nfs :要共享的目录
--> * :允许所有的网段访问
--> rw :读写权限
--> sync :资料同步写入内存和硬盘
图2.1 编辑exports文本文件
3. 创建并设置文件权限
mkdir /home/gec/nfs //在家目录创建nfs文件夹
chmod 777 /home/gec/nfs //网络上共享的文件夹,这个文件必须要有权限
4. 重新启动NFS服务器
sudo /etc/init.d/nfs-kernel-server restart //重启nfs服务器
sudo /etc/init.d/nfs-kernel-server status //查看nfs是否开启
sudo netstat -a | grep nfs //或用这个查看nfs是否开启、存在
NFS服务器重启成功!
图4.1 NFS服务器成功重启
遇到的问题及解决方法
图4.2 NFS服务器重启出现的问题
笔者尝试在WSL(windows的子系统)上安装NFS服务器,并进行重启,结果出现了上述问题"no support in current kernel"(当前内核不支持),原因是NFS服务器是基于linux内核的,WSL只是windows系统模拟的linux系统,实际上还是windows的子进程。故要使用NFS服务器,必须要在纯linux系统下进行。
解决方法:在虚拟机上运行linux的镜像文件,使用正宗的linux系统来搭建NFS服务器。
5. 挂载NFS文件夹
mount -o nolock 服务器的ip地址:设置服务器的挂载目录 挂载到本地的目录
例子:mount -o nolock 192.168.1.4:/home/gec/nfs /tmp
//将ip地址位192.168.1.4服务器的"/home/gec/nfs"路径下的nfs文件,挂载在到开发板的tmp文件
图5.1 成功挂载NFS文件夹
[温馨提示]
(1)该条指令在开发板的终端执行。
(2)执行该条指令前先确保开发板和服务器(ubuntu)之间能够ping通。
遇到的问题及解决方法
图5.1 挂在服务器文件夹失败
原因是没有指定正确的服务器共享的目录,即要与之前在exports文本文件的最后一行指定的路径一致
6. 卸载挂载的模流
umount 需要卸载的目录(你挂载的目录)
例子:umount /tmp
遇到的问题及解决方法
图6.1 卸载目录时遇到的问题
原因是当前路径处在/nfs下,退出当前目录,回到根目录执行即可。