手工填写分区表
经过前面对分区表的和boot扇区的介绍,我们这一章来实战手工填写分区表。
 
如果一个硬盘第0扇区被清0(就是每个字节都填上00),或者被别的数据破坏(如病毒),导致分区表损坏,那么硬盘在磁盘管理器里看到的磁盘状态是“未初始化”或者“未分区”状态。如下图:
Runtime's DiskExplorer手工填写分区表_职场
“未初始化”状态
0扇区不符合MBR格式
Runtime's DiskExplorer手工填写分区表_数据恢复_02
“未分区”状态
0扇区符合MBR格式
但分区表项是空的
 
Runtime's DiskExplorer手工填写分区表_职场_03“未初始化”状态0扇区不符合MBR格式 Invalid Partition Table
Runtime's DiskExplorer手工填写分区表_手工_04“未分区”状态0扇区符合MBR格式但分区表项是空的 Valid Partition Table
 
需要注意的是,非windowsdos分区的硬盘(即UnixMACNovell、磁盘阵列上的硬盘等)挂接到windows平台在磁盘管理器中查看该硬盘状态通常是“未初始化”状态,会提示进行磁盘签名初始化,强烈建议不要初始化,一律取消。
 
在这里介绍一下windows平台下硬盘初始化操作:当用户点击磁盘管理器查看硬盘状态时,系统会检测每个硬盘0扇区是否符合MBR格式(0扇区前面466字节是否是正确的MBR格式以及后面两个字节是否市55 AA结束,这是FATNTFS分区特有的性质,别的分区类型不一定符合这种格式,Linux分区0扇区跟Windows 分区0扇区是一致的,挂接正常Linux分区的硬盘不会提示初始化)。如果检测到0扇区不符合Windows MBR格式的硬盘,系统就会弹出对话框,提示用户对该硬盘进行初始化。硬盘初始化的唯一更改就是把0扇区不符合Windows MBR格式改写成正常的MBR格式,其它地方不做任何更改。在硬盘初始化之前,Runtime's DiskExplorer 查看0扇区用分区表模式浏览显示“Invalid Partition Table”,说明这个不是一个合法的分区表格式。初始化完成以后用Runtime's DiskExplorer打开硬盘时自动显示分区表浏览模式,显示“Valid Partition Table”,这时候已经是一个正常的分区表格式,只不过4个分区表项显示Free状态,还没有写入任何分区信息。
 
 
学会应用Runtime's DiskExplorer搜索硬盘Boot扇区和分区表
点击Runtime's DiskExplorer程序上Tools菜单下的Search,或者按键盘快捷键“Ctrl+F”,Runtime's DiskExplorer会弹出搜索对话框,如下:
Runtime's DiskExplorer For Fat程序搜索框界面
Runtime's DiskExplorer手工填写分区表_手工_05
 
Runtime's DiskExplorer For NTFS程序搜索框界面
Runtime's DiskExplorer手工填写分区表_数据恢复_06
 
这两个版本搜索界面有一个共同搜索选项“Partition/Boot record”,这个选项具备搜索符合分区表和Boot扇区格式的硬盘扇区。它一般搜索到以55 AA为最后两个字节结尾的扇区,如果搜索到的扇区符合分区表格式的扇区,则结果显示视图模式为分区表显示模式,并且显示该扇区为Valid Partition Table。如果搜索到的扇区符合Boot扇区格式,则结果显示视图模式为Boot扇区显示模式,并且显示该扇区为Valid Boot Sector如果搜索到的扇区以 55 AA结尾,但是该扇区不符合分区表也不符合Boot扇区格式,那么结果显示为十六进制视图,这种结果一般我们不去理会,继续按快捷键“Ctrl+L”往下搜索,直到找到合法的分区表或Boot扇区为止。
 
学会应用Runtime's DiskExplorer更改分区表参数
1Runtime's DiskExplorer设置
我们第一次启用Runtime's DiskExplorer程序的时候,打开任何一个硬盘都只是只读模式,不可以进行任何磁盘编辑操作。我们需要点击Tools菜单下的Option项进入设置界面:(默认情况下选择Read only,我们建议选择Virtual write项,这个选项当你更改硬盘的任何字节后,点击Option界面的Runtime's DiskExplorer手工填写分区表_休闲_07图标或者导航栏上的Runtime's DiskExplorer手工填写分区表_职场_08,所有更改结果显保存到计算机内存上,当你退出Runtime's DiskExplorer程序时,程序提示你要不要把更改结果保存到硬盘上,这时候我们可以选择Yes or No。不建议选择Option界面的Direct read/write选项,选择这个选项后,编辑硬盘任何地方都直接生效,没有任何提示,也没有任何撤消方法。Direct read/write选项在某些操作上必需选择才能进行下去,比如把大的镜像文件写入硬盘,需要选择Direct read/write选项。)
Runtime's DiskExplorer手工填写分区表_手工_09
 
