硬盘分区格式化后产生了哪些变化
linux系统下对硬盘进行分区格式化后产生了哪些变化,会产生哪些数据,保存在哪里?
在Linux系统中对硬盘进行分区和格式化后,会产生一系列结构性变化和数据,这些变化主要体现在分区表、文件系统元数据和设备标识三个层面,具体如下:
一、分区操作产生的变化与数据
分区是将物理硬盘划分为多个逻辑区域的过程,主要产生分区表数据,用于标记各分区的边界、类型等信息。
1. 分区表(Partition Table)
- 产生的数据:记录分区的起始/结束扇区、分区类型(如Linux分区、EFI分区)、分区标志(如可启动)等。
- 保存位置:
- MBR分区表:存储在硬盘的第一个扇区(0号扇区,512字节),其中前446字节为引导代码,中间64字节为分区表(最多4个主分区),最后2字节为结束标志(0x55AA)。
- GPT分区表:位于硬盘开头和结尾。开头包含保护性MBR(兼容旧系统)和主GPT表头(记录分区表位置、校验和),随后是分区项(每个128字节,最多128个分区);结尾有一份备份GPT,防止主分区表损坏。
- 作用:让操作系统识别“硬盘被划分为几个区域”以及“每个区域的范围和用途”。
二、格式化操作产生的变化与数据
格式化(创建文件系统)是在分区内建立管理数据的规则,会生成文件系统元数据,用于组织文件、目录和存储空间。不同文件系统(如ext4、xfs、btrfs)的元数据结构不同,以下以最常见的ext4为例:
1. 块组(Block Group)划分
- 变化:分区被划分为多个大小相等的块组(Block Group),每个块组包含一组管理单元,提高读写效率。
- 块组数量:由分区大小和块大小决定,公式为
块组数量 = 分区总块数 / 每个块组的块数
(例如10GB分区,4KB块大小,每个块组含32768块,则约80个块组)。
2. 超级块(Superblock)
- 产生的数据:记录文件系统的全局信息,如总块数、空闲块数、inode总数、块大小、创建时间、UUID等。
- 保存位置:
- 主超级块位于第一个块组的起始位置。
- 备份超级块分散在部分块组中(如块组0、1、3、5…),用于主超级块损坏时恢复。
- 作用:是文件系统的“总目录”,操作系统通过它识别文件系统的基本属性。
3. 块组描述符表(Group Descriptor Table)
- 产生的数据:每个块组对应一个描述符,记录该块组的块位图位置、inode位图位置、inode表位置、空闲块数、空闲inode数等。
- 保存位置:紧跟在超级块之后,也会在多个块组中备份。
- 作用:快速定位每个块组的管理结构。
4. 位图(Bitmap)
- 产生的数据:
- 块位图:用1位表示1个数据块的状态(0=空闲,1=已使用)。
- inode位图:用1位表示1个inode的状态(0=空闲,1=已使用)。
- 保存位置:每个块组内部,由块组描述符表指向。
- 作用:高效管理存储空间的分配与回收。
5. inode表(inode Table)
- 产生的数据:每个文件/目录对应一个inode,记录其权限(rwx)、所有者、大小、创建/修改时间、数据块指针等元信息(但不包含文件名)。
- 保存位置:每个块组内部,大小由inode总数决定(创建文件系统时可指定
-i
参数调整inode密度)。 - 作用:是文件的“身份证”,通过inode可找到文件的所有属性和数据位置。
6. 目录项(Directory Entries)
- 产生的数据:记录文件名与inode的映射关系(每个目录项包含文件名、inode编号、文件类型等)。
- 保存位置:以数据块形式存储在分区中,与普通文件数据一样占用块空间。
- 作用:建立“文件名→inode”的映射,让用户能通过文件名访问文件。
7. 日志(Journal,ext4特有)
- 产生的数据:记录文件系统元数据的变更(如创建文件、删除目录),类似数据库的事务日志。
- 保存位置:通常位于分区的固定区域(可通过
mkfs.ext4 -J
指定大小)。 - 作用:系统崩溃后快速恢复文件系统一致性,避免元数据损坏。
三、其他变化与数据
-
设备文件:
- 分区后,系统会在
/dev
下生成对应的设备文件(如/dev/sda1
、/dev/mmcblk0p1
),这些是内核识别分区的接口,并非实际存储在硬盘上的数据。
- 分区后,系统会在
-
UUID与标签:
- 格式化时会生成唯一标识符(UUID)和可选的标签(Label),存储在超级块中。
- 系统通过
/dev/disk/by-uuid/
和/dev/disk/by-label/
下的符号链接关联到设备文件,方便挂载时引用(避免设备名变动)。
-
预留空间:
- 部分文件系统(如ext4)会预留5%左右的空间给root用户和系统进程,防止分区占满导致崩溃,这部分空间信息记录在超级块中。
总结
操作 | 产生的数据 | 保存位置 | 核心作用 |
---|---|---|---|
分区 | MBR/GPT分区表 | 硬盘开头(MBR在0扇区,GPT含备份) | 标记分区边界和类型 |
格式化ext4 | 超级块、块组描述符 | 分区内,多个块组有备份 | 记录文件系统全局信息 |
格式化ext4 | 块位图、inode位图 | 每个块组内部 | 管理空间分配 |
格式化ext4 | inode表、目录项 | 块组内部及数据块 | 记录文件属性和文件名映射 |
格式化ext4 | 日志(Journal) | 分区固定区域 | 保障元数据一致性 |
这些数据构成了文件系统的“骨架”,使得操作系统能够有序地管理文件的创建、读取、修改和删除。如果这些数据损坏(如超级块损坏),可能导致分区无法挂载或数据丢失。