嵌入式 Linux 入门(九、Linux 下的磁盘管理)

举报
矜辰所致 发表于 2022/09/30 15:10:10 2022/09/30
【摘要】 嵌入式 Linux 入门第九课,了解 linux 下的磁盘管理,学会挂载移动硬盘设备 ......矜辰所致
嵌入式 Linux 入门第九课,了解 linux 下的磁盘管理,学会挂载移动硬盘设备  ......矜辰所致

前言

嵌入式 Linux 专栏更新到现在,我们都还没有碰过开发板,本来想着前面的讲完至少先碰一碰开发板,让我们知道我们最终的目的是在开发板上运行 Linux 系统。

但是考虑到接触开发板的之初,我们除了看一下开发板的启动流程,还得学一下如何烧录开发板,而对于初学者来说,相对简单的烧录方式就是使用 SD 卡,所以我们还是先来学习一下 Linux 下的磁盘管理。

但是 Linux 下的磁盘管理深入分析的话,其实相对复杂,内容也比较多,我们只在于了解一个基本概念,以及学会 U 盘的挂载方式。

那么本文目的就是以 了解一下 Linux 下的磁盘管理的基本概念,比如什么是挂载,以及如何挂载移动硬盘设备。

文章以 Ubuntu 系统为示例说明 。

嵌入式 Linux 入门系列博文:
嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)
嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)
嵌入式 Linux 入门(三、Linux Shell 及常用命令说明)
嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )
嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)
嵌入式 Linux 入门(六、Shell 脚本编程下:Shell 脚本语法)
嵌入式 Linux 入门(七、Linux 下的环境变量)
嵌入式 Linux 入门(八、Linux 下的软件安装)
.
我是矜辰所致,一名摸爬滚打于物联网行业十多年的嵌入式工程师,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!

一、磁盘管理简介

磁盘管理是什么?

我们在熟悉的 Windows 下面,硬盘一般都分为 C盘,D盘,E盘等等,我们可以直接通过计算机管理可以打开图形话界面的磁盘管理:

在这里插入图片描述

上图中 Window 系统中的这些C盘,D盘,是2个不同的分区,其实他们是一个硬盘。

我们把盘符和硬盘分区建立联系的过程,叫做挂载。

上面把硬盘的第一个分区挂载到 C 盘这个点,分区是操作系统的逻辑概念,事实上硬盘本身是没有分区的。

这么说也有点难以理解,因为在 Windows 下,不需要理解这些东西。

说明,初学者要明白 Linux 下磁盘管理,可能会有点绕,因为从来没有接触过的概念,但是有些东西总得记一记,没有为什么,它就是这么定的,你觉得陌生或者难以理解,是因为你初次接触,习惯熟悉了就好。
Linux下的磁盘管理,对于初学者作为了解,然后知道什么是挂载,学会如何挂载新的硬盘为主。

1.1 Linux 下的磁盘管理

所谓磁盘管理,说直白点,无非就是对系统的硬盘进行一些分区处理,把不同的文件放入不同的分区方便管理。

先直接说一下本节重点需要了解的知识点:

Linux 系统中磁盘管理就是将硬盘通过挂载的方式挂载到 Linux 文件系统中。

Linux 磁盘必须挂载到目录树中的某个具体的目录上才能进行读写操作。

我们在创建虚拟机的时候,设置了虚拟机的硬盘大小:

在这里插入图片描述

那么其实这个硬盘就是我们虚拟机的磁盘了,那么对于这个磁盘在我们的系统中应该能够看见。

那么如何在 Ubuntu 中如何可以直观的看到这个硬盘信息呢?

1.2 Linux 查询硬盘信息

Linux 下有多种方式可以查询硬盘的信息,我们这里列举一下:

  1. df -h命令
    使用此以可读的格式输出硬盘使用状况:
    在这里插入图片描述
  2. lsblk命令
    只列出硬盘,不列出分区信息:
    在这里插入图片描述
  3. fdisk -l命令
    使用命令前面需要加 sudo 打印硬盘信息:
    在这里插入图片描述
  4. 查看/proc/partitions文件
    使用cat /proc/partitions命令查看文件内容:
    在这里插入图片描述

