两招恢复误GHOST的硬盘

平时遇到的误情况有两种,一种是误用了带功能的XP安装盘,这种安装盘会重建分区表,把你的硬盘分为四个区,然后把XP系统到C盘;第二种是利用备份还原系统,本应把备份还原到C分区,但一不小心还原到整个硬盘上了 。这两种操作的实质是一样的,都改写了硬盘的分区表,而且向硬盘覆盖了一些数据 。从数据恢复的角度来看,C分区被覆盖了数据,国内由于没有深层恢复技术,基本被覆盖的数据是回不来的,但C分区之后的数据基本是可以完全恢复的 。
; ; ; 举个例子加以说明,一块硬盘原来有三个分区,分别是C,D,E,D盘和E盘有重要数据 。原打算用在C盘装上一个XP系统,但操作时不小心,把备份还原到了整个硬盘,这下子硬盘上只有一个C分区了 。如下图所示意,这个硬盘共有16G,原先C盘8G,D和E各是4G,现在只有一个C盘,大小是16G 。

; ; ; 从上图可以看出,作了两件事情,一是覆盖了C盘的一部分空间,二是重写了分区表 。除了被覆盖了一部分数据,其余的数据都毫发无损,我们只要能重建分区表,原来的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扇区,这些条件我们都要加以利用 。
; ; ; 好了,首先定位到950柱面0磁头1扇区,我们准备从这里开始搜索,在Winhex的“位置”菜单中选择“转到扇区”,如下图所示,填入参数是950/0/1 。再次声明,950柱面只是一个凭经验估算的结果 。
;
; ; ; 在Winhex“搜索”菜单中,选择“查找16进制数值”,如下图所示 。

推荐阅读