当前位置: 首页 > news >正文

硬盘分区格式化后产生了哪些变化

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指定大小)。
  • 作用:系统崩溃后快速恢复文件系统一致性,避免元数据损坏。

三、其他变化与数据

  1. 设备文件

    • 分区后,系统会在/dev下生成对应的设备文件(如/dev/sda1/dev/mmcblk0p1),这些是内核识别分区的接口,并非实际存储在硬盘上的数据。
  2. UUID与标签

    • 格式化时会生成唯一标识符(UUID)和可选的标签(Label),存储在超级块中。
    • 系统通过/dev/disk/by-uuid//dev/disk/by-label/下的符号链接关联到设备文件,方便挂载时引用(避免设备名变动)。
  3. 预留空间

    • 部分文件系统(如ext4)会预留5%左右的空间给root用户和系统进程,防止分区占满导致崩溃,这部分空间信息记录在超级块中。

总结

操作产生的数据保存位置核心作用
分区MBR/GPT分区表硬盘开头(MBR在0扇区,GPT含备份)标记分区边界和类型
格式化ext4超级块、块组描述符分区内,多个块组有备份记录文件系统全局信息
格式化ext4块位图、inode位图每个块组内部管理空间分配
格式化ext4inode表、目录项块组内部及数据块记录文件属性和文件名映射
格式化ext4日志(Journal)分区固定区域保障元数据一致性

这些数据构成了文件系统的“骨架”,使得操作系统能够有序地管理文件的创建、读取、修改和删除。如果这些数据损坏(如超级块损坏),可能导致分区无法挂载或数据丢失。

http://www.xdnf.cn/news/1459441.html

相关文章:

  • OpenStack VLAN网络类型实训案例
  • 机器学习:后篇
  • LangChain4j的初步学习【逐步添加中】
  • 强化学习DQN解决Cart_Pole问题
  • claude code route 使用教程|命令大全
  • linux中的awk使用详解
  • 深度解读《实施“人工智能+”行动的意见》:一场由场景、数据与价值链共同定义的产业升级
  • 【8】C#上位机---泛型、委托delegate与多线程Task
  • 2025年代理IP服务深度评测:三大平台横评,谁是最强业务助手?
  • 检查数据集格式(77)
  • 计算机二级C语言操作题(填空、修改、设计题)——真题库(16)附解析答案
  • C++基础——模板进阶
  • 【C++题解】关联容器
  • Linux的权限详解
  • 一次死锁的排查
  • 激活函数:神经网络的“灵魂开关”
  • 阅读论文神奇Zotero下载安装教程以及划词翻译(Translate for Zotero)的配置
  • 动态内存管理柔性数组
  • Vue 中绑定样式的几种方式
  • Process Explorer 学习笔记(第三章3.1.1):度量 CPU 的使用情况详解
  • 【Unity知识分享】Unity接入dll调用Window系统接口
  • 无限时长视频生成新突破!复旦联合微软、腾讯混元推出StableAvatar,仅需1张照片+1段音频实现真人说话视频
  • hutool的EnumUtil工具类实践【持续更新】
  • 揭秘23种设计模式的艺术与技巧之行为型
  • 美联储计划召开稳定币和代币化创新会议
  • 大数据框架Doris全面解析
  • 期权平仓后权利金去哪了?
  • 基于STM32的智能家居语音控制系统设计
  • Pycharm终端pip install的包都在C:\Users\\AppData\Roaming\Python\解决办法
  • 手写Spring框架