嵌入式 Linux 入门 环境篇(五、NFS 文件共享)_嵌入式linux nfs

DDR 上。

二、NFS、TFTP、FTP、SSH

对于刚接触嵌入式 Linux 开发的新朋友来说,NFS、TFTP、FTP、SSH 这些概念往往会傻傻分不清楚,他们都与网络有关,但是用途又各有不同,而且往往嵌入式 Linux 基本的开发环境,这些东西又是必须的。

所以在本文中,我们来简单的理一理他们各自的用途。

SSH 与 FTP

对于 SSH 与 FTP ,我们其实在环境篇前面几篇文章中已经讲过了,在文章:

嵌入式 Linux 入门 环境篇(四、必备开发工具安装)

中其实已经比较过 SSH 与 FTP 了:

在这里插入图片描述
在 Linux 中它们的用法,也可以查阅前面的几篇文章。

NFS 与 TFTP

至于本文我们要将的 NFS 和下一篇文章要将的 TFTP 其实是类似的东西:

NFS 是网络文件系统,上面我们介绍过,通过网共享文件,将东西下载到 DDR 中。

TFTP 是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议 ,也可以实现网络挂载。

在我们的嵌入式 Linux 开发中,可以使用 NFS 和 TFTP 通过网络来挂载 PC 端的共享文件。

FTP 与 TFTP

我们注意到 FTP 与 TFTP 都是文件传输协议,那么他们有啥区别呢?

只需要简单记住 2 点:

1、交互使用 FTP(比如 windows 与 Ubuntu 虚拟机文件交互)。 TFTP 允许仅单向传输的文件(开发板使用 TFTP 挂载 Ubuntu 虚拟机的文件)。

2、FTP 是完整、面向会话、常规用途文件传输协议。而 TFTP 用作 bones bare - 特殊目的文件传输协议。

当然他们的区别并不只有上面 2 点,这里我们把他们当成开发工具,只需要记住这两点就足以让我们区别他们。

三、搭建 NFS 环境

这里说明一下,如果看过前面的文章,应该能够明白, NFS 有服务器端,也有客户端。 比如要使得 Ubuntu 虚拟机能够挂载 windows 主机上的网络文件,我们需要在 Ubuntu 上安装 NFS 客户端。

本文的目的是为了使得开发板能够通过网络访问 Ubuntu 下的共享文件,所以我们需要在 Ubuntu 下安装的是 NFS 服务器。

下面我们一步一步来进行。

3.1 Ubuntu 安装 NFS 服务器

在终端中使用sudo apt-get install nfs-kernel-server -y 命令安装 NFS 服务器。

在这里插入图片描述

等待安装完成即可。

3.2 创建共享文件夹

创建一个文件夹,当做 NFS 的共享目录,并给予 NFS 目录可读可写可执行权限,如下图:

在这里插入图片描述

3.3 配置 NFS 服务

完成上述步骤,我们需要对 NFS 服务进行配置,我们需要修改/etc/exports 文件,在文件末尾添加上配置信息。

注意,需要使用 sudo 修改,然后使用 :wq! 保存退出,如下图:

在这里插入图片描述

上图中配置指令 *(rw,sync,no_root_squash) 的含义如下
:
*号 :表示允许所有的网络段访问共享文件夹
rw :表示访问者具有可读写权限
sync :表示将缓存写入设备中,可以说是同步缓存的意思,实时写入
no_root_squash :表示访问者具有 root 权限。

3.4 更新查看配置信息

使用 sudo exportfs -arv 更新配置信息 :

在这里插入图片描述

或者使用 sudo /etc/init.d/nfs-kernel-server restart 指令重启 NFS 服务器:

在这里插入图片描述

接着使用showmount -e查看 NFS 共享文件夹情况:

在这里插入图片描述

3.5 开发板挂载 NFS 文件系统

首先确保开发板与 Ubuntu 虚拟机的网络是可以相互 ping 通的,这个在前面的文章

嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通) 已经说明过:

在这里插入图片描述

我们可以使用showmount -e 指令在开发板查看主机的共享文件夹:

在这里插入图片描述

博主使用的正点原子的开发板内核应该是默认安装了 NFS 客户端,如果读者使用的是其他开发板,可能需要手动在开发板安装一下 NFS 客户端。

使用 sudo apt install nfs-common -y 指令安装 NFS 客户端。

开发板挂载

使用

mount -t nfs -o nolock,nfsvers=3 192.168.2.139:/home/qzh/linux/nfs /mnt

命令进行挂载,如下图:

在这里插入图片描述

还是因为使用的开发板的问题,需要加上nfsvers=3 这个条件,其他的开发板视情况而定。

现在我们这个文件夹中是空的,没有任何文件,如下图:

在这里插入图片描述

我们在开发板上创建一个文件,可以在 Ubuntu 虚拟机中看到,如下图:

在这里插入图片描述

同样的我们在 Ubuntu 虚拟机中创建一个文件,也可以在 开发板中看到,如下图:

在这里插入图片描述

当然,在任一地方进行文件的改动,都可以实时的查看到:

在这里插入图片描述

卸载 NFS 目录

使用 umount [挂载目录] 指令卸载挂载的 NFS 目录:

在这里插入图片描述

结语

本文介绍了 NFS 的相关知识,也学习了开发板上如何挂载 PC 端 Ubuntu 虚拟机上的共享文件夹。

我们后期的学习中,会经常使用到网络文件共享的方式进行开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值