论文部分内容阅读
到本期为止,速成数据恢复工程师系列即将告一段落。在这个系列中,我们了解到不少行业内幕,并且请专业人士为我们演示了许多实际案例,希望这些能对大家了解这一行有所帮助,更希望这一系列能成为你进军数据恢复这个行业的一个起点。勿庸诲言,要进入这一行的技术门槛相对来说是比较高的,不过也正因为有“技术壁垒”,一旦进入,也是“钱”途无量(当然风险相应也大)。今天,再一次请飞客的聂阳给我们演示通过修复分区表找回数据的例子,为这一系列画上完美的句号。在此,再一次感谢聂阳MM对我们的大力协助。
芝麻开门
填写分区表进行数据恢复,适用于很多情况:分区丢失、分区表遭到破坏、误删除、误格式化、意外断电、软件错误、引导代码丢失、“55AA”标志损坏、主分区表损坏等等。当硬盘容量较大,比如160G或以上时,使用填写分区表的方式修复数据,可以更加迅速和精准。
在没有人为因素改变分区的情况下,因意外而导致的磁盘显示分区丢失、分区显示未格式化等,应该首先检查主分区表是否损坏,通过查看现有分区表描述的各个分区的前后关系是否合理,跳转到分区起始扇区查看是否为正常的DBR来判断故障原因。
用手工填写分区表的方式进行恢复,大致思路如下:如果发现异常,则应该尝试寻找并重构原来的分区结构。可以搜索扇区偏移510字节处的“55AA”来寻找有效的DBR或EBR。
小提示
最有可能的是在63号扇区搜索到一个DBR,因为通常情况下第一个分区为主分区,其起始位置通常位于63号扇区。如果第一个分区是FAT32文件系统,69号扇区还会有它的一个备份。
首先我们先了解一下基础知识。要学会手工填写分区表,必须了解分区表的构成,以及字节含义。在WinHex(新版试用下载:http://www.onlinedown.net/soft/4222.htm)中,打开物理磁盘,可以看到MBR信息(见图1)。
MBR中的分区信息以55AA作为结束标志,以80为活动起始标志。80开始,一直到55AA之前的字节,一共是64个字节。下面将逐一分析MBR中64个字节的含义。我们将64个字节分为4部分:分区表一、分区表二、分区表三和分区表四。
分区表一:
第1个字节
80:可启动分区
第2~4字节
01/01/00:磁头/扇区/柱面
0000 0001/0000 0001/0000 0000
1/1/0
开始柱面:0
开始磁头:1
开始扇区:1
第5个字节
0C:分区类型为FAT32
第6~8字节
FE/FF/FF:磁头/扇区/柱面
1111 1110/1111 1111/1111 1111
254/255/255
结束柱面:255
结束磁头:255
结束扇区:254
第9~12字节
00 00 00 3F:分区前隐含扇区数
即63个隐藏扇区
0磁道到1磁道的63个扇区,为了保护分区表,减少磨损, 零磁道只用了0扇区,1到62共62个扇区不用。
第13~16字节
5B 24 40 01:分区大小
20980827个扇区
20980827+63=20980889才是第一个主分区的实际扇区数。
20980889*512/(1024*1024*1024)=10GB。
分区表二:
第17个字节
00:不可启动分区
第18~20字节
00/C1/FF:磁头/扇区/柱面
0000 0000/1100 0001/00 1111 1111
0/193/255
开始柱面:255
开始磁头:0
开始扇区:193
第21个字节
0F:分区类型为扩展分区
第22~24字节
FE/FF/FF:磁头/扇区/柱面
1111 1110/1111 1111/1111 1111
254/255/255
结束柱面:255
结束磁头:254
结束扇区:255
第25~28字节
9A 24 40 01:分区前隐含扇区
20980890
(20980890=20980827+63)
第29~32字节
3A F7 C6 07:分区大小
130479930
130479930*512/(1024*1024*1024)=62.22GB,扩展分区的大小即为62.22G。
分区表三和分区表四以此类推,这里不再细述了。
任务实战
了解MBR的构成后,下面演示一个数据恢复操作的实例。首先清空分区表,以制造当时主分区表被破坏的实验环境。通过留存的DBR信息推导出能够界定分区的MBR信息。在清空前,我们先来对0扇区进行备份。注意:在做数据恢复之前,应该养成良好的习惯,就是在对某个区域进行大范围改动时,先对其进行备份。手工备份实际上就是将选定块的内容保存为一个新的文件或复制到磁盘上的另一个位置。本案例来自FCDA(飞客数据恢复工程师培训:http://www.fix.com.cn)。
警告:
★下面的实例,是在一块无任何有用数据的硬盘上进行的演示和练习。如果你的硬盘上有有用数据(甚至重要数据),请勿尝试。如果是真实的硬盘损坏导致数据丢失,请在专业人士指导下操作,或者送专业数据恢复公司修复。
实战:通过修复分区表找回数据
演示实例中,主机同时连接了两块硬盘,分别为“磁盘0”和“磁盘1”。磁盘1是正常运作的硬盘,而磁盘0已经被格式化,分区消失。
现在准备填写分区表。用WinHex分别打开磁盘1和磁盘0,如图2所示,是磁盘1(Hard disk 1)的第一个扇区,下方橘红色部分是磁盘1的MBR中的分区表信息。具体含义,已经在上文中描述。
如图3所示,则是磁盘0的打开界面,可以看到,格式化以后MBR部分已经全部清零了。只有还原MBR才能恢复硬盘的分区信息。接下来我们将磁盘1的第一个扇区拷贝粘贴到丢失分区的磁盘0的第一个扇区中,因为磁盘中很多字节信息是相似的。
从第一扇区的倒数第五行80 01开始填写数据信息。80不变,01 01 00不变,我们需要确认第一个主分区是什么类型的分区。在“Search→Find Hex value”(搜索→查找十六进制值)中打开查找对话框,如图4所示设置各项参数,向下搜索55AA结束标志。第一个55AA如橘红色标识部分,是我们刚刚粘贴的信息。
继续搜索55AA,第二个55AA或者第三个55AA所在扇区,一般为第63扇区,属于DBR起始扇区。如图5所示,右侧窗格中显示的红色NTFS,说明第一个分区格式为NTFS,那么在MBR中第五个字节应该更改成07。将图6中红色位置改为07,其余不变。隐藏扇区数为63,转换为十六进制为3F 00 00 00,所以不需要改变。通常第一个分区的隐藏扇区数都为63。
继续搜索到下一个55AA位置,此处为本分区DBR的备份,即分区结束位置。可以看到扇区数为20482875,由于包含之前隐藏的63个扇区,所以第一个分区的扇区数为20482875-63=20482811,转换为16进制的数值为1388AFC,倒置输入为FC 8A 38 01。
保存后第一个分区就填写完毕了。因为WinHex有自动检测丢失分区的功能,所以确定分区大小,也可以在“View→Template manager→Boot sector NTFS”(查看→模板管理→NTFS启动扇区)中观看分区大小信息。如图7所示,引用的是示意图,并非本次演示案例的信息图片。
使用同样方法来计算第二个分区的大小。00 FE FF FF不需更改,20482875扇区为第二分区的DBR,可以看到,分区格式仍然为NTFS,所以仍然填写07。结束的磁头、柱面、扇区,仍然填写FE FF FF,隐藏分区为20482875个扇区,换算成十六进制为1388B3B,反向填写成3B 8B 38 10。
同理找到下一个DBR位置计算出第二分区大小填入。寻找后,结束的DBR为61448625,那么第二个分区的大小为61448625-20482875=40965750,转换为16进制为76 16 71 20。由于找到的61448625扇区也是NTFS格式,所以仍然为07标记。继续搜索55AA,计算第三个分区的大小,转换为十六进制5A74310,逆序填充值为10 43 A7 05。
保存以上修改后,重启机器,再在Windows磁盘管理中查看分区状况,可以发现,丢失的分区可以正常打开,并且显示正常。分区表填写操作成功完成。
芝麻开门
填写分区表进行数据恢复,适用于很多情况:分区丢失、分区表遭到破坏、误删除、误格式化、意外断电、软件错误、引导代码丢失、“55AA”标志损坏、主分区表损坏等等。当硬盘容量较大,比如160G或以上时,使用填写分区表的方式修复数据,可以更加迅速和精准。
在没有人为因素改变分区的情况下,因意外而导致的磁盘显示分区丢失、分区显示未格式化等,应该首先检查主分区表是否损坏,通过查看现有分区表描述的各个分区的前后关系是否合理,跳转到分区起始扇区查看是否为正常的DBR来判断故障原因。
用手工填写分区表的方式进行恢复,大致思路如下:如果发现异常,则应该尝试寻找并重构原来的分区结构。可以搜索扇区偏移510字节处的“55AA”来寻找有效的DBR或EBR。
小提示
最有可能的是在63号扇区搜索到一个DBR,因为通常情况下第一个分区为主分区,其起始位置通常位于63号扇区。如果第一个分区是FAT32文件系统,69号扇区还会有它的一个备份。
首先我们先了解一下基础知识。要学会手工填写分区表,必须了解分区表的构成,以及字节含义。在WinHex(新版试用下载:http://www.onlinedown.net/soft/4222.htm)中,打开物理磁盘,可以看到MBR信息(见图1)。
MBR中的分区信息以55AA作为结束标志,以80为活动起始标志。80开始,一直到55AA之前的字节,一共是64个字节。下面将逐一分析MBR中64个字节的含义。我们将64个字节分为4部分:分区表一、分区表二、分区表三和分区表四。
分区表一:
第1个字节
80:可启动分区
第2~4字节
01/01/00:磁头/扇区/柱面
0000 0001/0000 0001/0000 0000
1/1/0
开始柱面:0
开始磁头:1
开始扇区:1
第5个字节
0C:分区类型为FAT32
第6~8字节
FE/FF/FF:磁头/扇区/柱面
1111 1110/1111 1111/1111 1111
254/255/255
结束柱面:255
结束磁头:255
结束扇区:254
第9~12字节
00 00 00 3F:分区前隐含扇区数
即63个隐藏扇区
0磁道到1磁道的63个扇区,为了保护分区表,减少磨损, 零磁道只用了0扇区,1到62共62个扇区不用。
第13~16字节
5B 24 40 01:分区大小
20980827个扇区
20980827+63=20980889才是第一个主分区的实际扇区数。
20980889*512/(1024*1024*1024)=10GB。
分区表二:
第17个字节
00:不可启动分区
第18~20字节
00/C1/FF:磁头/扇区/柱面
0000 0000/1100 0001/00 1111 1111
0/193/255
开始柱面:255
开始磁头:0
开始扇区:193
第21个字节
0F:分区类型为扩展分区
第22~24字节
FE/FF/FF:磁头/扇区/柱面
1111 1110/1111 1111/1111 1111
254/255/255
结束柱面:255
结束磁头:254
结束扇区:255
第25~28字节
9A 24 40 01:分区前隐含扇区
20980890
(20980890=20980827+63)
第29~32字节
3A F7 C6 07:分区大小
130479930
130479930*512/(1024*1024*1024)=62.22GB,扩展分区的大小即为62.22G。
分区表三和分区表四以此类推,这里不再细述了。
任务实战
了解MBR的构成后,下面演示一个数据恢复操作的实例。首先清空分区表,以制造当时主分区表被破坏的实验环境。通过留存的DBR信息推导出能够界定分区的MBR信息。在清空前,我们先来对0扇区进行备份。注意:在做数据恢复之前,应该养成良好的习惯,就是在对某个区域进行大范围改动时,先对其进行备份。手工备份实际上就是将选定块的内容保存为一个新的文件或复制到磁盘上的另一个位置。本案例来自FCDA(飞客数据恢复工程师培训:http://www.fix.com.cn)。
警告:
★下面的实例,是在一块无任何有用数据的硬盘上进行的演示和练习。如果你的硬盘上有有用数据(甚至重要数据),请勿尝试。如果是真实的硬盘损坏导致数据丢失,请在专业人士指导下操作,或者送专业数据恢复公司修复。
实战:通过修复分区表找回数据
演示实例中,主机同时连接了两块硬盘,分别为“磁盘0”和“磁盘1”。磁盘1是正常运作的硬盘,而磁盘0已经被格式化,分区消失。
现在准备填写分区表。用WinHex分别打开磁盘1和磁盘0,如图2所示,是磁盘1(Hard disk 1)的第一个扇区,下方橘红色部分是磁盘1的MBR中的分区表信息。具体含义,已经在上文中描述。
如图3所示,则是磁盘0的打开界面,可以看到,格式化以后MBR部分已经全部清零了。只有还原MBR才能恢复硬盘的分区信息。接下来我们将磁盘1的第一个扇区拷贝粘贴到丢失分区的磁盘0的第一个扇区中,因为磁盘中很多字节信息是相似的。
从第一扇区的倒数第五行80 01开始填写数据信息。80不变,01 01 00不变,我们需要确认第一个主分区是什么类型的分区。在“Search→Find Hex value”(搜索→查找十六进制值)中打开查找对话框,如图4所示设置各项参数,向下搜索55AA结束标志。第一个55AA如橘红色标识部分,是我们刚刚粘贴的信息。
继续搜索55AA,第二个55AA或者第三个55AA所在扇区,一般为第63扇区,属于DBR起始扇区。如图5所示,右侧窗格中显示的红色NTFS,说明第一个分区格式为NTFS,那么在MBR中第五个字节应该更改成07。将图6中红色位置改为07,其余不变。隐藏扇区数为63,转换为十六进制为3F 00 00 00,所以不需要改变。通常第一个分区的隐藏扇区数都为63。
继续搜索到下一个55AA位置,此处为本分区DBR的备份,即分区结束位置。可以看到扇区数为20482875,由于包含之前隐藏的63个扇区,所以第一个分区的扇区数为20482875-63=20482811,转换为16进制的数值为1388AFC,倒置输入为FC 8A 38 01。
保存后第一个分区就填写完毕了。因为WinHex有自动检测丢失分区的功能,所以确定分区大小,也可以在“View→Template manager→Boot sector NTFS”(查看→模板管理→NTFS启动扇区)中观看分区大小信息。如图7所示,引用的是示意图,并非本次演示案例的信息图片。
使用同样方法来计算第二个分区的大小。00 FE FF FF不需更改,20482875扇区为第二分区的DBR,可以看到,分区格式仍然为NTFS,所以仍然填写07。结束的磁头、柱面、扇区,仍然填写FE FF FF,隐藏分区为20482875个扇区,换算成十六进制为1388B3B,反向填写成3B 8B 38 10。
同理找到下一个DBR位置计算出第二分区大小填入。寻找后,结束的DBR为61448625,那么第二个分区的大小为61448625-20482875=40965750,转换为16进制为76 16 71 20。由于找到的61448625扇区也是NTFS格式,所以仍然为07标记。继续搜索55AA,计算第三个分区的大小,转换为十六进制5A74310,逆序填充值为10 43 A7 05。
保存以上修改后,重启机器,再在Windows磁盘管理中查看分区状况,可以发现,丢失的分区可以正常打开,并且显示正常。分区表填写操作成功完成。