1. NFS简介
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。(引自百度百科)
最重要是:PC机与嵌入式开发板的网段得在同一个频段,我PC机网段是192.168.1.5,桥接模式后我配置虚拟机(服务端)静态地址为192.168.1.100,使用ifconfig配置嵌入式开发板静态地址为192.168.1.101,ping通后可以nfs挂载。
2. 配置UBUNTU虚拟机
如果开发使用的是虚拟机的话这块需要配置虚拟机的网络适配器为桥接模式,这样虚拟机才能跟主机在一个网段,跟你的目标板也才能在同一个网段
ifconfig eth0 192.168.1.101 broadcast 192.168.1.1 netmask 255.255.255.0
从嵌入式板子ping一下服务端虚拟机,ping通才能挂载~~
3. 服务端安装
3.1 使用命令安装
直接使用apt install在线安装即可
sudo apt-get install nfs-kernel-server
3.2 配置
配置共享路径,修改 /etc/export 配置文件即可
sudo vim /etc/exports
在文件末添加如下内容:
/home/cys/nfs *(rw,sync,no_root_squash,insecure)
/home/cys/UP-Magic210 *(rw,sync,no_root_squash,insecure) 我们的
- /home/guomq/nfs 代表的是共享的目录
-
- 代表是允许所有的网络访问
- ro 该主机对该共享目录有只读权限
- rw 该主机对该共享目录有读写权限
- root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
- no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
- all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户- - anonuid 将客户机上的用户映射成指定的本地用户ID的用户
- anongid 将客户机上的用户映射成属于指定的本地用户组ID
- sync 资料同步写入到内存与硬盘中
- async 资料会先暂存于内存中,而非直接写入硬盘insecure 允许从这台机器过来的非授权访问
- 允许客户端从大于1024的tcp/ip端口连接服务器
3.3 重启NFS
/etc/init.d/rpcbind restart
/etc/init.d/nfs-kernel-server restart
3.4 测试NFS服务
showmount -e 127.0.0.1
出现如下结果表示配置成功
4. 挂载文件系统到开发板上
4.1 查看开发板是否支持NFS
cat /proc/filesystems
4.2 挂载
mount -t nfs 192.168.1.100:/home/cys/UP-Magic210 /mnt/nfs -o nolock
- 192.168.1.100 是服务端的地址
- /home/cys/UP-Magic210 是我们配置的服务端的 NFS 目录(没有的话需要自己创建)
- /mnt/nfs 是目标目录
挂载完后我们在开发板上执行mount命令就可以看到挂载的信息