无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4825|回复: 15
打印 上一主题 下一主题

[原创] MBR分区常规概念的一般解释

[复制链接]
跳转到指定楼层
1#
发表于 2016-3-7 20:54:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ypjbliop 于 2016-3-8 08:22 编辑

◇主引导扇区(MBR)和DPT:

位于硬盘首扇(0,0,1),唯一且位置不能改变,属于默认的隐藏扇区(一般为63个,其数量可变动)首扇。本扇区的前面主要保存MBR(硬盘的引导记录),本扇区的后面还附有DPT(硬盘主分区表)。

在本扇区结构正常下重写MBR(Fdisk/MBR),不会破坏DPT,若55AA标志错误,则全部重写(DPT会被清除)。为保护分区表(DPT)数据,需要先修复55AA标志,才能进行此操作。


◇虚拟MBR(EBR)和EPT:

EBR(Extended MBR),相当于各扩展逻辑分区的MBR,也就是大家一般认为的分区表扇区。它位于各逻辑分区之首,即默认的隐藏扇区(其数量可改动)首扇(X柱,0磁,1扇)。但如果分区进行了“4K对齐”,其磁头和扇区的位置就不再固定。

EBR与MBR不同的是,它没有引导部分,只有分区表(EPT)。EPT与DPT结构和位置一样,都有四个分区项,共64字节,每项各16字节,后两项常不用;都自01BEH开始,到55AA终止。


◇分区引导扇区(PBR):

即DBR或OBR(属系统盘的PBR),和EBR( Extended Boot Record,属非系统盘的PBR),一般位于隐藏扇区后的(X,1,1)。但分区在“4K对齐”后,其磁头和扇区的位置就不再固定。为各分区的逻辑零扇,或DOS零扇区(OS可直接访问的第一个扇区)。除分区相关数据不同外,系统盘的PBR引导代码,也是不同于非系统盘的PBR。

PBR起引导系统或分区的作用,扇区开头常带有FAT32、NTFS之类的字符串,扇区的末尾,也有55AA结束标志。

对于分区来讲,PBR所包含的分区信息,比分区表中的更完整和重要。

分区表如果丢失,若PBR或其备份还在的话,是完全可以根据PBR中的内容,以及PBR与分区表的默认间距,以此来手工重建分区表,最终达到恢复分区的目的。

PBR大小(保留扇区即reserved sector数量):

FAT16:PBR保留扇区,默认为1扇。后面直接跟FAT1表。
FAT32:PBR保留扇区为32个,实际只用逻辑0扇区一个。
NTFS:PBR保留扇区为16个(为$Boot文件占据),默认为1扇(逻辑0扇)。

PBR备份和恢复:

FAT32分区的DOS逻辑扇区6,为格式化产生的PBR的备份。
NTFS在其分区最后一扇上,备份了PBR。PBR中标明的分区扇区数,与分区表中的相比要少一个扇区(PBR中不计算此备份扇区)。
恢复时,只需将备份扇区的内容复制到PBR位置即可。
在0柱0磁2扇(MBR的下一扇区),可以备份MBR。当MBR出错时,把它复制、粘贴到MBR扇区,可以恢复原来的MBR。PBR(DBR)前的空白隐藏扇区,都可以用来备份或存文件。


◇55AA标志:

引导扇区或分区表扇区的最末,都有55AA结束标志。

在WinHex中进行55AA的十六进制搜索,可筛选出分区表扇区和引导扇区。方法:打开相应磁盘,搜索16进制值:55AA,偏移:512=510(55AA为扇区的最后两字节)。


◇分区的数据结构:

FAT分区的数据结构,一般包括:PBR及其备份,FAT,DIR和DATA(只是用户数据)。

NTFS分区的数据结构,一般包括:PBR及其备份,MFT及其备份,DATA(包含系统文件)。


◇MBR、EBR和PBR小结:

MBR或EBR扇区,包括一个引导部分(EBR中已省略)和一个分区表(DPT或EPT),在分区建立时,就已产生。与之配合的PBR(DBR或OBR、EBR),它是在分区高级格式化后产生的。
它们都起引导(系统或分区)作用,都以55AA终止。



评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

2#
 楼主| 发表于 2016-3-7 20:59:46 | 只看该作者
本帖最后由 ypjbliop 于 2016-3-8 08:23 编辑

MBR硬盘的启动:

