CentOS 7.3 配置NFS

背景

在嵌入式开发中,通常需要在宿主机中进行交叉编译,得到可以在目标设备中运行的执行文件,最终将运行文件放置进目标设备中,完成部署。



一般的拓扑关系如上图,三者都连接在一个网络中:

  • Server,用于编译,一般运行Linux系统;
  • PC,使用串口连接嵌入式设备,方便调试,一般运行Windows系统;
  • Embedded Device,目标设备;

如果在Server上编译生成了文件,要通过PC再部署到嵌入式设备上,那就会显得很麻烦了,那么有没有更好的方式呢?NFS的出现,便提供了一方便捷的方法,让嵌入式设备能访问服务器中的文件。

NFS介绍

NFSNetwork File System的缩写,即网络文件系统,一种使用于分散式文件协定,功能是通过网络让不同的机器、不同的操作系统能够共享个人数据。

NFS在文件传输过程中依赖于RPC协议(Remote Procedure Call,远程过程调用,是使客户端能够执行其他系统中程序的一种机制),NFS本身没有提供信息传输的协议和功能,可以认为它是使用RPC协议的一个程序。

NFS服务器、RPC、客户端三者交互的关系如下图:

NFS配置

  1. 安装nfs-utilsrpcbind
  • sudo yum y install nfsutils rpcbind
  1. 编辑/etc/exports配置文件,该文件默认是空的:
  • sudo vim /etc/exports
    添加以下内容:/home/share *(rw,sync,no_root_squash)
    第一部分:/home/share代表共享目录
    第二部分:允许访问的主机,可以是IP或者IP段,*表示通配符
    第三部分:括号中的部分,rw:可读可写;sync:内存中数据写入磁盘;no_root_squash:NFS客户端连接服务器时如果使用的是root权限,那么对服务器分享的目录来说,也拥有root权限,此项不安全。括号中逗号后边不需要空格,否则会报错:exportfs: /etc/exports:1: syntax error: bad option list
  1. 使配置文件生效
  • sudo exportfs -r
  1. 启动rpcbingnfs服务
  • sudo service rpcbind start
  • sudo service nfs start
    如果需要查看一下是否已经启动nfs服务,可以使用:systemctl list-unit-files | grep nfs
  1. 启动nfs
  • sudo systemctl start nfs

客户端挂载

通过Telnet进入客户端后,输入以下命令,即可完成挂载:

  • mount -t nfs -o nolock 10.31.32.39:/home/share /mnt
    其中10.31.32.39为服务器的IP地址,完成挂载后,进入/mnt目录,就像进入服务器的/home/share目录一样,从此为你打开了一扇便捷大门。

你可能感兴趣的:(CentOS 7.3 配置NFS)