分类:
2008-10-16 18:48:03
最近接连帮朋友恢复了几块被误Ghost的硬盘,今天抽点时间写写处理过程,希望能给遇到此类问题的朋友一些参考。平时遇到的误Ghost情况有两种,一种是误用了带Ghost功能的XP安装盘,这种安装盘会重建分区表,把你的硬盘分为四个区,然后把XP系统Ghost到C盘;第二种是利用Ghost备份还原系统,本应把备份还原到C分区,但一不小心还原到整个硬盘上了。这两种操作的实质是一样的,都改写了硬盘的分区表,而且向硬盘覆盖了一些数据。从数据恢复的角度来看,C分区被覆盖了数据,国内由于没有深层恢复技术,基本被覆盖的数据是回不来的,但C分区之后的数据基本是可以完全恢复的。
举个例子加以说明,一块硬盘原来有三个分区,分别是C,D,E,D盘和E盘有重要数据。原打算用Ghost在C盘装上一个XP系统,但操作时不小心,把Ghost备份还原到了整个硬盘,这下子硬盘上只有一个C分区了。如下图所示意,这个硬盘共有16G,原先C盘8G,D和E各是4G,现在只有一个C盘,大小是16G。
从上图可以看出,Ghost作了两件事情,一是覆盖了C盘的一部分空间,二是重写了分区表。除了被Ghost覆盖了一部分数据,其余的数据都毫发无损,我们只要能重建分区表,原来的D盘和E盘的数据就可以重见天日了。要重建分区表,关键是要知道第一个扩展分区起始的位置,找到了这个位置,所有的问题就都解决了。平时我解决这个问题,一般用Winhex或Diskgen,现把两种方法都写出来供大家参考。
一 Winhex
Winhex是个五星级的扇区编辑工具,虽然只有2M大小,但功能及其强大,什么分析分区表,分析DBR,计算偏移,簇链追踪都不在话下,是数据恢复工程师的保留武器。我们先请它出场,但使用Winhex要求对数据原理有一定了解(今天俺就不详细介绍原理了),要不然看了Winhex的界面就崩溃的也不在少数。
我们把要恢复的硬盘挂到另外一台计算机上,如下图所示,磁盘1就是要目标硬盘,现在它只有一个分区,我们要把它的分区恢复原状。
启动Winhex,在工具菜单中选择“磁盘编辑器”,如下图所示,选择打开第二块物理硬盘HD1(wmware搭的实验环境)。
Winhex打开了物理硬盘,如下图所示就是0扇区的内容,0扇区内容分为三部分,引导程序,分区表和55AA的结束标志。图中绿色部分就是分区表,由于现在硬盘中只有一个分区,因此分区表中只有一项。
好,现在我们要重建正确的分区表,分区表中要有两项,一项是对主分区C的描述,另一项是对扩展分区的描述。现在的关键是要找出扩展分区的起点,由于原硬盘的C分区大约是8000M,每个柱面的大小是255×63×512=8225280字节=7.8M,因此原扩展分区的起点大约是8000÷7.8=1025,也就是说扩展分区的起点在1025柱面附近。考虑到误差因素,我们放宽范围,让Winhex从950柱面开始搜索扩展分区的起始扇区。扩展分区的起始扇区有扩展分区表,而且扇区以55AA结束,我们根据这个特征可以指定搜索条件,具体思路是每个扇区512个字节,编号从0到511,我们让Winhex检索哪个扇区的510和511字节是55和AA,这个扇区就有可能是我们要找的扩展分区起始扇区。当然了,也有可能某个不相干的扇区也是以55AA结尾,那就要作进一步的筛选。一般情况下,扩展分区的起始扇区总是位于某个柱面的0磁头1扇区,这些条件我们都要加以利用。
[1]