分区表消耗32K数据?

分区表消耗32K数据?

我创建了一个 100MB 大小的文件,并使用losetup将其分配给/dev/loop0.

因此,我用来fdisk创建一个空的 DOS 分区表,以及一个跨越整个磁盘的新分区。

对我来说不寻常且无法理解的一件事是,上述分区从第 63 扇区开始;这意味着分区表占用62个扇区,即31Kb。

我的印象是,有关分区条目的所有数据都记录在主引导记录(驱动器的第一个扇区)中,因此只有磁盘的前 512 字节应该是越界的。

检查驱动器,第一个扇区之后的扇区并未完全填充为空,因此显然我缺少一些有关分区表的细节。

fdisk 打印(显示类型 = 扇区):

      Device Boot     Start        End     Blocks   Id  System
/dev/loop0p1   *         63     192779      96358+  83  Linux

答案1

MBR 分区格式已有三十年历史,并且由于历史原因而变得怪异。

当时,计算机需要知道硬盘的几何形状。数据在硬盘上是如何组织的?从三个维度来看:气缸、磁头和扇区

磁道、柱面、扇区、磁头

(图表由狮子金布罗

几何形状存储为当时足够大的最大值:8位用于磁头数量(1-255),6位用于磁道上的扇区数量(1-63),10位用于数量每个磁头的磁道数,即柱面数(1-1023),一个扇区包含 512 字节。如今计算机不需要知道磁盘的实际几何形状(这些数字甚至没有意义),但格式仍然保留,并且使用 MBR 分区的磁盘具有以 CHS 格式表示的大小,但重要的是三个数字的乘积等于扇区总数。

分区开始的起始地址以CHS格式表示,并且许多较旧的操作系统不支持跨越不同磁道的分区,即分区必须在柱面边界上对齐。这意味着第一个分区有 63 个扇区的倍数。

有 31 kB 的空间未用于分区内容。它可用于引导加载程序。

现代的GPT分区格式,这是具有 >1 TB 磁盘的较新 PC 的标准,喜欢在 1 MB 边界上对齐分区,因此在第一个分区开始之前大约有 1023 kB 可用空间。同样,这可以由引导加载程序使用。现代操作系统也会在 1MB 边界上对齐 MBR 分区,从而放弃 CHS 兼容性,并确保分区位于具有 4 kB 扇区(= 8 个 512 kB 传统扇区)的驱动器上的扇区边界上。在扇区边界上对齐分区(例如磁盘使用的实际扇区大小,即其首选传输大小)有助于提高性能。

相关内容