专栏地址:嵌入式开发
专栏文章:
【01】windows安装VMware最新版本(VMware Workstation 17.0 Pro)详细教程
【02】VMware17虚拟机安装Ubuntu最新版本(Ubuntu22.04LTS)详细步骤
【03】Ubuntu22.04 添加samba,并在windows访问 的详细教程
【04】Vmware Pro 17 设置共享文件夹
【05】Ubuntu最新版本(Ubuntu22.04LTS)安装Tftp服务及其使用教程
【06】Windows下的Tftpd32(Tftpd64)软件下载和使用教程-集成了Tftp服务器、客户端
【07】Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器及使用教程
【08】Windows下SecureCRT的下载、安装、使用、配置【Telnet/ssh/Serial】
【09】Xshell的下载、使用、配置【ssh、telnet、串口】
目录
一、概述
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提供的动态端口分配功能。
🎈3.2 在nfs
客户端卸载服务器共享目录
在nfs
客户端执行下面命令,可以查询挂载的·nfs·服务器目录
mount
在nfs
客户端执行下面命令,可以卸载的·nfs·服务器目录
umount /nfsroot
至此,在客户端挂载、卸载服务器就演示完成。
如果文章有用的话,麻烦点赞👍、收藏⭐一波!!!