主分区/扩展分区/逻辑分区MBR和DBR

从网上整理的知识,在这里汇总一下,具体的来源网页恕不写出。


MBR(master boot record)
即主引导记录,有时也称主引导扇区。位于整个硬盘的 0 扇区(硬盘的 0~62 即前 63 个扇区为保留扇区,目前只有 MBR 占用其中的第一个或前几个扇区),可以看作是硬盘的第一个扇区,通常只占用这一个扇区,如 XP 的 MBR,grub4dos占用 0~17 共 18 个扇区

DBR(DOS boot record)
即操作系统引导记录区,也称分区的主启动代码,位于分区的第 0 扇区,通常只占用这一个扇区,特殊情况也要占用其它保留扇区,而 grub4dos 如果是写入硬盘 MBR 方式则不修改也不使用 DBR

结构
MBR( Master Boot Record )主引导记录包含两部分的内容,前446字节为启动代码及数据,而
从446(0x1BE)开始则是分区表,分区表由四个分区项组成,每个分区项数据为16字节,记录了
启动时需要的分区参数。

DBR扇区的结构
经由FORMAT高级格式化写到该扇区的内容为称为DOS的引导记录(DBR),其主要功能是完成DOS系统的自举。
以FAT16的硬盘DBR为例,它由以下5个部分组成:

·跳转指令。占用3个字节的跳转指令将跳至引导代码,其内容随DOS版本而变化。

·厂商标识和DOS版本号。该部分总共占用8个字节,其内容随DOS的版本而不同。·BPB(BIOS Parameter Block,BIOS参数块)。BPB从第12(0BH)字节起占用19个字节,各字节内容及地址分配如上面图表所示。在该部分记录了磁盘的扇区字节数、磁头数等重要信息。该部分的内容随磁盘类型的不同而不一样。
·DOS引导程序。DOS引导程序即占用480字节的BOOT代码,负责完成DOS的3个系统文件的装入工作。这部分内容随DOS版本不同而变化。
·结束标志字。结束标志占用2个字节,其值为AA55。
以上5个部分共占用512个字节,也正好是一个扇区,因此称它为DOS引导扇区或BOOT区。在该区间的内容中,除了第5部分结束标志字是固定不变之外,其余4个部分都是不确定的。第1、2、4部分都因DOS版本的不同而不同,第3部分BPB信息的内容也将随DOS的版本及时间的变化而变化。



硬盘分区表(DPT)项结构(16字节)
====================================================================================
01     typedef struct _PARTITION_ENTRY
02     {
03       UCHAR BootIndicator  // 活动标志,00表示非活动分区;80表示活动分区;其他为无效分区
04       UCHAR StartHead   // 该分区起始磁头号
05       UCHAR StartSector  // 起始柱面号高2位:6位起始扇区号
06       UCHAR StartCylinder  // 起始柱面号低8位
07       UCHAR PartitionType  // 分区类型
08       UCHAR EndHead   // 该分区终止磁头号
09       UCHAR EndSector   // 终止柱面号高2位:6位终止扇区号
10       UCHAR EndCylinder  // 终止柱面号低8位
11       ULONG StartLBA   // 起始扇区号
12       ULONG TotalSector  // 分区尺寸(总扇区数)
13     }PARTITION_ENTRY,*PPARTITION_ENTRY
DPT 总共64字节(01BE--01FD), 如上所示每个分区占16个字节, 所以可以表示四个分区, 这也就是为什么一个磁盘的主分区和扩展分区之和总共只能有四个的原因.

MBR分区结构
================
  000H--08AH MBR启动程序(寻找开机分区)
  08BH--0D9H MBR启动字符串
  0DAH--1BCH 保留( "0 ")
  0x1BE(446)--1FDH 硬盘分区表
  1FEH--1FFH 结束标志(55AA)

启动
在CPU上电之后,若由硬盘启动,则BIOS将硬盘的主引导记录(位于0柱面、0磁道、1扇区)读
入7C00处,然后将控制权交给主引导代码。主引导代码的任务包括:
(1) 在主分区表中搜索标志为活动的分区. 如果发现没有活动分区或有不止一个活动分区, 则转停止. 
(2)将活动分区的第一个扇区读入内存地址 0000 : 7C00 处,
(3) 检查(WORD) 0000 : 7DFE是否等于0xAA55,若不等于则显示"Missing Operating System"然后停止,或尝试软盘启动
(4) 将控制权交给引导扇区代码
启动程序,之后MBR将cpu控制权交给DBR,所以DBR的第1个扇区的前3个字节必须对应x86的跳转指令”E8 58 90”,该指令负责跳过接下来的几个不可执行的字节(BPB和扩展BPB),跳到操作系统引导代码部分。
DBR位于当前分区的起始扇区,比如c盘的第1个起始扇区地址,就是c盘对应的DRB区,

主分区/扩展分区/逻辑分区
主分区 中不能再划分其他类型的分区,因此每个主分区都相当于一个 逻辑磁盘
1.扩展分区不能直接使用,必须分成若干逻辑分区。所有的逻辑分区都是扩展分区的一部分。
 2.一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。  
3.主分区和扩展分区的信息位于MBR硬盘分区表(DPT)中, 而逻辑驱动器的信息则位于扩展分区的起始扇区。
3. 分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,剩下的部分就浪费了。
4. 由主分区和逻辑分区构成的 逻辑磁盘 称为 驱动器(Drive) 卷(Volume)
5. 活动分区是在系统加电后具有自举(引导系统)能力的分区,在活动分区上的主引导记录中有一段主引导程序,每当系统启动后,这段程序被调入内存运行,以引导(启动)保存在硬盘上的操作系统。

自己的总结:
1.MBR中分区表存储的是主分区和扩展分区的信息,最多存储4个分区的信息。
2.扩展分区没法在”我的电脑“里看到,看到的只是主分区和逻辑分区。
3.扩展分区必须分为逻辑分区才能使用

你可能感兴趣的:(struct,dos,活动,存储,扩展,磁盘)