恢复误GHOST后的反思

[复制链接]

该用户从未签到

29

主题

1092

回帖

1万

积分

[INTOHARD]工兵

Rank: 1

积分
17691
QQ
发表于 2007-11-23 23:55:12 | 显示全部楼层 |阅读模式
恢复误GHOST后的反思

昨天一个网友告急:一个160G的硬盘GHOST后变成一个分区,这个硬盘是个二手盘,他买来后将它平均分为4个分区,且都是NTFS分区,用Diskgen软件扫到有十几个分区,由于数据重要,不敢乱动。误GHOST的恢复关键就是恢复第0扇区的分区表,我个人认为:如果你对误GHOST前这个硬盘的分区情况(容量及分区格式)比较清楚的话,可以用分区表恢复软件(比如:Diskgen或分区表医生)来完成,如果不是很清楚或用上述软件不能恢复的话,才用winhex手工恢复,当然不管采用什么方式恢复,最好先对要恢复的硬盘或分区做镜像。由于是远程,用Diskgen恢复不方便(这个软件要在DOS下运行),于是恢复过程如下:
方案一:用分区表医生恢复,结果没有找到,郁闷中………
方案二:按着用WinHex来找分区表信息,在一般的资料中都说,分区表信息位于硬盘的某一个柱面的第一扇区,在我的指导下,网友按这一条件来找,但网友最后告诉我:没有找到,让我更加郁闷…….,这还是第一次遇到。这时我想到WinHex中的有一个“扫描丢失的分区”这个功能,以前还没有用过它,于是要网友用它来扫,扫描到80%左右时提示硬盘有坏道,停止扫描,这时扫到10个分区(见下图)
扫描丢失的分区.jpg
根据网友提供的信息(160G的硬盘平均分成4个分区),37.3的分区是分析的对象,分区4、分区7、分区8和分区9都是37.3扇区,先看这4个分区的DBR,信息如下:
04分区(2594982扇区).JPG
04分区(2594982扇区)

07分区(78140286扇区).JPG
07分区(78140286扇区)

08分区(156280446扇区).JPG
08分区(156280446扇区)

09分区(234420606扇区).JPG


09分区(234420606扇区)


分析:
1、
排除04分区:原因有两个,第一,这个分区是FAT32,网友提供的是NTFS;第二2594982扇区,如果是第二分区,那么第一个分区只有12G,与网友说的不符。
2、
07
0809分区可能是原来的DEF分区。因为分区格式都是NTFS,从DBR中看出每个分区的扇区数是78140096(用04A852C0换算成10进制),将扇区数换算成容量大约是37.26G
3、
为了保险起见,再向前63个扇区看分析分区表的链接情况,做这一步的目的是论证第二步的判断。
分区表(78140223扇区).JPG
78140223扇区

分区表(156280383扇区).JPG
156280383扇区

分区表(234420543扇区).JPG


234420543扇区



对关键数据进行分析:
78140223扇区: 63       78140097
         78140160   78140160
156280383扇区:63      78140097
         156280320  78140160 
234420543扇区:63         78140097
分析分区表的链接情况:第78140223扇区中的637814009778140160,说明这个分区是这个硬盘的扩展分区的第一个逻辑分区,再分析这三个分区表的信息及链接情况,证明第二步的判断是正确的,分析结果如下图所示:
分区表分析.JPG




[ 本帖最后由 tclrz100e 于 2007-11-24 15:16 编辑 ]

该用户从未签到

29

主题

1092

回帖

1万

积分

[INTOHARD]工兵

Rank: 1

积分
17691
QQ
 楼主| 发表于 2007-11-23 23:55:43 | 显示全部楼层
重建分区表:
 
