Boot Sector 结构简介

来源:互联网 发布:知乎,有趣话题 编辑:程序博客网 时间:2024/06/11 19:59

Boot Sector 结构简介

1. Boot Sector 的组成

Boot Sector 也就是硬盘的第一个扇区,它由 MBR (Master Boot Record),DPT (Disk Partition Table) 和 Boot Record ID 三部分组成。
MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节 ( 0 to 0x1BD ),存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序)。
DPT 即主分区表占用 64 个字节 (0x1BE to 0x1FD),记录了磁盘的基本分区信息。主分区表分为四个分区项,每项 16 字节,分别记录了每个主分区的信息(因此最多可以有四个主分区)。
Boot Record ID 即引导区标记占用两个字节 (0x1FE and 0x1FF),对于合法引导区,它等于 0xAA55,这是判别引导区是否合法的标志。
Boot Sector 的具体结构如下图所示:


Offset 0000H


Offset 01BDH

Offset 01BEH

Offset 01CDH
Offset 01CEH

Offset 01DDH
Offset 01DEH

Offset 01EDH
Offset 01EEH

Offset 01FDH
Offset 01FEH

Offset 01FFH

Master Boot Record


主引导记录(446字节)

 

分区信息1

 

分区信息2

 

分区信息3

 

分区信息4

 

校验字0xAA55

2. 分区表结构简介

分区表由四个分区项构成,每一项的结构如下:

BYTE State : 分区状态,0 = 未激活,0x80 = 激活 (注意此项)
BYTE StartHead : 分区起始磁头号
WORD StartSC : 分区起始扇区和柱面号,底字节的低6位为扇区号,高2位为柱面号的第 9,10位,高字节为柱面号的低 8位
BYTE Type : 分区类型,如 0x0B = FAT32,0x83 = Linux 等,00表示此项未用(注1)
BYTE EndHead : 分区结束磁头号
WORD EndSC : 分区结束扇区和柱面号,定义同前
DWORD Relative : 在线性寻址方式下的分区相对扇区地址 (对于基本分区即为绝对地址)
DWORD Sectors : 分区大小 (总扇区数)
注意:在 DOS / Windows 系统下,基本分区必须以柱面为单位划分( Sectors * Heads 个扇区),如对于 CHS 为 764/255/63 的硬盘,分区的最小尺寸为 255 * 63 * 512 / 1048576 = 7.844 MB。

3. 扩展分区简介

由于主分区表中只能分四个分区,无法满足需求,因此设计了一种扩展分区格式。基本上说,扩展分区的信息是以链表形式存放的,但也有一些特别的地方。
首先,主分区表中要有一个基本扩展分区项,所有扩展分区都隶属于它,也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中。对于DOS / Windows 来说,扩展分区的类型为 0x05。
除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放,后一个扩展分区的数据项记录在前一个扩展分区的分区表中,但两个扩展分区的空间并不重叠。
扩展分区类似于一个完整的硬盘,必须进一步分区才能使用。但每个扩展分区中只能存在一个其他分区。此分区在 DOS/Windows 环境中即为逻辑盘。因此每一个扩展分区的分区表 (同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项)。
扩展分区和逻辑盘关系请参考

原创粉丝点击