BIOS启动后,读取硬盘MBR,将控制权交出,由MBR寻找活动的分区,由分区的BOOTLOAD引导加载OS启动。

启动顺序为:BIOS →MBR →DPT →DBR →OS files。

具体过程如下:

1.开机,BIOS加电自检(POST)。

2硬盘启动,读取硬盘固件程序(不能读取,或机器自检缓慢,显示”Detecting IDE drives…”,则硬盘不被BIOS识别)。

3.将MBR读入内存,检查此扇区的55AA标志(若没有,则尝试其它启动介质。没有其它启动介质,则显示“No ROM BASIC”,然后死机,表示BIOS没有找到启动扇区,只能运行ROM BASIC程序,但现在的兼容机基本上没有了此程序,就会出现此提示)。

4.然后,BIOS把启动过程交由MBR中的引导程序控制。

5.MBR在DPT中搜索80标志,寻找到活动分区(如果发现没有活动分区或有不止一个活动分区,则转为停止,出现“Invalid Partition Table”的提示)。
注:当MBR扇区没有55AA或80标志时,现在提示的可能是:“Reboot and Select proper Boot dcvice or Insert Boot Media in selected Boot device and press a key ”。

6.将DBR读入内存,检查此扇区的55AA标志(没有则显示“Missing Operating System”,然后停止,或尝试软盘启动;有的则只是光标不停闪烁,表示错误,进入无穷循环)。

7. 寻找C盘根目录下ntldr(XP)/bootmgr(win7 win8 Vista)/grldr(Grub)/btldr.mbr(Boot Link)/ ghldr(一键Ghost)等可用于引导的程序,启动系统。


win7的启动过程概括为:BIOS →MBR →DPT →PBR →bootmgr →BCD →Winload.exe →内核加载 →整个win7系统。

       win7找到bootmgr后, bootmgr就读取\Boot\BCD(Boot Configuration Data)文件(相当于xp下的boot.ini)。选择启动Win7(有多个系统情况下)后,bootmgr就会去启动盘寻找WINDOWS\system32\winload.exe,让winload.exe加载win7内核,从而启动整个win7系统。



回复

使用道具 举报

3#
 楼主| 发表于 2016-3-7 21:13:35 | 只看该作者
本帖最后由 ypjbliop 于 2016-3-14 09:37 编辑

分区表链接:

分区表链接可以表示为(假设D盘为第一扩展分区):
主分区表(DPT,C盘分区表) ——  第一扩展分区表(EPT1,D盘分区表) ——  第二扩展分区表(EPT2,E盘分区表) ——  第三扩展分区表(EPT3,F盘分区表)……

分区表的大致结构:
第一分区项:保存本分区的DOS分区数据,用于读取本分区。
第二分区项:保存下分区含隐藏扇区的分区数据,与下分区的第一分区项相应。

硬盘的分区类型有主分区和扩展分区,分区表类型有DPT和EPT。

主分区项和扩展分区项:
综合起来看,两分区项的DPT和EPT的结构和作用完全一样。一般的情况下,我们都可以把它们的第一分区项视为主分区的分区项,而把第二分区项看成是扩展分区的分区项。
第一分区项,一般直接为系统所用;第二分区项,为系统寻找下一分区所用;而分区表所在的隐藏扇区,则为衔接上下分区而存在。

2016-03-07_211216.png (139.83 KB, 下载次数: 108)

2016-03-07_211216.png
回复

使用道具 举报

4#
 楼主| 发表于 2016-3-7 21:21:45 | 只看该作者
分区表链接的简单示意图:

分区表.jpg (62.48 KB, 下载次数: 91)

分区表.jpg
回复

使用道具 举报

5#
 楼主| 发表于 2016-3-7 21:25:47 | 只看该作者

分区表的定位:

第二分区项的9-12字节,是分区表定位的关键,它标明了各EPT的相对扇区地址。

根据下图可以得出:
EPT1的LBA绝对地址=DPT的第二表项9-12字节的十进制数。
EPT2的LBA绝对地址=上一分区表第二表项9-12字节的十进制数 + DPT的第二表项9-12字节的十进制数。
EPT3的LBA绝对地址=上一分区表第二表项9-12字节的十进制数 + DPT的第二表项9-12字节的十进制数。
……
以扩展主分区表(EPT1)作标杆,可以方便的找到各逻辑分区表所在扇区地址。

