主引导扇区(MBR),分区表(DPT)及活动分区(DBR)

时间:2021-04-08 06:56:37

主引导扇区:硬盘的0柱面、0磁头、1扇区(也叫主引导记录MBR),大小为512Byte。
分区表(DPT):位于主引导分区,从偏移01BEH开始到偏移01FDH结束的64字节。
活动分区DBR:DBR(DOS BOOT RECORD,原意为DOS引导记录),位于柱面0,磁头1,扇区1(操作系统可以访问的第一个扇区),即逻辑扇区0。DBR分为两部分:DOS引导程序和BPB(BIOS参数块)

      一、硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分区。MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它;它先于所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统。
      MBR由三部分构成:
      1.主引导程序代码,占446字节
      2.硬盘分区表DPT,占64字节
      3.主引导扇区结束标志AA55H

标准 MBR 结构
地址 描述 长度
(字节)
Hex Oct Dec
0000 0000 0 代码区 440
(最大 446)
01B8 0670 440 选用软盘标志 4
01BC 0674 444 一般为空值; 0x0000 2
01BE 0676 446 标准 MBR 分区表规划
(四个16 byte的主分区表入口)
64
01FE 0776 510 55h MBR 有效标志:
0xAA55
2
01FF 0777 511 AAh
MBR, 总大小: 446 + 64 + 2 = 512

     二、硬盘的主引导程序代码是从偏移0000H开始到偏移01BDH结束的446字节;主引导程序代码包括一小段执行代码。启动PC 机时,系统首先对硬件设备进行测试,成功后进入自举程序INT 19H;然后读系统磁盘0柱面、0磁头、1扇区的主引导扇区MBR的内容到内存指定单元0:7C00 首地址开始的区域,并执行MBR程序段。
     主引导代码实现下列功能: 
     1.扫描分区表查找活动分区;
     2.寻找活动分区的起始扇区;
     3.将活动分区的引导扇区读到内存;
     4.执行引导扇区的运行代码。

如果主引导代码未完成这些功能,系统显示下列错误信息:
Invalid partition table
Error loading operating system
Missing operating system

      三、硬盘分区表DPT是从偏移01BEH开始到偏移01FDH结束的64字节;硬盘分区表分为四小部分,每一小部分表示一个分区的信息,占16字节。在这里我们可以看出,硬盘的总分区数*(主分区+扩展分区)为什么不能大于4。扩展分区数不得大于1,当前活动分区数必须小于等于 1。这里有下面几点需要注意:
     1.Windows系统默认情况下,一般都是只划分一个主分区给系统,剩余的部分全部划入扩展分区。如果存在多个主分区,那么除活动主分区外,其余分区均不可见。(2000/NT之后,在磁盘管理器中可见)
     2.在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。
     3.在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
     4.在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。如果硬盘太大则必须改用GPT

硬盘分区结构信息
偏移 长度(字节) 意义
00H 1 分区状态:00-->非活动分区;80--> 活动分区;
其它数值没有意义
01H 1 分区起始磁头号(HEAD),用到全部8位
02H 2 分区起始扇区号(SECTOR),占据02H的位0-5;
该分区的起始磁柱号(CYLINDER),占据
02H的位6-7和03H的全部8位
04H 1 文件系统标志位,如82--> Linux Native分区 83--> Linux Swap 分区
05H 1 分区结束磁头号(HEAD),用到全部8位
06H 2 分区结束扇区号(SECTOR),占据06H的位0-5;
该分区的起始磁柱号(CYLINDER),占据
06H的位6-7和07H的全部8位
08H 4 分区起始绝对扇区
0CH 4 分区总的扇区数

     四、主引导扇区的最后两个字节(偏移1FEH和偏移1FFH),其值为AA55H,如果这两个标志被修改(有些病毒就会修改这两个标志),则系统引导时将报告找不到有效的分区表。

     五、活动分区DBR
     DBR(Dos Boot Record)原意为DOS引导记录,通常位于磁盘0磁道1柱面1扇区(操作系统可以访问的第一个扇区),其逻辑扇区号为0。
     DBR分为两个部分:
     1) DOS引导程序
        DOS引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区根目录前两个文件是不是操作系统的引导文件(即IO.SYS和MSDOS.SYS),如果确定存在,就把它读入内存,并把控制权交给它。
    2) BPB(BIOS Parameter Block ,BIOS参数块)
        BPB用来描述本DOS分区的磁盘信息,它位于DBR偏移0BH处,共13字节。
        它的记录包括本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元的大小等重要参数。
        以上仅以DOS(FAT16)分区为例,目前DOS已如他日黄花,现在的引导程序已经被更新更先进的引导程序所代替,但不管怎样的引导程序,仍与DOS引导程序处于相同位置。
        所以现在的0磁道1柱面1扇区这个位置,准确地说不能叫作DBR,而应该改称为 OBR(OS Boot Record),即操作系统引导扇区, OBR(DBR)是高级格式化程序产生的,如FORMAT、PM、、DISKPART以及Windows的磁盘管理器等。

注:使用WinHex可以读取磁盘的引导扇区数据。

参考资料:
硬盘主引导扇区、分区表和分区引导扇区(MBR、DPT、DBR、BPB)详解(一):
http://hi.baidu.com/hell74111/blog/item/c604ca83128b0099f603a6cd.html/cmtid/6eee1267a74a5128ab184c19
主引导扇区:http://zh.wikipedia.org/zh-cn/主引导扇区
什么是MBR/DPT/DBR/BPB?:http://timjs.blog.hexun.com/28664122_d.html


from:

http://blog.csdn.net/lanxinju/article/details/5714124