搭建NFS环境
1 查看主机和开发板是否在同一网段
先查看开发主机和开发板的ip地址,是否在同一网段。
1.1 使用命令查看IP地址
ifconfig注意:若在开发主机上使用 ifconfig 提示找不到命令,请使用如下命令进行安装:
sudo apt install net-tools开发板和开发主机的 ip 地址和子网掩码,如下图:


根据开发主机的 ip 和子网掩码,我们可以判断开发主板处于 192.168.3.* 的网段中,我们只要
保证开发主机网络也在同一个局域网网段中,就能让它们通信。
1.2 互 ping 测试
连接好网络后在开发主机和开发板之间进行互 ping 测试,以保证网络互通。 ping 命令格式为:
ping [目标主机名或目标 ip 地址]
这里以 ping IP地址为例
1.2.1 开发主机 ping 开发板

能够成功,ping通。
1.2.2 开发板 ping 开发主机

能够成功,ping通。
2 在开发主机安装 NFS
2.1 安装 NFS 服务
Ubuntu 系统默认没有安装 NFS 服务,需要使用如下命令安装 NFS 服务端软件:
sudo apt install nfs-kernel-server
2.2 查看用户 id
在配置 NFS 时需要使用到用户 uid 和组 gid,可使用 id 命令查看,在开发主机上的终端输入如下命令:
id具体见下图。

上图使用 id 命令用户 id 和组 id
从上图可知开发主机的用户 uid 和组 gid 均为 1000,在下面的配置文件中将会使用到。
2.3 配置 NFS
安装 NFS 服务后,会新增一个/etc/exports 文件(即/etc 目录下名字为 exports 的文件), NFS 服务
根据它的配置来运行,其默认内容可通过命令 cat /etc/exports 查看。
使用 vim(或者gedit) 打开/etc/exports 文件命令如下:
sudo vim /etc/exports# 把以下内容添加至/etc/exports 文件末尾,注意以下内容处于同一行
# 以下内容的 IP 地址和 uid, gid 需要根据自己的环境进行修改
/home/workdir 192.168.0.0/24(rw,sync,all_squash,anonuid=1000,
anongid=1000,no_subtree_check)
注意具体的配置需要根据自己的实验环境进行配置,请理解如下说明根据自己的实验环境进行
修改:
/home/workdir:要共享的开发主机目录,注意使用空格与后面的配置隔开。
192.168.0.0/24: 配 置 谁 可 以 访 问, 其 中 的/24 是 掩 码, 此 处 表 示 24 个 1, 即
11111111.11111111.11111111.00000000,即掩码是 255.255.255.0。结合前面 192.168.0.0 表
示此处配置 IP 为 192.168.0.* 的主机均可以访问该目录,即局域网上的所有主机。
不能直接用星号表示,如欲配置 192.168.1.* 的局域网下所有机器都可以访问,则配置为 192.168.1.0/24。
rw: 表示客户机的权限, rw 表示可读写,具体的权限还受文件系统的 rwx 及用户身份影响。
sync:资料同步写入到内存与硬盘中。
annotallow=1000:将客户机上的用户映射成指定的本地用户 ID 的用户,此处 1000 是开发主机
cwz 用户的 uid,此处请根据具体的主机用户 uid 进行配置。
annotallow=1000:将客户机上的用户映射成属于指定的本地用户组 ID,此处 1000是开发主机
cwz 用户组 gid,此处请根据具体的主机用户组 gid 进行配置。
no_subtree_check:不检查子目录权限,默认配置。
2.4 创建共享目录
为 了 确 保 共 享 的 配 置 有 效, 还 需 要 创 建 共 享 的 目 录, 在 本 例 子 中 共 享 的 目 录
为/home/workdir。
mkdir /home/workdir2.5 更新 exports 配置
修改完/etc/exports 文件并保存后,可使用 exportfs 命令更新配置:
sudo exportfs -arv该命令的参数说明如下:
-a:全部 mount 或 umount 文件/etc/exports 中的内容。
-r:重新 mount 文件/etc/exports 中的共享内容。
-u: umount 目录。
-v:在 exportfs 的时候,将详细的信息输出到屏幕上。
若配置正常,该命令执行后会列出共享的目录项,本示例的执行结果见下图。

2.6 查看 NFS 共享情况
使用 以下可查看当前 NFS 服务器的加载情况
showmount -e具体见下图。

3 安装NFS客户端
开发主机开启 NFS 服务后,我们还需要在开发板安装 NFS 客户端,来让开发板使用 NFS 服务。
3.1 安装 NFS 客户端命令:
sudo apt install nfs-common -y3.2 查看 NFS 服务器共享目录
在开发板上执行“showmount -e +“NFS 服务器 IP” 命令。
showmount -e 192.168.3.90
3.2 临时挂载 NFS 文件系统
使用 mount 命令挂载 NFS 服务器的共享目录到开发板/mnt 目录下:
注意: 需要把下面的 192.168.3.90 设置为用户实际网络环境下的 NFS 服务器 IP
sudo mount -t nfs 192.168.3.90:/home/workdir /mnt以上命令使用的各个参数如下:
-t nfs:指定挂载的文件系统格式为 nfs。
192.168.3.90:指定 NFS 服务器的 IP 地址。
/home/workdir:指定 NFS 服务器的共享目录。
/mnt:本地挂载目录,即要把 NFS 服务器的共享目录映射到开发板的/mnt 目录下。
若挂载成功,终端不会有输出。
如下图:

使用这种方式挂载目录只是临时的,开发板在重启后需要重新挂载该 NFS 目录才能访问。
3.3 测试 NFS 共享目录
挂载成功后,在 NFS 服务器的共享目录下,输入“sudo touch hello.txt”命令,则在共享目
录下创建一个 hello.txt 文件,如下图:

进入开发板的/mnt 目录下,可以查看到 NFS 服务器的共享目录中的 hello.txt 文件。如下图:

3.4 取消挂载
当客户机在网络上无法找到 NFS 共享的目录时,如开发主机关机时,在 NFS 的客户机的终端
常常会输出一些提示,或在使用 ls 命令查看共享目录会导致长时间等待,这时可以对目录使用
umount 命令取消挂载,示例如下:
sudo umount /mnt使用该命令时以要取消挂载的目录作为参数即可,没有输出表示执行正常。如果在当前挂载的目
录进行 umount 操作,会提示“device is busy”。建议取消挂载时,先切换到家目录“~”,再进行
umount 操作。
示,或在使用 ls 命令查看共享目录会导致长时间等待,这时可以对目录使用
umount 命令取消挂载,示例如下:
sudo umount /mnt使用该命令时以要取消挂载的目录作为参数即可,没有输出表示执行正常。如果在当前挂载的目
录进行 umount 操作,会提示“device is busy”。建议取消挂载时,先切换到家目录“~”,再进行
umount 操作。
















