主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。因此,在使用“主引导记录”(MBR)这个术语的时候,需要根据具体情况判断其到底是指整个主引导扇区,还是主引导扇区的前446字节。
对于硬盘而言,一个扇区可能的字节数为128×2n(n=0,1,2,3)。大多情况下,取n=2,即一个扇区(sector)的大小为512字节。
Address | Description | Size (bytes) | ||
---|---|---|---|---|
Hex | Dec | |||
+000hex
|
+0 | Bootstrap code area | 446 | |
+1BEhex
|
+446 | Partition entry №1 | Partition table (for primary partitions) |
16 |
+1CEhex
|
+462 | Partition entry №2 | 16 | |
+1DEhex
|
+478 | Partition entry №3 | 16 | |
+1EEhex
|
+494 | Partition entry №4 | 16 | |
+1FEhex
|
+510 | 55hex
|
Boot signature[a] | 2 |
+1FFhex
|
+511 | AAhex
| ||
Total size: 446 + 4×16 + 2 | 512 |
主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB)。它不依赖任何操作系统,而且启动代码也是可以改变的,从而能够实现多系统引导。
硬盘分区表占据主引导扇区的64个字节(偏移01BEH--偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。具体每个字节的定义可以参见硬盘分区结构信息。
偏移 | 长度(字节) | 意义 |
---|---|---|
00H | 1 | 分区状态:00-->非活动分区;80-->活动分区; 其它数值没有意义 |
01H | 1 | 分区起始磁头号(HEAD),用到全部8位 |
02H | 2 | 分区起始扇区号(SECTOR),占据02H的位0-5; 该分区的起始磁柱号(CYLINDER),占据 02H的位6-7和03H的全部8位 |
04H | 1 | 文件系统标志位 |
05H | 1 | 分区结束磁头号(HEAD),用到全部8位 |
06H | 2 | 分区结束扇区号(SECTOR),占据06H的位0-5; 该分区的结束磁柱号(CYLINDER),占据 06H的位6-7和07H的全部8位 |
08H | 4 | 分区起始相对扇区号 |
0CH | 4 | 分区总的扇区数 |
对于大于8.4G的现代硬盘,CHS已经无法表示, BIOS使用LBA模式,对于超出的部分,CHS值通常设为0xFEFFFF,并加以忽略,直接使用Offset 0x08-0x0c的4字节相对值,再进行内部转换。
由于块地址和大小使用32位存储在MBR的分区表中,因此,使用具有512字节扇区(实际或仿真)的驱动器的分区的最大大小和最高起始地址不能超过2 TiB(232 * 512B)。
结束标志字55,AA(偏移1FEH-偏移1FFH)最后两个字节,是检验主引导记录是否有效的标志。
原文:https://www.cnblogs.com/zerxoi/p/13228039.html