嵌入式Linux NFS

前言

在这里插入图片描述

网络文件系统(英语: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/

微信公众号

欢迎扫描关注我的微信公众号, 及时获取最新文章:
在这里插入图片描述

发布了203 篇原创文章 · 获赞 105 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/weifengdq/article/details/104636334