前言
网络文件系统(英语:Network File System,缩写 NFS)是一种分布式文件系统,力求客户端主机可以访问服务器端文件,并且其过程与访问本地存储时一样,它由SUN公司(已被甲骨文公司收购)开发,于1984年发布, 基于 Open Network Computing Remote Procedure Call (ONC RPC) .
简言之, 开启了NFS服务后,客户端访问服务器共享的文件时如同访问本地存储器, 对于上层应用没有差别, 嵌入式开发应用场景:
- 在NFS服务器上开发,客户端(开发板)通过NFS访问并直接运行
- 把NFS作为根文件系统来启动
服务器配置
步骤如下:
- 服务器需要先安装NFS服务:
sudo apt-get install nfs-kernel-server rpcbind
- 我在服务器(主机)的home目录下创建了linux/nfs文件夹, 要把这个文件夹共享出去, 路径为
/home/karoto/linux/nfs
- 配置文件 /etc/exports:
sudo vim /etc/exports
, 在文件的最后添加:/home/karoto/linux/nfs *(rw,sync,no_root_squash)
, 如图所示, 保存退出:
- 重启NFS服务:
sudo /etc/init.d/nfs-kernel-server restart
- 检验, 用
showmount -e
命令
创建一个测试文件sudo vim 1.sh
, 填入:
#!/bin/bash
echo "hello, world!\r\n"
保存退出, 加权限sudo chmod 777 1.sh
, 执行./1.sh
, 没有问题:
嵌入式设备挂载
这里的场景是同一个局域网, ifconfig
查看 服务器IP地址 为192.168.3.141
, 要把服务器的/home/karoto/linux/nfs
目录挂载到嵌入式设备的/home/root/nfs_share
:
root@mys6ull14x14:~# mount -o vers=4 192.168.3.141:/home/karoto/linux/nfs /home/root/nfs_share
没有错误提示应该就挂载成功了, cd /home/root/nfs_share
, 然后ls
, 可以看到服务器中创建的1.sh
文件:
直接./1.sh
执行, 没有问题:
需要注意的是:
- 重启后需要重新挂载.
- 如果需要卸载, 先切换出挂载目录, 再卸载:
cd ~
umount /home/root/nfs_share/
微信公众号
欢迎扫描关注我的微信公众号, 及时获取最新文章: