NFS服务软件安装

NFS服务软件安装#

NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。

嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。

安装NFS服务#

  1. 通过下面的命令安装NFS服务器

sudo apt-get install nfs-kernel-server

../_images/image1166.png
  1. 新建一个work目录做为NFS的一个工作目录,以后我们可以把交叉编译的程序放在这个目录里,开发板可以很方便共享到这个目录里的文件。

../_images/image2145.png
  1. 使用下面命令编辑/etc/exports文件,配置NFS服务路径

sudo gedit /etc/exports

../_images/image3123.png
  1. 在尾部添加/home/alinx/work *(rw,sync,no_root_squash,no_subtree_check) ,配置/home/alinx/work目录为NFS的一个工作目录。

../_images/image479.png
  1. 执行下面命令重启rpcbind 服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind 设定

sudo /etc/init.d/rpcbind restart

  1. 执行下面命令重启nfs服务

sudo /etc/init.d/nfs-kernel-server restart

测试NFS#

  1. 通过下面命令挂载NFS,在本机将NFS工作路径挂载在/mnt目录

sudo mount -t nfs 127.0.0.1:/home/alinx/work /mnt

  1. 进入/mnt,新建一个test目录测试一下,可以在/home/alinx/work目录同步看到test文件夹

cd /mnt

mkdir test

常见问题#

NFS无法挂载#

首先确认虚拟机和开发板是不是一个网段?

使用ifconfig命令查看虚拟机IP地址,下图的例子中是192.168.1.55,属于192.168.1网段,由于开发环境中有DHCP服务器存在,所以虚拟机的IP地址是自动分配的,因为网络环境不同,本教程不讲解如何配置网络,如果不会配置网络,咨询自己网络管理员。

../_images/image567.png

在串口终端中使用ifconfig命令查看开发板IP地址,下图的例子中是192.168.1.46,属于192.168.1网段,如果没有IP,或和开发板IP不同网段,请联系网络管理员。

../_images/image660.png

在串口终端中ping虚拟机,例程中ping 192.168.1.55,这是因为虚拟机IP是192.168.1.55,能够ping通才能正常挂载NFS

../_images/image757.png