上面我们介绍了 4 种查看硬盘的方式,我们都能够找到我们虚拟机开始设定的 100G 的磁盘空间。

在上面查看磁盘的时候,有很多 loop 设备,这些是什么呢,这里在网上找了一段说明,供大家参考,这里不过多说明:

在这里插入图片描述

1.3 根目录与分区

我们上面已经在知道了如何查看我们的磁盘,而且在第一张图我们可以看到,有一个挂载点的概念:

在这里插入图片描述

就是前面提到的:Linux 磁盘分必须挂载到目录树中的某个具体的目录上才能进行读写操作,这一点记住就行了。

Linux系统的挂载有自动和手动。如果是系统安装的时候创建的分区以后都会自动挂载,而系统运行中临时添加的光盘、U盘、移动硬盘等需要手动挂载。

每次安装系统的时候我们都会进行分区,Linux下磁盘分区和目录的关系如下:

  • 任何一个分区都必须挂载到某个目录上。
  • 目录是逻辑上的区分。分区是物理上的区分。
  • 磁盘 Linux 分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。
  • 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。

对于普通用户,我们并不需要关心分区、盘符,只需要了解以前我们讲过的文件系统结构,哪个目录下面存了什么,所以本文并不准备详细说明 Linux 分区原理,主要学习如何挂载一个临时添加的 U 盘。

但是对于Linux 的分区原理,我找了几篇博文,有需要了解的可自行查看:

Linux分区原理及根目录的介绍

linux文件系统简介

1.4 磁盘管理相关命令

Linux 磁盘管理常用有三个命令,在上面的文章我们查看磁盘的时候已经使用过了两个:dffdisk

还有一个就是:du

df(英文全称:disk full):列出文件系统的整体磁盘使用量
du(英文全称:disk used):检查磁盘空间使用量
fdisk:用于磁盘分区

这里命令相关我们挂载 U 盘其实用不到太深入,这里暂时也放一个链接地址: Linux 磁盘管理

需要学习详细的这几个命令,可以在上面链接查看学习,下面在介绍分区的时候也会有示例说明。

二、磁盘的操作

上面一节简单的描述了一下 Linux 下的磁盘管理相关知识,但是本文我们重点要学习的还是移动盘的操作,比如挂载与分区,这个移动盘包括,U盘,移动硬盘等。

2.1 磁盘的挂载

我们前面说了 Linux 要读取磁盘数据,首先必须要挂载,比如在服务器新增加硬盘的时候,需要使用到这个知识,才能把新的硬盘使用上。

这里我们使用 U 盘举个例子。

2.1.1 磁盘的文件系统

但是要注意,U盘的文件系统必须为 FAT32 格式,而不能是 windows 下面的 NTFS 格式,在 Linux 下并不识别:

在这里插入图片描述

测试所用的 U 盘,我们可以在 windows 下进行格式化,选择为 FAT32 的文件系统:

在这里插入图片描述

格式完毕我们随便放一下文件到里面进行测试,在 windows 下的看的效果如下:

在这里插入图片描述

2.1.2 磁盘在 Linux 系统位置

在用 U 盘连接到虚拟机之前,我们先来看看虚拟机中的磁盘,在前面查询硬盘信息的时候,我们已经知道原本的磁盘名字为 sda ,只有一个分区为 sda1 ,我们其实可以直接在 /dev 目录下查看有哪些磁盘:

在这里插入图片描述

接下来在 VMware 软件操作,使得 U 盘连接至虚拟机,我家里这个版本的 VMware 在右上角,但是大多数人用的版本可能在右下角,这个自己找找就能找到:

在这里插入图片描述

公司电脑更新一下文章,右下角的情况:

在这里插入图片描述

U盘接进来以后,我们再次查看系统磁盘:

在这里插入图片描述

