一、初步应用——双分区恢复实例及分析
(一)、现场重现:
提示,切勿随意使用自己的硬盘进行试验,切记试验前保存重要数据。对于移动硬盘,损坏往往发生于硬盘传输
数据中断电。现在我将一个有问题的移动硬盘接到电脑上,在“计算机管理”-->“磁盘工具”中我们可以看到这个未被初
始化的磁盘显示为黑色(打开磁盘工具时它会提示你要初始化,不理它,点“取消”),在“计算机”中也找不到这个磁
盘。
(二)、手动修复:
(阅读有困难的朋友可以先读完第三节再回过头来看这一节,本节的另一个作用是让新手对Winhex界面有一个初步了解)
1、打开Winhex-->菜单栏-->选择“工具”-->打开磁盘(F9)-->选择要修复的硬盘,这里是HD2。
2、打开之后图中显示从0000H-->01ffH(16进制)之间的数据全部为0。
现在我从一个运转良好的硬盘分区表中将0000H-->01bdH之间的数据复制并粘贴到损坏硬盘的相应位置。
操作步骤为:在良好硬盘中拉选0000-->01bd之间的区块,被选中区块呈亮蓝色;复制选块;
接下来在损坏硬盘中拉选相应区域,将光标定位至0000;右键-->编辑-->粘贴板数据-->写入。将01fe,01ff填写
为55AA,到这里一定保存。
点击黄色区域的图标并转移至63号扇区菜单“视图”-->模板管理(Alt+F12)-->NTFS引导扇区。
打开如下图,并记录黄色方框内的两个中国最热的城市 数值(63和63777986)
63+63777986+1=63778050,跳转至63778050扇区。
稍微向下滚动一点,看到那个粉色框标识出的55AA了嘛?往前找到黄色框内的部分,显示为3F000000,将其
进行反向排列,变为0000003F于是3F(十六进制)=63(十进制)——我们称这个数为相对偏移量。
接下来跳转至63778050+63=63778113扇区,我们又发现了一个EB开头的扇区
再次选择菜单“视图”-->模板管理(Alt+F12)-->主引导记录NTFS引导扇区。打开如下图,同样记录一下黄色方
框中的数值(63和92518271)
跳转至0扇区。菜单“视图”-->模板管理(Alt+F12)-->主引导记录,
打开如下图。填上如图所示的几个数据:
至于为什么是这些数据,下节会提到。填写完之后千万别忘了保存哦~
好了,在设备管理器里禁用损坏硬盘再启用。再从磁盘管理里看看结果,嗯,一切复原
看,数据都在。
过程看上去有些复杂,其实熟练的话可以控制在5分钟之内,所以它并不难~下面就看看我做了些什么,以及那
些数据是怎么来的,做什么用的。
(三)、我做了什么?其实只有3步
上面所做的其实就是修复了硬盘的MBR(主引导分区记录),为什么MBR对于硬盘如此重要呢?看过我前面文章
的朋友应该知道分区表就是硬盘的名单:作为一个名单当然不是姓名的简单堆砌,名单也是有分类的,比如哪些人是
管理员,哪些人是学生等等~请先看一下刚才修复好的硬盘的MBR全图(注意其中用亮蓝色、黄色、绿色将512字节
的分区表分为了三个部分)
硬盘的MBR在启动时大约是起到下面的一个作用:
可见作为一个MBR,必须要有以下的三个部分:446字节的启动描述;64字节的分区描述(包括分区格式、分区
大小等参数);以及最后的55AA结束表示。于是,只要我们能按照一定格式和规律填写这些项目,我们就能自己制作
分区表了。对于恢复分区表,我们要做的就是下面的流程:
不难发现,这其中前面的446字节的引导文件和最后添加的“55AA”标识都是ctrl+c然后ctrl+v的事情,因此修复
分区表的关键在于那64个字节的参数是如何寻找及填写的——好在我们利用Winhex自身提供的模板,再加上一点简
单的加法运算,就能非常轻松地获得这些参数。如下图,其实需要填写的参数不过8个,而且都非常有规律性:(该图
很重要,它显示了那些参数是如何得来的)
上文的(3)(4)两步正是我在计算参数所在的位置,而一旦我定位准确,就调用对应的模板去查看参数,随后在
(5)里填写参数(别忘了NTFS+1的问题)
至于第一行活动分区:80表示可以从这个分区启动,00表示不从这个分区启动(这个参数决定电脑能否从该分区
引导,和446字节不同,如果没有那个446字节,硬盘都无法识别了)。一般装有系统的主分区需要填写80,其他的
00即可。而硬盘参数这一栏:Fat32的代码是0B,NTFS是07,扩展分区是0F~~这些边边角角都很简单,这里就不
多说了~至此,分区表修复工作大功告成~~
(四)、小结
恢复原理:硬盘上的文件是链式的,可以顺藤摸瓜。此外,硬盘损坏的往往是MBR,后面各分区的虚拟MBR都
完好无损,可以通过计算后面各分区的参数,逆向推出MBR的参数,从而实现硬盘的修复。
大致步骤:填写446字节引导文件-->填写64字节分区参数-->55AA结束标志-->别忘保存
所需参数:活动分区与否(80);分区类型参数(0B,07,0F等);各扇区大小——共计8个参数,其他参数不知道
如何填写就留空。
所需时间:非常熟练的话,5分钟。
风险:因为只是对MBR这512个字节进行操作,所以即使失败,大不了重来,火字开头的成语 对硬盘上其他数据没有任何损害。
建议将这512字节另存为一个文件,以后遇到MBR损坏的事件只要把备份COPY回去就是了~
二、分区表修复进阶——多分区的计算
(一)、一主分区,三逻辑分区情况下的计算
前面提到过硬盘上的分区结构是链式的,又由于MBR之后的各分区表往往保存完好,就可以利用后面的各分区
MBR来逆向推导MBR的参数~请看下面的分区链式图:
在双分区的实例中,填写的参数可表示为:C盘占用扇区+D盘之前的扇区+D盘占用扇区。由于多个逻辑分区的
总和算一个扩展分区(不知道什么是扩展分区和逻辑分区的可以看看我前面的那篇文章),于是多分区的参数无非是:
C盘占用扇区+扩展分区前的扇区+(逻辑分区D+逻辑分区E+……),总国际品牌化妆品排名 体来讲还是3大鸡蛋玉米饼 块。
由于分区软件的不同,分区前的保留扇区可能有所不同~比如下图的这块硬盘,采用了diskpart进行分区,分区前
的保留扇区达到了2048个而不是常见的63个。
记录C盘占用的扇区数为79871999。由于这是在NTFS模板中查看的信息,所以在做跳转时需要+1,即跳转到
2048+79871999+1=79874048扇区。
由于这是一个“虚拟MBR”,它仍然拥有部分MBR特征,所以我们可以调用“主分区引导模板”来查看这个分区的
信息。可以看到这里的分区信息有两项,相对于上一个实例多了一个“05”分区表示标识,不过这个05标识我们先不用
管它。直接看第一项的两个参数为2048、167772160。
接下来跳转至79874048+2048+167772160=247648256扇区(由于这是在“主引导记录”模板里查看的,所以不需要
+1),并调用“主引导扇区”模板查看E盘的信息。
记录两个数值为2048、167772160,注意这个分区仍然有“05”标识。向下跳转到
247648256+2048+167772160=415422464扇区。
到这里,分区信息当中只有一项而没有“05”标识,于是可判定这就是整个扩展分区中的最后一个分区。记录其信
息2048、209715200。
如果觉得混乱,不妨列出下面这样一个表:
由上面的数据不难算出扩展分区的总扇区数为:(2048+167772160)+(2048+167772160)+(2048+209715200)
=545265664。C盘主分区的参数为:保留分区2048,C盘本身占用79872000,于是扩展分区之前的总分区数为
2048+79872000=79874048。最后需要填写的参数:
注意这个硬盘装有系统,于是第一分区表项填为80,分区格式代码为07(NTFS);第二分区不作为引导区,为00,
由于是扩展分区,分区格式代码为0F(扩展分区)。其他参数上面皆已算出,直接填入即可。此外由于现在硬盘容量
很大,原来的“开始头、扇区、柱面”这几个参数已经不足以表达如此大的数字,所以如果不知道这几个数字如何填写
就放在那不去管它,默认为00。
另一方面,本例不同于前例。前例由于制图需要,是挨个通过MBR或虚拟MBR寻找NTFS引导扇区小孩止咳的方法 的位置并调
用NTFS模板查看分区信息;而本例中除了在第一分区调用了NTFS模板以寻找扩展分区起始位置以外,其他的分区
只在虚拟MBR中调用了“主引导记录”模板。熟练之后可以多采用后面一种方式以节省时间。
(二)、“05”标识是怎么回事?
由于虚拟MBR一般不会被破坏,所以多分区计算中,我们不去管那个“05”标识也可以完成参数的计算。不过考虑
到喜欢刨根问底的一部分朋友的需要,这里补充一个小节用于讲解MBR或虚拟MBR中分区参数的精细结构。
首先要更正一下虚拟MBR的说法:为了能在硬盘上分出多于4个分区,我们引入了扩展分区的概念,N个扩展分
区的分区表的信息组合起来成为MBR中的扩展分区项。这种特殊的分区表结构在本节中将不再被称为“虚拟MBR”,
而采用EBR(ExtendedBootRecord也称作扩展MBR)进行代替。
以上面320G硬盘的分区表为例,该硬盘中存在一个主分区和一个扩展分区,而这个扩展分区下面包含三个逻辑分
区。而仅从MBR来看,其中仅包含了C盘的信息和整个扩展分区的信息,那么,电脑如何判断扩展分区里的每个逻
辑分区有多大?每个逻辑分区各处于扩展分区的什么位置?很显然,仅凭整体的扩展分区信息不能回答上述问题,所
以EBR担负着两个任务:一是描述该分区本身的大小、格式、保留空间等信息(这一点和MBR很类似);二是,在扩
展分区内部“划清界限”,即描述自身和其他逻辑分区的位置关系。前者的代码采用对应的分区格式代码(如0B,07等,
但是没有0F,0F是“整体扩展分区”的参数,不是逻辑盘的参数);后者采用“05”这个特殊标识用以“表明身份”。
如果用图示来表示“05”标识的作用,基本上就是下面这个样子:
可以推断,如果还有G盘的话,那么F盘的05标识项就是:前者表示D+E+F盘大小,后者表示G盘大小,而G
盘就没有05标识了。至此,逻辑分区在扩展分区内的定位问题得到完美解决。
最后补充一张图用以说明16个字节的分区参数含义(64字节表示4个分区,故每个分区占用16个字节)
(三)、小结
在修复过程中建议利用表格使分区链表变得清晰。
主引导记录模板中的分区不需要加减,从NTFS模板移动至主引导记录中需要+1。
05标识用于扩展分区内部的逻辑分区的定位。
起始磁盘头等信息现在基本停用。占用扇区数最多为FFFFFFFF,每个扇区占用512个字节,计算下来每个分区
最大容量qq怎么恢复好友 为2047G。如果某日硬盘的分区容量大于这个值,那么分区表的计算方式将改写,比如可能把保留分区的4
字节让一个给扇区数,那么单分区的最大容量将变为523776G,我想暂时是够用了……三.总结及写在后面
总体来讲整个恢复过程就是三大步:446字节引导文件、64字节硬盘分区参数、55AA结束标识,其中以64字节
的硬盘分区参数最为关键。可以说全文最为精华的部分在于第二章和第三章中那两张扇区和参数的对应关系图,望大围棋口诀
家在这两张图上多一些耐心。幸而这些参数通过一点加法运算和现成的模板是非常容易获得的,整个恢复步骤不会超
过10分钟,而精确性和安全系数都是非常高的。
希望本文能帮助新手对分区表有进一步的了解,同时也希望本文能帮助到有一定动手能力的朋友。同时还是要提
醒大家,如果可能的话还是保存一份硬盘的MBR,这样但凡遇到主分区表问题的时候也能快速复原。此外,Winhex
除了恢复硬盘的分区表之外,也可七夕民俗 用于恢复U盘的分区表,只要U盘的分区格式是Fat32的,其恢复过程完全和上面
一样。Winhex也可用于格式化之后的数据恢复以及误删文件的恢复,此外还有诸多更加强大的功能,限于篇幅,这里
就不一一赘述了。
本文发布于:2023-03-16 14:24:50,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678947891277355.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:分区表修复.doc
本文 PDF 下载地址:分区表修复.pdf
留言与评论(共有 0 条评论) |