现在的位置: 首页 > 技术文章 > 正文

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

2013年12月10日 技术文章 ⁄ 共 2413字 ⁄ 字号 主引导扇区(MBR),分区表(DPT)及活动分区(DBR)已关闭评论 ⁄ 阅读 2,967 次

主引导扇区:硬盘的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结构

MBR结构

、硬盘的主引导程序代码是从偏移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可以读取磁盘的引导扇区数据。

×