分析正确后,现在关键就是重建第0[wiki]扇区[/wiki]的分区表(我是根据分区表信息重建分区表,不是根据DBR,原因后面有说明,关键的数据是:
63     78140160
78140223  23442048015628032078140160234420480
最后用PTEDIT32(分区表编辑器)重建分区表,结果如下图:
PTEDIT32重建分区表.JPG
WinHex看到的效果如下图:

手工恢复分区表.JPG
恢复后整个硬盘的分区表情况如下图:
分区表恢复结果.JPG
重建分区表后,用PTEDIT32顺利打开后面的三个分区,然后再用WinHex打开这个硬盘的几个分区,能看到里面的内容(做这一步的目的是最后论证一下数据恢复是否成功),重新启动电脑,数据恢复成功!!


说明:这个数据恢复的难度其实并不大,我写这个案例的目的是想和大家探讨一下这个案例中有些数据的特殊性(也许是我太孤陋寡闻了!)及分区表恢复软件的恢复原理问题,错误之处,请各位指正!!
1、在《数据恢复(第二版)》中好像说过,分区表的信息在硬盘的某一个柱面的第一个扇区中(一时没有找到这段文字,以后找到再作说明),通过很多次观察发现是这样的,这还是第一次发现在硬盘的某一个柱面的第63扇区中,后来询问了那位网友是用什么软件分区的区,他说是一般的Windows xp安装碟,在安装时提示你安装系统到哪个分区时,选择删除当前分区,每个分区都选择删除当前分区,最后只有一个分区了,也就是大分区了,然后选择创建分区,160G硬盘,但显示149G,用149G除以4等于37.3G37.3乘以1024 =......MB,这样把一个硬盘重新分的4个区。大家可以看到后面三个分区表前面的字节不是00,因为原来这个位置有数据。

2、有的教程中提到根据DBR信息重建分区表,我做过多次观察,发现分区表中描述一个分区的扇区总数和DBR中描述的这个分区的扇区总数不完全一致(已排除前面隐藏的63个扇区及NTFS分区中DBR备份的一个隐藏扇区的因素!!),不一致的原因可能在格式化时产生剩余扇区有关,一个硬盘在分区时有剩余扇区产生,同样的道理,一个分区在格式化时也有可能出现分区的剩余扇区(这是我自己命的名,呵呵!!比如一个FAT32的分区,如果在格式化时DBR中的“保留扇区数”和“每簇扇区数”用不同的值,就有可能出现剩余扇区,这只是我的一个猜测)。所以我一般重建分区表时一般是以分区表的信息重建,而不是根据DBR,DBR只是一个参考,用DBR的位置推算分区表的位置,然后判断这个分区是主分区还是扩展分区,最后决定如何在第0扇区中重建分区表。
3、对分区表恢复软件恢复原理的猜测:网友说用Diskgen软件扫到有十几个分区,这和用WinHex中的有一个“扫描丢失的分区”找到的结果一样,但分区表医生没有找到,可能是分区表医生是通过寻找硬盘某柱面的第一个扇区的55AA来恢复的,DiskgenWinHex “扫描丢失的分区”是通过找每一个扇区的55AA。可以从这些软件恢复分区表所需要的时间来证实我的猜想。

  
 不知我把这个案例的恢复过程写清楚没有,如果有不明白的地方可以跟帖相互讨论。

该用户从未签到

96

主题

1179

回帖

5553

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
5553
发表于 2007-11-24 00:50:38 | 显示全部楼层
[s:15] [s:15] [s:15] [s:15]

该用户从未签到

0

主题

1

回帖

14

积分

[INTOHARD]工兵

Rank: 1

积分
14
发表于 2007-11-24 02:36:08 | 显示全部楼层
不错的办法,我的硬盘就是出现这个问题

该用户从未签到

112

主题

341

回帖

2668

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
2668
QQ
发表于 2007-11-24 08:58:02 | 显示全部楼层
高呀;这么多的十六进制的代码以不晕;唉…… 我就不行了;以不知道是咱个的;是不是我还没有学习WINHXE的基础还是有什么技巧?请高手给个入门的见意;谢谢了!

该用户从未签到

0

主题

7

回帖

8

积分

[INTOHARD]工兵

Rank: 1

积分
8
发表于 2007-11-24 09:55:43 | 显示全部楼层
(38: (38: (38: (38: [s:14] [s:14] [s:14]

该用户从未签到

105

主题

979

回帖

2503

积分

[INTOHARD]营长

郴州怪老头电脑服务中心

Rank: 6Rank: 6

积分
2503

宣传大使奖新人进步奖幽默大师奖

QQ
发表于 2007-11-24 10:21:28 | 显示全部楼层
WinHex (26: 学习中

该用户从未签到

28

主题

311

回帖

1146

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
1146
发表于 2007-11-24 11:42:09 | 显示全部楼层
管它63扇区还是第1扇区,他c盘不用恢复,也就是要d盘e盘f盘,找到d盘e盘f盘[wiki]分区表[/wiki]了,在0扇区直接填上就行了,也就是建三个主分区。完了直接考数据就行了。

该用户从未签到

63

主题

338

回帖

3623

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
3623
发表于 2007-11-24 11:44:29 | 显示全部楼层
请问“华山剑客”你主要恢复思路,是通过查找DBR,来判断原来的分区格式!
然后通过DBR来计算:是不是原来的分区大小!

是呀!想问下“华山剑客”你直接用rainhe那个方法恢复误ghost数据!就行了!
直接在0扇区把D,E,F分区表填上,不就可以了吗?


还请rainhe来讲讲,和他那个教程那里不同?

[ 本帖最后由 wsszsmx 于 2007-11-24 11:54 编辑 ]

该用户从未签到

29

主题

1092

回帖

1万

积分

[INTOHARD]工兵

Rank: 1

积分
17691
QQ
 楼主| 发表于 2007-11-24 15:15:15 | 显示全部楼层

回复 10# 的帖子

我恢复误[wiki]GHOST[/wiki]的思路是根据分区表的信息恢复的,不是根据DBR信息来恢复的,DBR只是一个参考,我刚才在2楼中反思的第二点补充上去了。其实如果只要找到扩展分区的第一个逻辑分区的分区表信息,然后根据它来找后面的分区表的信息(这一步不用WinHex扫),验证这几个分区的正确性,最后在第0扇区重建就行了。rainhe做的那个误GHOST的恢复录像我看了,做的很好,只是思路和方法不同而已,他是根据DBR中的信息在第0扇区中重建几个主分区,没有扩展分区,但如果一个[wiki]硬盘[/wiki]有4个以上的分区要恢复后面几个分区的数据,不知怎么处理?不管怎样,只要能恢复数据,不管用什么方法都行,哪种方法适合你,你就用哪种方法,多一种方法,多一线希望!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表