目录

  • 一、概述
  • 二、在Ubuntu搭建nfs服务器
  • 👉2.1 安装`nfs`服务器
  • 👉2.2 创建`nfs`服务器共享目录
  • 👉2.3 修改`nfs`服务器配置文件
  • 👉2.4 重启`nfs`服务器
  • 三、客户端访问`nfs`服务器共享目录
  • 🎈3.1 在`nfs`客户端挂载服务器共享目录
  • 🎈3.2 在`nfs`客户端卸载服务器共享目录



一、概述

nfs全称是network files system(网络文件系统),是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

正是因为nfs文件系统可以使客户端像访问本地文件一样地访问nfs服务器的文件,所以在嵌入式设备开发阶段常常用来挂载到开发板,执行正在开发的程序,这样可以避免频繁地将程序烧录到嵌入式开发板,极大地节省了开发时间。


二、在Ubuntu搭建nfs服务器

👉2.1 安装nfs服务器

在Ubuntu安装nfs服务器比较简单,只需要在命令行执行下面这个命令即可:

sudo apt install nfs-kernel-server

👉2.2 创建nfs服务器共享目录

创建一个目录用于nfs服务器将文件共享给客户端,这个目录将会写入到nfs配置文件中:

sudo mkdir /nfsroot

👉2.3 修改nfs服务器配置文件

打开nfs服务器配置文件/etc/exports,指定nfs服务器共享目录及其属性,内容如下:

/nfsroot  *(rw,sync,no_root_squash)

解析:
/nfsroot:指定/nfsroot为nfs服务器的共享目录
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限
no_subtree_check:不检查父目录的权限

👉2.4 重启nfs服务器

执行下面两个命令其中一个可以重启nfs服务器:

sudo service nfs-kernel-server restart
或者
sudo /etc/init.d/nfs-kernel-server restart

到此,Ubuntu安装nfs服务器的过程就完成了,可以执行下面这个命令查看nfs服务器的共享目录:

showmount -e localhost

三、客户端访问nfs服务器共享目录

这一小节使用nfs客户端是嵌入式开发板系统自带的,一般嵌入式开发板移植了Linux系统后,都自带有nfs客户端,如果确实需要在Ubuntu安装,可以执行下面的命令安装:

sudo apt install nfs-common

🎈3.1 在nfs客户端挂载服务器共享目录

下面是在客户端挂载服务器共享目录的命令,在嵌入式开发板或者Ubuntu的nfs客户端挂载都可以使用,需要将192.168.2.183换成自己的nfs服务器ip:

mount -t nfs -o nolock 192.168.2.183:/nfsroot /nfsroot

-t:挂载的文件系统类型
-o nolock:不要文件锁
192.168.xxx.xxx:/nfsroot:nfs服务器ip:服务器共享目录
nfsroot:客户端已存在的目录

需要注意的是,在嵌入式开发板必须加上-o nolock,不然会出现下面错误,因为 nfs mount 默认选项包括文件锁,依赖于portmap提供的动态端口分配功能。

Windows10下NFS服务器下载 windows2012安装nfs客户端_ubuntu

🎈3.2 在nfs客户端卸载服务器共享目录

nfs客户端执行下面命令,可以查询挂载的·nfs·服务器目录

mount

Windows10下NFS服务器下载 windows2012安装nfs客户端_ubuntu_02


nfs客户端执行下面命令,可以卸载的·nfs·服务器目录

umount /nfsroot

至此,在客户端挂载、卸载服务器就演示完成。