企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] >[success] # 系统(磁盘)分区 **系统(磁盘)分区**是使用**分区编辑器(partition editor)**在**磁盘**上划分几个**逻辑部分**。**碟片**一旦划分成**数个分区(Partition)**,**不同类的目录与文件可以储存进不同的分区**,**跟电脑的硬盘分区一样**。 <br> **大白话理解**:假如我有一个柜子(**磁盘**),我平时会有很多的衣服和裤子(**文件**)放在里面,但是有一天我想找一个裤子(**文件**),我要翻遍整个柜子(**磁盘**)去找,很麻烦。 ![](https://img.kancloud.cn/e5/3a/e53a3b82264368745c5d4b9abf82a4b3_247x321.png) 如果给柜子做(**分区**)出来一个隔板,衣服裤子(文件分类放不同的分区)分开放,这样就会方便很多很好找。 ![](https://img.kancloud.cn/da/bc/dabcd7745de541de0bfaf639ae460230_300x396.png) >[success] ## 分区类型 | 主分区 | 扩展分区 | 逻辑分区 | | --- | --- | --- | | 1. **一块硬盘最多有4个主分区**,可以**写入数据**。 | 1. **最多只能有1个** <br>2. **主分区**加**扩展分区**最多有**4**个(**2**种类型的分区加在一起**最多4个**。 <br>3. **不能写入数据,不能格式化**,只能包含**逻辑分区**。| 1. **逻辑分区**,可以**写入数据**和**格式化**。| <br> **大白话理解**:假如我现在有4个柜子,但是有一天,女朋友来家里住,但是没有位置放她的衣服,这时候就需要用一个柜子来腾出来个柜子隔出来一点空间,女朋友没来之前柜子是这样: ![](https://img.kancloud.cn/f8/80/f880558a6fe649aba91359321348d390_679x446.png) 女朋友来了给她腾出空间后的柜子是下面这样,如下图:下面的**1、2、3**柜子就是**主分区**可以**写入数据**,**柜子4**是**扩展分区**,他里面**不可以放入数据,也不能格式化**,柜子**5、6**是**逻辑分区**,**逻辑分区**可以**写入数据**跟**格式化** ![](https://img.kancloud.cn/d8/6a/d86a8d022b23a2e39d5aed821e994f93_675x448.png) >[success] ## 格式化 **格式化**(**高级格式化**)又称**逻辑格式化**,它是指根据用户选定的**文件系统**(**FAT16、FAT32、NTFS、EXT2、EXT3、EXT4**),在磁盘的**特定区域写入特定数据**,**在分区中划出一片用于存放文件分配表等用于文件管理的磁盘空间**。 **硬盘**必须经过**格式化**后才可以**写入数据**,**格式化的目的**:就是为了在硬盘中**写入文件系统**。 **对应系统(Windows、Linux**)可以识别的**文件系统**: | Windows | Linux | | --- | --- | | | **EXT:单文件最大2GB** | | **FAT16** | **EXT2:单文件最大2TB** | | **FAT32** | **EXT3:单文件最大16TB**| | **NTFS**| **EXT4:单文件最大32TB**** | | | **XFS:单文件最大8EB** | <br> **大白话理解**:难道有了柜子就可以直接放入衣服了吗,其实生活中不是这个样子的,我们还要**给柜子打入相应的隔断(格式化就是给柜子打入隔断)**,只是这个**隔断必须遵守一定的规则**,在**Linux**中**格式化成EXT4文件系统时**,**会把柜子内部用隔断隔成一个一个同等大小的小格子,每个格子默认标准大小是4KB**,假设我有一个数据是**10kb**,会向下图一样用**3个格子(12kb)**来放这个数据(10kb),当然他剩余的**2kb多余空间**是**不能被其他数据占用**的。而且这个数据**不会向下图那样有顺序的置放,而是打乱位置的置放**,数据变成了**碎片化数据**,而**Windows系统**有**专门的软件**会来对这个**碎片化数据**做一个顺序处理,为了更方便的**读取数据**,**Linux**系统去读取这些数据时候是根据**i节点号(iNode)**去这些**碎片化数据**中查找对应符合条件的**数据,就是根据一个标识去查找这些碎片化数据**。 ![](https://img.kancloud.cn/88/ce/88ce5afd2a9a918bc8da024737741ab5_744x477.png) <br> >[success] ## 硬件设备文件名 **Windows系统和Linux系统安装流程如下**: 1. **Windows系统安装流程** 1.1 先给硬盘**分区**、**分配盘符( C D E 等盘符)** 1.2 格式化硬盘 1.3 安装操作系统 2. **Linux系统安装流程** 2.1 给**硬盘分区(大硬盘、小硬盘)** 2.2 格式化硬盘 2.3 **Linux**中**分配盘符**时候,**要给每一个(盘符)分区起一个设备文件名(类似Windows的C D E盘的名字)才可以分配盘符** 3. **Linux**如果想**分配盘符**,就需要到某个**硬盘**下,给某个**硬盘**的**盘符起名字**,才可以进行**分区**,下面的**Linux指令**是如何进入到某个**硬件设备**下 | 硬件 | 设备文件名 | | --- | --- | | **IDE硬盘** | **/dev/hd/[a-d]** | | **SCSI/SATA/USB硬盘** | **/dev/sd/[a-p]** | | **光驱** | **/dev/cdrom** 或 **/dev/sr0** | | **软盘** | **/dev/fd[0-1]** | | **打印机(25针)** | **/dev/lp[0-2]** | | **打印机(USB)** | **/dev/usb/lp[0-15]** | | **鼠标** | **/dev/mouse** | 如果我有**2**个**IDE硬盘(普通硬盘)**,我想进入到第**2**个**硬盘**中就要向下面这样: ~~~ /dev/hdb ~~~ ' / ' 斜杠代表**Linux**的**根目录**,意思就是说,从**Linux**的**根目录**中的**dev**文件夹中找到**IDE硬盘**的第**2**个**硬盘** >[success] ### 分区(盘符)设备文件名 上面说到了如何通过**Linux指令**找到某个**硬盘**,接下来讲如何通过指令找到某个**硬盘**下的某个**分区(盘符)** | 设备文件名 | | --- | | /dev/hdb1(IDE硬盘接口) | | /dev/sdb1(SCSI硬盘接口、SATA硬盘接口) | | PCI-E接口 | 上面的 **/dev/hdb1**,意思就是**IDE硬盘**的第**2**个硬盘,**1**代表是这个**硬盘**中的第**1**个**分区**,**分区**的**文件名**就是在**硬盘**的**文件名**后加入**数字**。 上面表格中所提到的硬盘接口又是什么? 1. **IDE硬盘接口** 最高传输速度**每秒钟133MB** ![](https://img.kancloud.cn/01/f9/01f918789177a4d03f40bbf1302674fa_542x333.png) 2. **SCSI硬盘接口** 理论传输速递**每秒钟200MB**,**这种硬盘主要用在服务器上,原因是因为价格昂贵** ![](https://img.kancloud.cn/55/01/5501853189e613accddba0139ae979ee_559x346.png) 3. **SATA硬盘接口(串行接口简称串口)** 上面说的**IDE硬盘**和**SCSI硬盘**,已经**基本被淘汰**了,现在基本上都是用**SATA硬盘**,而且现在出到了**SATA3.0**,**SATA3.0理论每秒钟可以达到500MB** ![](https://img.kancloud.cn/b2/02/b2022478bf7dedda3bb2e2d296c564ce_556x343.png) 4. **PCI-E接口** **PCI-E接口**的**固态硬盘**和**SATA接口**的区别是**通信总线**不同;**最大传输速度**方面,前者可以达到**16Gbps**,实际传输速度约为**1560MBps**,后者只有**8Gbps**,实际传输速度约为**560MBps**;此外,**PCI-E接口总线结构简单、成本低、设计简单,SATA具备较强的纠错能力**。 ![](https://img.kancloud.cn/5b/15/5b15d35b5104e372f3fb8bc7f66f92f8_659x342.png) 5.分区表示 下图就是代表着**SCSI/SATA/USB硬盘**的分区,**sda1**到**sda3**是**主分区**,**sda4**是**扩展分区**,**sda5**和**sda6**是**逻辑分区** ![](https://img.kancloud.cn/97/25/9725ac1f7baa3699e1e2f54db0e87536_673x441.png) 接下来**换种分法**,下面的sda硬盘的分区看着很正常,但是**sdb硬盘的分区号2(扩展分区)里的逻辑分区为什么是从5 - 7 的排序? 而不是从3 - 5的排序, 这是因为 1 2 3 4 这4个分区号只能给主分区或者扩展分区使用,就算我的硬盘中只有2个主分区,逻辑分区也不能占用 1 2 3 4这四个分区号,也就是说不管你如何分区,分区号5 就代表第一个逻辑分区** ![](https://img.kancloud.cn/38/64/3864d91bc6af3518efd7ec3a22aeccb3_818x785.png) <br> >[success] ## 挂载(分配盘符) <br> >[success] ### 先分区 | 必须分区 | 推荐分区 | | --- | --- | | /(根分区) | /boot(启动分区,200MB) | | swap分区(交换分区,内存2倍,不超过2GB) | | 1. **/跟分区** **根分区包含Linux系统所有的目录** 2. **swap分区** **swap分区**在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到**swap分区**中,等到那些程序要运行时,再从**swap分区**中恢复保存的数据到内存中。 3. **/boot分区** **/boot分区**就是**操作系统**的内核及在引导过程(启动)中使用的文件,一般是几年前的版本要求划分的一个区,大小为**100MB**左右,但现在的新版本都不需要对这个分区进行单独划分,也就是说你完全可以不分 **/boot**。 安装**Linux**只要求两个**基本分区**,即**根分区及交换分区**,如果你的磁盘空间足够大,可以多划分空间给根分区,你也可以把常用的目录新建到桌面,如下载的软件包,放到桌面不影响你进入**Linux系统**的速度,当然这要求你有**足够大的根分区** >[success] ### 再挂载 **挂载的理解**: 如果说**Linux**的整个**根目录**就是一本书的目录,记载着**根目录**下每一个**文件夹/文件所在的页码**。当你按照这个目录,翻到某个文件夹(**例如/etc**)所在的那一页的时候,你会发现这一页上记载的还是一个**目录**,上面写着 **/etc** 下面有哪些**文件夹/文件**,以及每个**文件夹/文件**所在的页码;如果你翻到 **/etc/shadow** 这个文件所在的页码,你可以看到这一页上面写的就是这个**文件**的**内容**。 如果某个**文件夹**是**挂载**了某个**分区**,例如 **/home挂载** 的是 **/dev/sdb2**,那么当你翻到 **/home**这个文件夹的时候,你会看到上面写着"本节内容参看另外一本书,书名叫 **/dev/sdb2**",然后你就高高兴兴的去找这本书去了。如果这个时候你把 **/home**卸载了,那么你会看到这一行字消失了,只剩一张白纸,上面什么都没有,如下图: ![](https://img.kancloud.cn/c4/17/c41768aca4efe983c44611bfb5f7fd46_474x590.png) <br> >[warning] ### 关于挂载的作用的解释 1. **Windows**下,**mount(挂载)**,就是给磁盘分区提供一个**盘符(C, D, E, ...)**。比如插入**U盘**后系统自动分配给了它**I:盘符**其实就是**挂载**,退优盘的时候进行安全弹出,其实就是**卸载unmount**。 2. **Linux**下,不像**Windows**可以有**C,D,E,** 多个目录,**Linux**只有一个**根目录/**。在装系统时,我们分配给**Linux**的所有**分区**都在**根目录/** 下的某个位置,比如 **/home** 等等。 3. **提问者**插入了**新硬盘**,分了**新磁盘区sdb1**。它现在还不属于**根目录/**。 4. **提问者**使用了 **mount /dev/sdb1 ~/Share/** ,**把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下**,之后访问这个**~/Share/文件夹**就相**当于访问这个硬盘的sdb1分区**了。对**/Share/**的任何操作,都相当于对 **sdb1** 里文件的操作。 5. 所以**Linux**下,**mount(挂载)** 的作用,就是**将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备**。 6. **Linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。** 7. **问**:我们不是有 **/dev/sdb1** 吗,直接对它操作不就行了?这不是它的**目录**吗? **答**:这不是它的**目录**。**虽然/dev是个目录,但/dev/sdb1不是目录**。可以发现**ls /dev/sdb1无法执行。/dev/sdb1,是一个类似指针的东西,指向这个分区的原始数据块。mount前,系统并不知道这个数据块哪部分数据代表文件,如何对它们操作。** 8. 插入**CD**,系统其实自动执行了 **mount /dev/cdrom /media/cdrom**。所以可以直接在**/media/cdrom**中对CD中的内容进行管理。