我正在阅读一些有关主引导记录布局的内容,并且我特别感兴趣的是分区布局如何导致可在具有 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
柱面/磁头/扇区 (CHS) 是映射磁盘的一种旧方法。正如您所注意到的,这限制了可以使用的磁盘大小。
20世纪90年代,系统开始使用LBA(逻辑块地址)模式。这些是您从字节 9->16 看到的起始/长度 4 字节值。 2002年ATA标准放弃了CHS模式
在不支持 BIOS 启动的 LBA 模式的旧电脑上,启动分区可能必须位于磁盘的前面才能加载操作系统。然后操作系统可以读取磁盘的其余部分,因为它不使用 BIOS。真的很旧的电脑必须在磁盘的前 504MB 内有启动分区!
更现代的 PC 甚至不再使用 MBR 记录,而是使用 GPT,它存储在磁盘的末尾,因为磁盘现在可以支持 48 位 LBA 地址,而这不适合 4 个字节。
因此,您在 MBR 中看到的 CHS 值是 PC 早期遗留下来的,但实际上已不再使用。