我正在阅读有关主引导记录布局的一些内容,我特别感兴趣的是分区布局如何限制可在具有 MBR 的设备上使用的存储大小。
MBR 中的每个分区都使用一个 16 字节的条目定义。这16个字节的用法如下:
假设我们在 MBR 中只有 1 个分区,我将其设为活动分区。第0个扇区被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,但我无法理解。
答案 0 :(得分:1)
CHS 寻址早已过时。最近的 MBR 系统将分区信息存储为 LBA(“逻辑块地址”),驱动器在内部将其映射到柱面/磁头/扇区(在对坏扇区/备用扇区执行任何必要的重新映射之后)。
根据Wikipedia,LBA 偏移量和大小作为32 位little-endian 值存储在MBR 分区表条目的偏移量0x08
和0x0c
(分别)处。这对应于您的字节 9-16。
32 位地址意味着限制实际上是 2^32 * 512 = 2TB。这种限制是现代系统使用 GPT 分区的主要原因之一。许多驱动器也使用 4096 字节的扇区而不是 512。