2Runtime's DiskExplorer扇区镜像和写入功能
在我们进行硬盘扇区更改之前,建议把要更改的扇区先备份出来,然后才进行编辑,以防万一需要原来的数据,我们还能找回来。
Runtime's DiskExplorer可以把硬盘上任何一个可读的扇区备份成一个文件,也可以把任何多个连续的扇区备份成一个文件,当然也可以把整个硬盘备份成一个文件,默认的文件后缀为.img
Runtime's DiskExplorer也可以把任何一个文件写入硬盘中。如果你从别的完好的硬盘上备份出0扇区数据保存成文件0.img,有一个硬盘0扇区数据损坏了,你可以用文件0.img写入坏硬盘的0扇区,用这个扇区为模板,然后根据需要更改相关数值就可以达到修复的目的。
下面我们来看具体操作:
首先我们进入十六进制浏览模式,用鼠标拖动选择要备份的扇区
Runtime's DiskExplorer手工填写分区表_数据恢复_10
然后选择菜单Edit下的Copy to file
Runtime's DiskExplorer手工填写分区表_职场_11
单击Copy to file
Runtime's DiskExplorer手工填写分区表_手工_12
填写备份生成的文件名称
 
如果我们要备份更多的扇区,我们用EditàSelect
Runtime's DiskExplorer手工填写分区表_职场_13
Runtime's DiskExplorer手工填写分区表_手工_14
可以填写起始扇区和结束扇区
如果要选择整个硬盘,选择Select All
 
用镜像文件写入硬盘
把视图模式改成十六进制浏览模式,我们用鼠标点击要写入扇区的第一个字节,如下:
Runtime's DiskExplorer手工填写分区表_休闲_15
然后点击EditàPaste from file
Runtime's DiskExplorer手工填写分区表_休闲_16
Runtime's DiskExplorer手工填写分区表_手工_17
点击Open,就完成了镜像文件0sector.img写入硬盘0扇区的操作。我们要使写入生效,关闭Runtime's DiskExplorer程序,出现提示:
Runtime's DiskExplorer手工填写分区表_手工_18
点击 Yes按钮,刚才的写入操作就生效了。
 
手工填写分区表
经过前面的学习,我们知道一个正常的硬盘有正常的分区表,每个分区有正常的Boot扇区。下面我们来学习一个很简单的例子,故障案例描述如下:
有一个客户有一块80GB的移动硬盘,分了4个分区,其中第一个分区是FAT32格式,还有3个分区是扩展分区上的逻辑分区。据客户描述说由于该移动硬盘在Winxp下没办法正常卸载USB设备,然后采取强行拔掉USB硬盘操作,发现下一次使用该硬盘时在我的电脑上看不见相应盘符了,在磁盘管理器里查看该硬盘显示未初始化状态。客户不敢初始化更不敢格式化,于是拿到专业数据恢复公司来进行数据恢复。
根据客户描述的现象,我们可以初步判断:该硬盘0扇区已经被破坏,分区表已经损坏,至于有没有其它问题,只能看了硬盘才知道。
恢复步骤如下:
1、  把硬盘接到计算机上,在磁盘管理器上看到该硬盘状态未初始化。客户说第一个分区是FAT32格式,那么我们选择Runtime's DiskExplorer For Fat程序打开该硬盘
磁盘管理器硬盘状态
Runtime's DiskExplorer手工填写分区表_手工_19
Runtime's DiskExplorer中该硬盘0扇区如下,整个0扇区每个字节都是00,当然是一个不合法的MBR格式的扇区。
Runtime's DiskExplorer手工填写分区表_手工_20
 