用分区表LAB绝对地址号+63,一般即可找到该分区的DOS首扇(分区间无空闲扇区下)。
各分区尾扇,一般也可用后一分区表LBA绝对地址号-1找到(分区间无空闲扇区下)。

2016-03-07_212317.png (6.08 KB, 下载次数: 80)

2016-03-07_212317.png
回复

使用道具 举报

6#
 楼主| 发表于 2016-3-8 08:19:07 | 只看该作者
本帖最后由 ypjbliop 于 2016-3-8 08:55 编辑

      
      DPT保存了所有主分区(含扩展分区)的分区参数,主分区(包括C分区)都没有单独分区表。所有主分区(扩展分区除外)的分区项,都与活动分区(不一定是C:)的分区项含义一样。因为这些主分区,只需要在DPT中有一个分区项即可,DPT中扩展分区的分区项才是链接下分区的。

      假如有更多的主分区,其分区项的9-12字节数,含义是同活动分区项(如上面的3F 00 00 00处)的,是DPT与此主分区启动扇区DBR(而不是分区表)的间隔值(此DBR的LBA绝对地址),是此主分区前含隐藏扇区和未分区扇区的扇区总数。


分区的一般使用原则:

•DPT中,主分区和扩展分区的分区项排列顺序,与它们在硬盘中的物理顺序是一样的。

•DPT中,C盘一定占据第一个分区项,但C盘不一定是活动分区或主分区。C盘也可作为扩展分区,那样的话,除第一分区项(含义同扩展分区项)外,C盘还会有单独的EPT1。

•硬盘可以没有或只有扩展分区(所有扩展逻辑分区必须是前后连在一起的)。

•只有主分区(位置可在扩展分区的前后)才能作为活动分区,才能启动系统。无活动分区的话,硬盘上的系统都不能启动。硬盘的主分区,可以都不设为活动分区。

•活动主分区上不必一定要有系统,但必须有引导文件,各逻辑分区上可以安装多个系统。

一键还原精灵所产生的隐藏主分区,位于硬盘最后位置。想把它变成逻辑分区,一般的格式化可能无能为力。这时,只须将它在DPT中相应的分区项删除,再格式化即可。



回复

使用道具 举报

7#
 楼主| 发表于 2016-3-8 08:29:27 | 只看该作者
本帖最后由 ypjbliop 于 2016-3-8 08:31 编辑


隐藏扇区(Hidden Sector):

硬盘上有几块空间,是被默认隐藏的:即硬盘最前面和每个逻辑分区前面。每块一般为63扇(下图绿色所示)。其首扇都保存有一个分区表,Windows系统不能读写。

除硬盘最前必须有默认的隐藏扇区外,不管位置如何,非逻辑分区(其他主分区)前都没有默认隐藏扇区。

因为采用“4K对齐”技术(高级格式化时,将硬盘扇区对齐到8的整数倍个扇区),分区前
默认的隐藏扇区数量,也可以是64扇、2048扇(1M)或4096扇(2M)等。

2016-03-08_082748.png (21.58 KB, 下载次数: 92)

2016-03-08_082748.png
回复

使用道具 举报

8#
 楼主| 发表于 2016-3-8 08:35:54 | 只看该作者
本帖最后由 ypjbliop 于 2016-3-8 08:40 编辑

分区的转换:

主分区转逻辑分区:单个的主分区大都可以转换为逻辑分区。有多个(两个或三个)连续的主分区,一般则只有与扩展分区相邻的主分区才可以转换。

分区转换时,改不改变分区的起始位置,对转换成功与否很关键。在转换时能自由改变分区的起始位置的分区软件,则很容易成功转换。

但DiskGenius在默认下,被转换主分区是不改变分区起止位置的。那么,用DiskGenius转换,主分区前有没有未分区扇区或隐藏扇区(如C盘前面),则成为了转换的关键。
因为与扩展分区相邻的主分区(无默认隐藏扇区)前面若没有未分区扇区,要转换为逻辑分区,则缺少形成默认隐藏扇区(63扇)的空间,新的EPT不能产生,所以就不能转换。
比如,按柱面分区的主分区的DOS首扇是(X,0,1),而它的前一主分区的尾扇为(X 254 63),是首尾相接的,中间就没有未分区扇区。

用DiskGenius进行转换,主分区是否进行过“4K对齐”,对转换的影响也很大。

