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


    嵌入式 Linux 入门第九课,了解 linux 下的磁盘管理,学会挂载移动硬盘设备  ......矜辰所致
    
    • 1

    前言

    嵌入式 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:用于磁盘分区
    
    • 1
    • 2
    • 3

    这里命令相关我们挂载 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 <目录路径>
    
    • 1

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

    在这里插入图片描述

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

    在这里插入图片描述

    挂载:

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    2.2 磁盘的分区

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

    fdisk [-l] <磁盘文件>
    
    • 1

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

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    在这里插入图片描述

    我们可以查看一下结果:

    在这里插入图片描述

    2.3 磁盘的格式化

    格式化命令: mkfs

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

    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 是什么一个样子。

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

  • 相关阅读:
    DBCO-C12-amine,DBCO-C12-NH2,二苯并环辛炔-碳12-氨基, DBCO-C12-胺
    清算、结算、南北卡支付行业概念一次说清
    【供应链】供应链的含义及特征
    《中国式沟通》读后感
    【Minecraft开服教程】使用 MCSM 面板一键搭建我的世界服务器,并内网穿透公网远程联机
    JDBC复习
    构建实用的Flutter文件列表:从简到繁的完美演进
    服务器数据恢复—OceanStor存储中NAS卷数据丢失如何恢复数据?
    jmeter之连接MySQL数据库
    MySQL:索引知识点盘点
  • 原文地址:https://blog.csdn.net/weixin_42328389/article/details/126054340