2、  恢复思路是:先搜索第一个分区的boot扇区,然后把0扇区改变成符合MBR格式的扇区,根据boot扇区信息把第一个分区的分区表填写回来,然后再找下一个分区。
通过Runtime's DiskExplorer程序上Tools菜单下的Search,选择Partition/Boot record”,点击OK进行搜索,很幸运,我们找到了第63扇区是boot扇区:Runtime's DiskExplorer手工填写分区表_手工_21
到这里我们可以得出这样的结论:第一个分区分区类型是FAT32boot扇区(起始扇区)是63扇区、分区大小是12948327 sec。有了这些信息,我们就可以把这个分区的分区表填回来。
3、构建分区表。因为我们看到0扇区是空的,每个字节都是00,所以我们不需要备份0扇区数据。我们现在要把它变成符合MBR格式的扇区,有两种方法:一种是在磁盘管理器中初始化这个硬盘,另一种是从我的系统硬盘中备份0扇区保存成一个镜像文件,然后用这个文件写入故障硬盘的0扇区(关于写入方法上面已经介绍)。现在我们采用第一种方法,因为它更简单!
Runtime's DiskExplorer手工填写分区表_手工_22
 
初始化完成以后,我们再打开Runtime's DiskExplorer For Fat程序看,显示如下:
Runtime's DiskExplorer手工填写分区表_数据恢复_23
故障硬盘已经变成合法的分区表扇区了。我们现在需要对第一个分区表项进行更改,把第一个分区表构造出来。我们知道第一个分区的信息为:FAT32格式、起始扇区是63、分区大小为12948327 sec
更改如下:
Sector             Partition table
x00000000      Valid Partition Table
0                      Entry                                                                           Starting                   Ending        Relative           Total
                        No      System                                      Boot   Cylinder Head    Sector   Cylinder Head    Sector   Start Sector    Sectors
                        1        Free(更改为FAT32              No      x000     x00       x00       x000     x00       x00       x00000000     x00000000
                                                                                              0           0           0           0           0           0           0(更改为630更改为12948327
                        2        Free                                           No      x000     x00       x00       x000     x00       x00       x00000000     x00000000
                                                                                              0           0           0           0           0           0           0                     0
                        3        Free                                           No      x000     x00       x00       x000     x00       x00       x00000000     x00000000
                                                                                              0           0           0           0           0           0           0                     0
                        4        Free                                           No      x000     x00       x00       x000     x00       x00       x00000000     x00000000
                                                                                              0           0           0           0           0           0           0                     0
Runtime's DiskExplorer手工填写分区表_休闲_24
更改的方法是这样:先把鼠标点击一次要更改参数的位置,然后再点击一次,就可以更改相关数值和选择相关列表项目。
 
更改以后分区表如下:
Runtime's DiskExplorer手工填写分区表_休闲_25
改完以后我们保存退出Runtime's DiskExplorer For Fat程序,卸载掉USB硬盘设备(分区表更改以后需要重新启动计算机才能在计算机上生效并且看到盘符,USB硬盘只要拔下来再接到计算机即可),然后再接到计算机上,我们看看磁盘管理器:
Runtime's DiskExplorer手工填写分区表_数据恢复_26
我们看到,故障硬盘第一个分区分配了G盘符,我们打开G盘也看到客户相关数据。这说明我们第一个分区的恢复方法是正确的,如果你是第一次学习实践到这一步,你应该为自己庆祝一下,这个可是你第一次手工填写分区表并且成功了。
 
到了这里只是成功的第一步,后面3个分区我们还没找到呢。我们查找第二个分区的思路是这样:第一个分区的结尾附近就应该是第二个分区的起始位置,第一个分区的结尾可以计算为:第一个分区起始点+第一个分区大小即 63+12948327=12948390 sec我们用Runtime's DiskExplorer For Fat程序定位到12948390 sec
Runtime's DiskExplorer手工填写分区表_手工_27
可以定位到硬盘的任何一个扇区
Runtime's DiskExplorer手工填写分区表_手工_28
 
到达第12948390 sec如下图,这个扇区居然是一个合法的分区表,凭感觉,这是硬盘扩展分区的第一个逻辑分区的分区表。
Runtime's DiskExplorer手工填写分区表_数据恢复_29
我们先假设后面的3个分区都是扩展分区里的3个逻辑分区,那么扩展分区的大小应该是 硬盘总大小—(第一个分区大小+第一个分区起始点)
根据Runtime's DiskExplorer For Fat程序显示如下信息,我们知道硬盘总大小是156301488 sec,由此我们假设扩展分区的大小:15630148812948390=143353098 sec
Runtime's DiskExplorer手工填写分区表_职场_30
 
我们在0扇区构造出如下扩展分区表
Runtime's DiskExplorer手工填写分区表_职场_31
 
把移动硬盘卸载后重新接入计算机,看看磁盘管理器:
Runtime's DiskExplorer手工填写分区表_数据恢复_32
其余3个分区都正常了!除了第一个分区,我们只填写一个扩展分区表,其余3个分区都正常了,因为扩展分区里头的逻辑分区分区表是一条链,如果只是0扇区被破坏而后面的信息没有被更改或破坏,只要我们找出扩展分区的第一个逻辑分区信息,其余的逻辑分区都会一个接一个的找到。如果还不明白,请看前面介绍的主分区、扩展分区、逻辑分区的相关知识。
 
到这里,我们手工恢复分区表的基本操作全部介绍完成。
 
 
恢复分区表的基本思路是:先找到boot扇区,然后确定该分区类型、起始扇区、分区大小这三个参数,把这3个参数填写到0扇区的分区表就可以了。
不管是主分区还是逻辑分区,我们只要找到它的Boot扇区,就可以把这个分区表填写成主分区表。就像上面的3个逻辑分区,只要我们找到每个分区的boot扇区,我们还可以把这3个分区填写成主分区,这样0扇区分区表就填满了4个主分区表项。
 
下面我们来实现3个逻辑分区变主分区的想法:
对比上图,我们要找到I盘起始扇区(boot扇区)、分区类型、分区大小。查找方法:我们上面已经计算出第一个分区的结尾处是第12948389扇区(扇区编号是从0开始的,因为第一个分区起始扇区boot扇区在第63扇区,分区大小是12948327 sec,从0扇区到第一个分区结束理论上应该一共是63+12948327=12948390 个扇区,所以第12948389扇区是结束扇区,第12948390扇区是第一个分区结束以后往后的第一个扇区。)这样我们从第12948390扇区开始搜索第二个分区的Boot扇区得到如下结果:
Runtime's DiskExplorer手工填写分区表_休闲_33
我们在硬盘上第12948453 扇区找到了一个合法的Boot扇区,它距离12948390扇区有整整63扇区。这样我们就可以确定第二个分区的信息如下:
第二个分区:分区类型FAT32、分区Boot扇区是第12948453扇区、分区大小是20482812 扇区。得到这个信息,我们先不管它是逻辑分区还是主分区,我们把它填写成主分区就可以了。如下图:
Runtime's DiskExplorer手工填写分区表_数据恢复_34
 
我们接着找第三个分区:第二个分区起始点12948453扇区、分区大小是20482812 扇区,那么我们可以计算出第二个分区的结束点是12948453+20482812-1=33431264 sec33431265扇区是第二个分区结束以后往后的第一个扇区。这样我们从第33431265扇区开始搜索第三个分区的Boot扇区得到如下结果:
Runtime's DiskExplorer手工填写分区表_职场_35
我们在硬盘上第33431328 扇区找到了一个合法的Boot扇区,它距离33431265扇区有整整63扇区。这样我们就可以确定第三个分区的信息如下:
第三个分区:分区类型FAT32、分区Boot扇区是第33431328扇区、分区大小是61432497 扇区。得到这个信息,我们先不管它是逻辑分区还是主分区,我们把它填写成主分区就可以了。如下图:
Runtime's DiskExplorer手工填写分区表_休闲_36
 
我们接着找第四个分区:第三个分区起始点33431328扇区、分区大小是61432497 扇区,那么我们可以计算出第三个分区的结束点是33431328+61432497-1=94863824 sec94863825扇区是第三个分区结束以后往后的第一个扇区。这样我们从第94863825扇区开始搜索第四个分区的Boot扇区得到如下结果:
Runtime's DiskExplorer手工填写分区表_休闲_37
我们在硬盘上第94863888 扇区找到了一个合法的Boot扇区,它距离94863825扇区有整整63扇区。这样我们就可以确定第四个分区的信息如下:
第四个分区:分区类型FAT32、分区Boot扇区是第94863888扇区、分区大小是61432497 扇区。得到这个信息,我们先不管它是逻辑分区还是主分区,我们把它填写成主分区就可以了。如下图:
Runtime's DiskExplorer手工填写分区表_休闲_38
 
到这里我们后面3个分区都找到了,都填写成主分区。硬盘拔下来重新接到计算机上,显示如下图:
Runtime's DiskExplorer手工填写分区表_数据恢复_39
我们可以看出来,这时候4个分区都是主分区。
 
分区构建成功的要领:1、分区boot扇区良好;2、硬盘目录和数据区没有损坏。总之,只要能找到正确的boot扇区,就可以构建这个分区的分区表信息。
本文是数据恢复 原创教材,版权归护航时代所有。如转载请注明转自[url]http://www.bnuol.com[/url]