磁盘的低级格式化和高级格式化都进行了什么工作

一、 低级格式化 (Low-Level Formatting / 物理格式化)

低级格式化是一个面向硬件的、破坏性的过程。它为磁盘的物理表面建立了最基础的“跑道和标线”,使得磁盘控制器能够知道该如何在这张“白纸”上定位和读写数据。

在现代,低级格式化通常在硬盘出厂时就已经由制造商完成,用户基本不需要也无法再进行真正的低级格式化。

低级格式化主要进行了以下工作:

  1. 划分磁道和扇区 (Creating Tracks and Sectors)

    • 在磁盘的每个盘面上,划分出若干个同心圆,这就是磁道 (Track)

    • 将每个磁道进一步划分为若干个固定大小的弧段,这就是扇区 (Sector)。扇区是磁盘进行物理读写的最小单位(通常为512字节或4KB)。

  2. 写入控制结构 (Writing Control Structures)

    • 为每个扇区写入**“头(Header)”“尾(Trailer)”“扇区间的间隙(Gap)”**。这些是给磁盘控制器看的“路标”,而不是给用户存数据的。

      • 头 (Header): 包含扇区的唯一地址信息(如柱面号、磁头号、扇区号)、同步信息等。

      • 尾 (Trailer): 主要包含错误校验码 (ECC - Error-Correcting Code),用于在读取数据时校验数据是否出错。

    • 经过这一步,原本光滑的盘片表面就被“画”上了一个个带有地址和校验信息的、可供读写的“小格子”。

  3. 坏道检测与映射 (Bad Sector Mapping)

    • 在格式化过程中,会对磁盘表面进行检测,找出有物理缺陷、无法可靠存储数据的“坏扇区”(即坏道)。

    • 将这些坏道的地址记录在一个特殊的列表(如P-listG-list)中,并用备用扇区进行替换。这样,磁盘控制器在后续操作中就会自动跳过这些坏道。

总结: 低级格式化的工作对象是整个物理硬盘,其目的是建立磁盘的物理结构,让硬件可以工作。它不关心操作系统,不建立任何文件系统。这个过程会彻底清空磁盘上的所有数据,且通常是不可恢复的。


二、 高级格式化 (High-Level Formatting / 逻辑格式化)

高级格式化是一个面向操作系统的、在已有分区上进行的逻辑构建过程。它的目的是在一个已经过低级格式化和分区的磁盘空间上,建立文件系统的“账本和档案柜”,使得操作系统能够在这里存储、组织和查找文件。

我们平常在Windows里“格式化一个D盘”或在Linux里mkfs.ext4 /dev/sda1,做的都是高级格式化。

高级格式化主要进行了以下工作:

  1. 划分磁盘块 (Dividing into Blocks)

    • 文件系统会以一个或多个连续的扇区组成一个块 (Block)簇 (Cluster)。块是文件系统进行数据分配和I/O操作的基本单位。
  2. 建立文件系统的核心数据结构:

    • 这是高级格式化最核心的工作。它会在分区的特定位置写入一套完整的文件系统“管理账本”。以一个典型的UNIX文件系统(如ext4)为例,会创建:

      • 引导块 (Boot Block): 位于分区的最开始,包含了引导加载程序(boot loader)的信息,用于启动操作系统。

      • 超级块 (Super Block): 包含了整个文件系统的“全局”信息,如文件系统类型、块大小、i-node数量、空闲块数量等。超级块是文件系统的“户口本”,如果它损坏,整个文件系统都可能无法识别。

      • 空闲空间管理信息: 用于记录哪些磁盘块是空闲的。这可以是位图 (Bitmap) 的形式,也可以是空闲块链表(如成组链接法所用的结构)。

      • i-node区 (i-node Area): 划出一片区域,专门存放文件系统中所有文件的索引节点(i-node)。每个文件或目录都对应一个i-node,记录了文件的元数据(大小、权限、时间戳、数据块指针等)。

      • 根目录 (Root Directory): 创建文件系统的第一个目录——根目录。它本身也是一个文件,其i-node和数据块被创建,并至少包含...两个目录项。

总结: 高级格式化的工作对象是一个已存在的分区,其目的是建立文件系统的逻辑结构。它让我们熟悉的C:盘、D:盘不再是一片混沌的存储空间,而是变成了一个有组织、有结构、可以存放文件和目录的“档案室”。


对比总结

特性 低级格式化 (物理格式化) 高级格式化 (逻辑格式化)
操作对象 整个物理硬盘 硬盘上的一个分区
工作层面 硬件层面,面向磁盘控制器 操作系统层面,面向文件系统
核心工作 划分磁道/扇区,建立物理寻址基础 创建文件系统结构(引导块、超级块、i-node、目录等)
数据影响 彻底、物理性地清除所有数据 逻辑上清除数据(快速格式化)或覆盖数据(完全格式化)
执行者 硬盘制造商 操作系统或用户