MBR组织

问题描述 投票:0回答:1

MBR分区表中具有​​8个字节偏移量的字段用于存储分区开头的LBA地址。当没有足够的CHS坐标时,引入LBA寻址来寻址更大的磁盘。但是在引入MBR支持时,此类磁盘还不存在。因此出现了一个问题:偏移量为8和12个字节的字段最初包含什么?他们是保留用于进一步的结构开发还是出于其他目的?

我也对LBA-48的实施感兴趣。分配了32位用于在MBR中存储LBA地址,那么如何将32位存储48位地址?

filesystems disk mbr
1个回答
0
投票

两篇维基百科文章提供了有用的详细信息:https://en.wikipedia.org/wiki/Master_boot_recordhttps://en.wikipedia.org/wiki/Logical_block_addressing。其他有用的来源是The Starman's "All the Details of many versions of both MBR"

MBR中有"Partition table entries";对于与LBA兼容的条目,它们具有CHS(3字节)和LBA(4字节)地址。 CHS提供两个地址,一个用于分区的第一个扇区,另一个用于分区的最后一个扇区。 LBA地址是该分区中第一个扇区的LBA地址和扇区总数。因此,两种类型的地址都不用于字节,而是用于扇区,并且Wikipedia says扇区大小以前被认为固定为512(29)字节”。

[使用4个字节,我们可以将最大2TB的磁盘的最大编码编码为4294967295(2到32的功率减去1)乘以每个扇区的512字节(2147483647.5千字节)。

LBA-48无法存储在正式支持的MBR分区条目中,因为48位为6个字节,而MBR(以及第5个逻辑分区的EBR)只有4个字节来存储LBA的起始和结束扇区地址。 LBA-48与GUID GPT-https://en.wikipedia.org/wiki/Logical_block_addressing#LBA48

一起使用

[当前的48位LBA方案是在2003年采用ATA-6标准引入的,[4]将寻址限制提高到2 ^ 48×512字节,恰好是128 PiB或大约144.1PB。 ...但是,常见的DOS风格的主引导记录(MBR)分区表仅支持最大2 TiB的磁盘分区。对于较大的分区,这需要用另一种方案替换,例如GUID分区表(GPT),它具有与当前INT 13h扩展相同的64位限制。

((在某些类似Wiki的随机站点中有proposed incompatible MBR format for LBA48,但不适用于大多数期望正确的经典MBR的操作系统。]

LBA于1996年引入“ 在Windows 95B和DOS 7.10中,为了支持大于8 GB的磁盘the Wikipedia说。有1999年授予的相关IBM专利(可能于2019年10月到期):Address offset feature for a hard disk drive, US6415383

关于MBR的LBA之前的时期知之甚少,但在DOS 2.0中,分区表的总大小为64字节,其中有4个分区,每个分区16字节。它是在MBR parsing code in DOS2中编码的大小:

汇编代码的检查

062C 83C610       ADD  SI,+10            ; Checking the next entry...
                                         ; (10h = 16 bytes per entry)

即使Starman的MBR资源也没有关于原因的信息为什么为每个分区表条目分配了16个字节。

[我发现了AST Research的1990-1992早期专利(现在已转让给三星),System for multiple access hard disk partitioning, US5136711A在图2(图3)中给出了分区表的布局,听起来很像LBA:

每个分区标识符段133、134、135和136包括16个字节的磁盘空间,组成一个分区表140(图3),该表包含相应磁盘分区的标识信息。

分区表140在图像中定义为:

  • 141引导指示灯,
  • 142头号,
  • 144扇区号,
  • 气缸号,
  • 148系统指示器,
  • 150头号,
  • 152扇区号,
  • 气缸号,
  • 154引导扇区地址,
  • 156部门编号

并且在AST 1992专利分区表的文本中描述为:

分区表140包括引导指示符字节141,以识别对应的分区段P4是可引导分区还是不可引导分区。在给定时间,P4,P3,P2和P1的仅一个分区可以启动。分区表还包括物理起始头号字节142,物理起始柱头和物理起始扇区段144,标识操作系统类型的系统指示符字节148,物理结束头号字节150,物理结束柱头和物理结束扇区段152,引导扇区地址段154和扇区号段156,其指示分区P4中的扇区数,如本领域中众所周知的。

因此,在我的hypotesys中,字段+8可能用于指向分区的引导扇区(它可能未放置在第一扇区中?),而字段+12可能用于检查分区大小的计算。但是在DOS2 code中,没有+8和+12字段的实际读数。它们可能仅在IBM MBR中保留,并在AST专利中重新使用以用于类似LBA的用法。

1991年的PCMag(PC Mag 10 Sep 1991, page 410)还说过,4字节字段已经用于类似LBA的扇区地址:

分区表中的每个记录是16个字节,其中每个4个用于起始扇区和扇区数。另外,为分区字节保留了一个字节。

与1992年Mark Minasi的书“硬盘生存指南”相同,至少适用于最后+12个字段(分区大小),第279页(Google图书中有一些摘要):

获取此号码以修复引导记录很简单:它位于MBR中。每个分区表条目的最后四个字节是分区长度(以秒为单位)。

© www.soinside.com 2019 - 2024. All rights reserved.