进行过“4K对齐”的多个连续主分区(包括逻辑分区)间,大多是没有未分区的扇区的(同按柱面的分区方法一样)。只不过与非“4K对齐”的分区间,有可能存在一些未分区的扇区。


逻辑分区转主分区:第一个逻辑分区和最后一个逻辑分区,可以直接转换为主分区。

在普通使用中,逻辑分区数是不会遭遇限制的,而主分区(含扩展分区)数则不能超过四个,否则会提示不能保存分区表,并要求删除某些主分区,才能保存分区表。


回复

使用道具 举报

9#
发表于 2016-3-8 11:09:24 | 只看该作者
感謝分享這麼有用的知識!
回复

使用道具 举报

10#
发表于 2016-3-8 17:25:46 | 只看该作者
支持!

论坛还是比较缺乏这种原理和知识性的帖子, 虽然在网上或许都能搜索到, 但作为专业的论坛,这方面的归纳和总结觉得还是必要的。论坛操作性的教程太多,理论和知识型的东西少了些,有些操作会让初学者摸不着头脑,丧失了进一步学习的兴趣
回复

使用道具 举报

11#
发表于 2016-3-8 19:42:09 | 只看该作者
楼主对硬盘分区结构看来有一定的研究~
回复

使用道具 举报

12#
发表于 2016-3-8 22:28:31 来自手机 | 只看该作者
很好很详细,LZ再来个gPt
回复

使用道具 举报

13#
 楼主| 发表于 2016-3-9 07:03:45 来自手机 | 只看该作者
本帖最后由 ypjbliop 于 2016-3-9 21:53 编辑

可以的
回复

使用道具 举报

14#
 楼主| 发表于 2016-3-9 21:44:17 | 只看该作者

DPT详解:

2016-03-09_213948.png (160.62 KB, 下载次数: 79)

2016-03-09_213948.png

2016-03-09_214010.png (22.57 KB, 下载次数: 74)

2016-03-09_214010.png

2016-03-09_214050.png (23.18 KB, 下载次数: 84)

2016-03-09_214050.png

2016-03-09_214135.png (29.51 KB, 下载次数: 70)

2016-03-09_214135.png
回复

使用道具 举报

15#
 楼主| 发表于 2016-3-9 21:47:17 | 只看该作者

D盘分区表含义:
00 01 C1 FF 07 FE FF FF 3F 00 00 00 60 0F 40 11
00 00 C1 FF 0F FE FF FF 9F 0F 40 11 F3 43 C0 08  … 55AA
解释如下:
① 两分区项开头的00,表示D、E盘都不是活动分区。
② 两分区项的2-4字节(01 C1 FF),D盘逻辑零扇和E盘隐藏扇区首扇,此数无意义。
③ 两分区项第5字节(07和0F),分区类型,D为NTFS,E是WIN95扩展区(大于8GB)。
④ 两分区项的6-8字节(FE FF FF),是两盘尾扇的CHS地址,此数无意义。
⑤ 两分区项的9-12字节(紫色标注),前项为D盘EPT同D盘EBR的间隔数(为63扇),后项为E盘EPT同D盘EPT(第一扩展分区表)的间隔数(为289410975扇)。
⑥ 两分区项的13-16字节(深绿标注),前项为D盘DOS扇区数(为289410912扇),后项为E盘扇区总数(为146818035扇)。
第二扩展分区表(EPT2,此处即E盘分区表,参见上图),结构、含义和作用与D盘分区表相同,其上链D表,下链F表。之后的扩展(逻辑)分区表,均与此相似。

2016-03-09_214626.png (207.69 KB, 下载次数: 93)

2016-03-09_214626.png

2016-03-09_214446.png (10.42 KB, 下载次数: 89)

2016-03-09_214446.png
回复

使用道具 举报

16#
 楼主| 发表于 2016-3-9 21:52:40 | 只看该作者

分区表的寻找实例:

2016-03-09_214818.png (336.65 KB, 下载次数: 91)

2016-03-09_214818.png

2016-03-09_214848.png (188.61 KB, 下载次数: 79)

2016-03-09_214848.png

2016-03-09_214906.png (199.53 KB, 下载次数: 81)

2016-03-09_214906.png

2016-03-09_214929.png (188.99 KB, 下载次数: 106)

2016-03-09_214929.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-24 12:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表