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

时间:2021-04-03 17:18:32

标签: mbr

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

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

  • 第一个字节,如果值为 80,则表示活动分区
  • 第二个字节,分区开始的头号。这意味着 MBR 可以寻址 256 个不同的磁头
  • 第3个字节,前6位用于捕获分区第1个扇区的扇区号。这意味着 MBR 可以寻址 64 个不同的扇区
  • 第4个字节+第3个字节的最后2位(共10位)存储分区开始的磁道号。这意味着使用 MBR 分区条目可以寻址总共 1024 个磁道。
  • 第 5 个字节(操作系统指示符)
  • 第6个字节分区结束的头号
  • 第7个字节,前6位用于捕获分区最后一个扇区的扇区号
  • 第8个字节+第7个字节的最后2位存储分区结束的磁道号
  • 字节 9、10、11 和 12 捕获分区开始之前的扇区数
  • 字节 13、14、15 和 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,但我无法理解。

1 个答案:

答案 0 :(得分:1)

CHS 寻址早已过时。最近的 MBR 系统将分区信息存储为 LBA(“逻辑块地址”),驱动器在内部将其映射到柱面/磁头/扇区(在对坏扇区/备用扇区执行任何必要的重新映射之后)。

根据Wikipedia,LBA 偏移量和大小作为32 位little-endian 值存储在MBR 分区表条目的偏移量0x080x0c(分别)处。这对应于您的字节 9-16。

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

相关问题