主引导记录最大驱动器大小

Master Boot Record maximum drive size

我正在阅读一些关于主引导记录布局的内容,我对分区布局如何导致可在具有 MBR 的设备上使用的存储大小的大小限制特别感兴趣。

MBR 中的每个分区都是使用 16 字节条目定义的。这16个字节的用法如下:

假设我们在 MBR 中只有 1 个分区,我将其设为活动分区。第零个扇区由MBR本身占用,而第一个分区从扇区1开始。那么该分区中的扇区总数为:

2^10 = 1024 (number of tracks)
2^6 = 64 (number of sectors)
2^8 = 256 (number of heads)

1024 * 64 * 256 = 16,777,216 sectors

每个扇区包含 512 个字节,我们得到的最大分区大小为 8,589,934,592 (8.5 GB)。如果这是正确的(我对此表示怀疑),那么 MBR 可寻址的磁盘的最大大小不应该是 8.5 GB 吗?我看到到处都在谈论 2.1 TB,但我无法理解。

CHS 寻址早已过时。最近的 MBR 系统将分区信息存储为 LBA(“逻辑块地址”)并且驱动器在内部将其映射到 cylinders/heads/sectors(在对 bad/spare 扇区执行任何必要的重新映射之后)。

根据 Wikipedia,LBA 偏移量和大小存储为 32 位小端值,位于 MBR 分区 [=21] 的偏移量 0x080x0c(分别) =]条目。这对应于您的字节 9-16.

32 位地址意味着限制实际上是 2^32 * 512 = 2TB。这种限制是现代系统使用 GPT 分区的主要原因之一。许多驱动器也使用 4096 字节扇区而不是 512。