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