所以 sdb 肯定就是我们这个U盘了,在 Linux 中这个磁盘是一个设备文件,他可不能直接 cd 进去看内容的,我们要访问这个 U 盘,就得挂载,

但是在 Linux 系统中,U 盘会自动挂载,图形化界面可以看到 U 盘标识,打开就能访问。我们需要先看一下他是否挂载,然后删除,自己再新建一个文件夹进行挂载。

我们通过上文介绍的df -h命令,可以查询一下 Ubuntu 自动把 U 盘挂载的位置:

在这里插入图片描述

我们进入到目录查看一下,果然在这里可以看到信息:

在这里插入图片描述

2.1.3 磁盘挂载与卸载操作

本节就讲一下几个需要掌握但是也相对简单的命令,就是使用mount命令完成磁盘挂载与卸载,直接用示例说明。

卸载:

  umount <目录路径>

我们先把上面自动挂载的文件卸载:

在这里插入图片描述

然后我们来挂载,挂载需要建立一个挂载点,就是一个文件夹,我们依然在 /media/qzh 目录下面新建一个挂载点,我们换一个名字:

在这里插入图片描述

挂载:

mount <磁盘文件>  <挂载点路径> 
mount /dev/sdb1  /media/qzh/mydisk

现在目录中为空,我们使用挂载命令操作,把 U 盘挂载上去:

在这里插入图片描述

成功挂载,但是有一个问题,中文乱码?

需要加一个参数:mount -o iocharset=utf8,操作如下图:

在这里插入图片描述

2.2 磁盘的分区

前面我们就介绍过 fdisk, fdisk 是 Linux 的磁盘分区表操作工具。

fdisk [-l] <磁盘文件>

我们直接通过实例说明,分区之前得卸载:

在这里插入图片描述

我们使用这个工具的时候,会有帮助提示,所有的操作其实根据版主提示一步一步进行即可,比如我们先删除分区。

这里提一下,删除分区了文件当然是没有了,虽然没格式化之前可能有办法恢复,但是我们在合理就当做没有了,删除分区操作:

在这里插入图片描述

下面我们开始对U盘进行分区:

在这里插入图片描述

我们可以查看一下结果:

在这里插入图片描述

2.3 磁盘的格式化

格式化命令: mkfs

mkfs [-t 文件系统格式] <磁盘文件>
mkfs [options] [-t <type>] [fs-options] <device> [<size>]

mkfs 命令后面 -t 指定格式化的文件格式,那么这里有个问题,我们怎么知道这个命令支持哪些文件格式呢?

2.3.1 支持的文件系统类型

我们可以使用 mkfs[Tab][Tab]命令,就是输入mkfs 后连续按下两次 Tab 按键,终端就会显示所支持的文件类型:

在这里插入图片描述

在上图中 vfat 就是 FAT32 格式的文件系统,我们为了能在 windows 下也能识别,我们格式化为 vfat 文件系统。

2.3.2 格式化

操作如下图:
在这里插入图片描述

格式化好了以后,U盘就可以使用了,我们可以重新挂载使用,或者重启拔插一下,可以在 ubuntu 下面看到一个 U 盘变成了 2个:

在这里插入图片描述

我们断开U盘与虚拟机的链接,在 Windows 下,也可以看到 2 个分区了:

在这里插入图片描述

但是这里额外提一下,传统U盘主控,windows不会识别第二分区:

在这里插入图片描述

到这里,我们学会了在 Linux 下的磁盘分区以及格式化。

结语

本文讲述了 Linux 下的磁盘管理相关内容,有一个重要的点必须要明白: Linux 磁盘必须挂载到目录树中的某个具体的目录上才能进行读写操作。

然后我们学习了如何在 Linux 下面磁盘的挂载、分区以及格式化的方法,3个命令mountfdiskmkfs

下一篇文章,我们应该就要开始使用我们的开发板了,体验一下开发板上的 Linux 是什么一个样子。

好了,本文就到这里,谢谢大家!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。