LINKS

 

 

[回首页]首页 本站专题 → 数据恢复与软故障处理基本指南
发信人: seak (江海客), 信区: Virus 
标 题: 第四章、恢复实例 
发信站: 紫 丁 香 (Wed Nov 24 11:09:53 1999), 转信 
 
第四章、恢复实例 
 
文/江海客  
———————————————————————————————— 
声明: 
1、您所看到的是《数据恢复与软故障处理基本指南》一文的文本稿,本文 
已经在《计算机应用文摘》发表,传统媒体如欲转载请同该杂志社联系, 
获得许可方可转载。 
2、本文作者seak(哈工大紫丁香站ID)许可本文可转载于任何非商业BBS、 
新闻组和WEB站点。但严禁改动、删节或添加或局部抄袭、改头换面用于任 
何正式出版物。转载必须完整,包括本声明和原文紫丁香BBS信头 (即:发 
信人、标题、发信站三行)。 
3、由于《计算机应用文摘》编辑同志对本文的修改、和作者对文章的再次 
扩充,等因素,你看到的电子版本部分章节与刊发文章并不一致。同时, 
作者本人也保留对文章再次扩充修改和网上重新发布的权利。 
4、本文是一篇科普文章,是作者考虑到一般用户的接受能力而写的,对本 
领域的专家本文并无价值。作者力图能给广大用户做准确的描述,但由 
于作者时间和水平的限制,作者不能保证本文的涉及的观点、处理方法等绝 
对正确。欢迎大家就各种问题与我探讨,seak@163.net。 
———————————————————————————————— 
 
下面举一些数据恢复或者软故障处理的例子,这些事例是从我参与大量的 
故障处理中选取的一些典型事例。在选取典型事例中,遵循了以下原则。 
①、 处理过程能够表现一定思想,而不是纯粹的技术手段。 
②、 处理过程本身并不算复杂,基本不出现汇编程序,一般读者能够理解。 
③、 处理过程本身并不完美,中间可能犯了一些错误,有的甚至局部失败 
。可以使大家引为借鉴。 
④、 处理过程本身并不仅仅是纯粹的逻辑思维,有人的心理活动对技术的 
干扰。以使大家能更好的避免这些。 
1、 被CIH破坏硬盘恢复一例 
委托恢复人:某银行 
硬盘情况:CIH发作,蓝屏死机。该单位电脑人员曾用KV300 F10进行修复, 
但没有成功,又恢复了保存的MBR。 
修复工具: 
准备好软盘3张: 
DISK1 -WIN98启动盘(带DEBUG) 
DISK2-DISKEDIT等工具(此盘不要写保护) 
DISK3-DOS下杀CIH的工具 
基本思想: 
1、FAT2没有损坏的情况,用FAT2覆盖FAT1。 
2、FAT2也已经损坏的情况,我一般是只期待找回其中某些关键的文件了。 
我们最期待的是这些文件是连续的。如果不连续的话,也并非没有可能, 
但这往往还要知道文件的一些细节,包括对一些文件本身的连接结构有 
了解。如果FAT2没有完全破坏,是有一定用处的,另外,一般来说, 
FAT16的硬盘因为FAT表靠前破坏的比较严重,一般两个FAT表都坏了,小 
硬盘也很难恢复了。 
 
修复过程: 
把我的硬盘摘下,挂上待恢复的的硬盘,开机,进入SETUP,检测硬盘, 
把参数记下——CLY 620 HEAD 128 PRECOMP 0 LANDZ 4959 SECTOR 63 MODE LBA。 
用准备好的软盘启动: 
A:>C: 
显示Invalid drive specification 
FDISK/MBR重建主引导记录。(这是个习惯),重新软盘引导:(可能 
没有必要)。此时已经看的见C:硬盘。启动DISKEDIT,启动过程中显 
示Invalid media type reading DRIVER C,哎呀,算了,还是先用DEBUG 
 清空分区表,,并置80和55aa标志。重新启动,再运行DISKEDIT,显示 
设定为READ ONLY,没关系,把TOOLS/CONFIGURATION中的只读选项去掉 
,存盘,好了,可以编辑了。 
由于当时接的硬盘有多块,我把这块当成了是一块只有C分区,所以没 
看别的东西,我们期待FAT2没有损坏,以用FAT2覆盖FAT1,在这个时候 
DISKEDIT要比DEBUG容易的多,在FIND OBJECT中选择 FAT,查一下起始 
扇区,好的,在CYL 0 SIDE68 SEC 14,0000H,F8 FF FF 0F(FAT32的 
),好的,FAT2没坏。其实如果不用DISKEDIT的可以用一端小程序查, 
偏移0000的F8 FF FF。 
由于以为只有C分区,所以,上来就在FIND中查找IOSYS(IO和SYS中要 
有空格)以查找ROOT区。找到后观察,是否有C:\下常见文件。好的, 
ROOT区没被破坏。记下了该扇区的CYL 0、SIDE 68 、SEC 14,备用。 
 
FAT1一般前面已经被破坏了,但后面应该还在,这可以作为检查。因为 
是32位的,FAT1 一般在CYL 0 SIDE1 SEC 33。因为有了ROOT 区然后应 
该计算FAT表的长度了,因为FAT2到ROOT前一扇区为止,所以非常简单。 
然后可以用FAT2覆盖FAT1,这里用DEBUG还是DISKEDIT都可以,如果用 
DEBUG一般是用INT 25读绝对扇区,再用INT 26写入, 
用DISKEDIT则比较简单。程序:(略) 
然后可以恢复主引导记录、隐含扇区和BOOT区,可以先用NDD修复分区表 
,其他可以考虑可以考虑用标准覆盖法,如果你希望下一步由NORTO  
NUtilities ,来接手这些都可以不做。我从另一台FAT32的机器上取来了 
相应的部分,写了进去。我这时发现好象有一个D盘。先看一下在说吧。 
好了,关机串上我的硬盘,用NORTON Utilities 4扫描C盘,文 
件基本恢复,对C盘杀毒,WHY,没有发现病毒,换了2种杀毒软件还是没 
有病毒,现在显示C盘是948M,有一个D盘,但是95下无法浏览,DOS下乱 
码。于是打电话核实当时的情况,原来是26日那天,放进一张光盘,光驱 
灯亮了一会,就硬盘狂响,蓝屏死机了。应该证实我的推断一样,是光盘 
的AUTORUN程序有CIH病毒。所以说没有实时防御能力的软件是没有意义的 
。另外,他们的硬盘确实分两个区,而且重要文件在D区。然后在修复D盘 
吧,再回到DOS,用DEBUG查找结束标志为55AA的扇区,然后根据后面是否 
有FAT判定是否为扩展分区。此时可算出大小来返回修订主分区表。当然 
,许多工具也可以很好的完成这一工作。如果你没有把握,就用他们完成 
好了。其实我就是用自己的RE做的,否则手工做确实太麻烦。 
 
经验总结:①、你不要听信或者凭记忆想一块硬盘该是怎么样的,一定要 
自己去看,我就是犯了这个错误。 
          ②、某些软件的修复功能确实如一些网友所讲可能有一定隐患 
,如果银行的电脑人员在用KV300 F10处理之前没有备份,可能要给我找 
些麻烦。 
     我们应当看到,恢复数据要本着几项原则。 
①、 最好先备份,这也是而后我写HD-MIRROR的原因 
②、 优先抢救最关键的数据 
③、 在稳妥的情况下先把最稳定的鸡蛋捞出来,(理应先修复扩展分区 
,再修复C),最好 
修复一部分备份一部分。 
④、 要先作好准备,不要忙中出错,此间,由于我的机器没有装过NORTON 
 ,先解压,习惯的敲了一个D:\TEMP,这才想起来D盘已经是人家的硬盘, 
文件险些解在没有完全修好的C盘上。这种错误有时会经常发生。 
 
2、 LINUX错误安装带来问题一例 
委托恢复人:某信息港 
硬盘情况:4。3G硬盘,分三个区,D、E中有很多重要数据。原来装95系统 
,做主盘。在试图向从盘上装LINUX的时,误将安装盘符选为C,而后发现终 
止,此时硬盘无法自举。软盘启动无法看到任何有效分区。 
工具准备: 
DISK1 -WIN98启动盘(带DEBUG) 
DISK2-DISKEDIT等工具(此盘不要写保护) 
修复思想:修复分区表中的扩展分区,重置主分区的分区类型。 
修复过程:用软盘启动,FDISK/MBR清除LILO,重建代码,用DISKEDIT调入 
MBR观察,已经没有了扩展逻辑分区的信息。80激活分区的类型已经变成83 
(LINUX)这时我犯了与前面类似的错误,本应先修复分区信息,但我却依 
然去先试图C。而且修复C的时是否我又犯了一个致命的错误,那就是我算错 
了C盘的大小。本来C盘是650M左右的一个分区,应当把分区类型置为06H( 
大DOS),而我误算C为340M,因此我置为了04H(普通FAT16),这时我想对 
C做进一步修复,就把硬盘串到我的机器上,开机后C盘可见,文件似乎完好 
。此时我选择用NU来自动修复它的C盘。最后的结果是,由于我选错了分 
区类型,修复使C盘彻底崩溃。我重新起机后,再试图用NU检测C时,我的98 
马上蓝屏,另一个恶果就是我决定从软盘启动,用DISKEDIT查看时,发现可 
能由于I/O参数表的损坏,DISKEDIT无法启动了。而后,我用RE恢复分区表 
,但在我的方正上,RE竟然溢出,后来,我找到一台兼容机,在上面运行RE 
,这才恢复了D、E两个分区。此时,委托我恢复的朋友打来电话,说只找到 
D、E就可以。我这才放心。经验总结:分区类型只是一个字节,却会带来如 
此严重的后果。可见,修复数据必须异常慎重。 
3、 NT SERVER硬盘崩溃一例 
相应情况: 
这是单位里的一台NT服务器。三个NTFS分区,有重要数据在内。硬盘崩溃, 
不能启动,软盘启动后,用NTFSDOS 不能影射任何逻辑分区。 
工具准备: 
DISK1 -WIN98启动盘(带DEBUG) 
DISK2-DISKEDIT等工具(此盘不要写保护) 
修复过程: 
用DEBUG读取主分区表,发现完全混乱。反汇编后发现为一段有逻辑意义的 
代码,我当时十分紧张,以为硬盘被加密了。只好向一个高手HIT-007求援 
,不料他用DEBUG看了两下,马上退出来,做了FDISK/MBR。我大惊失色。 
但重起后,硬盘竟能启动进入NT,当然只剩下C一个分区。而后我很容易的 
恢复了另外两个分区。他对我说,你一看MBR中的内容就被吓住了,我向后 
看后面的一些系统扇区情况都是正常的。这就说明只是MBR不正常而已。 
经验总结:数据恢复中情绪的因素很重要,无论什么情况不能慌张,因为这 
可能影响到你 
是否能全面冷静的思考。 
 
4、 NOVELL服务器掉电问题一例: 
相应情况: 
这是两年前处理过的一个问题,我当时在某证券营业部兼职做网管,开市 
时,一台NOVELL服务器因UPS故障突然掉电重起。当时的交易系统还是DBF 
数据库,按照规程,应该运行一个全部数据库重建索引例程。但索引中, 
却有7个库无法重建,检查发现,是库无法打开。 
修复情况: 
我恍惚记得深圳一个证券界电脑工程师对我说过,DBF文件头在突然死机 
中可能会损坏。但不知细节如何。我初步判定,由于库写入时,先修改文 
件头中的记录总数,再写入记录。可能是掉电时文件头已经修改但记录 
没有成功写入,因此,应该是记录数不符。但文件头中记录数在哪里呢 
。我于是这样处理,把这些损坏的数据库和一个完好的数据库COPY到 
本地,用FOXPRO打开看到记录数,换算成16进制。然后查找这个HEX 
串,判定找到记录数地址,(这个库记录数应当比较多,减少混淆的可 
能,否则容易找错)。由于我不知道处理DBF的公式,只好把损坏数据 
库的记录数每次减一,然后再用FOXPRO打开实验。其中5个数据库减一后 
就可以打开,只有一个数据库直到减4后才正常。全处理过程从掉 
电开始只有20分钟,基本没有影响交易进行。 
经验总结:当出现问题,但你不知道确切的处理方法时,要充分进行分析。 
 
5、 某财务系统数据处理一例: 
相应情况:也是我在证券公司处理的情况,某单机版财务系统,基于 
Clipper,当时是年初安装,使用正常至6月份底,突然发现该月数据 
紊乱, 与实际出入巨大。出品公司的人来看过后,声称需要1周处理 
时间和近万元的处理费,我听说后,建议财务部拒绝其“讹诈”,由 
我来处理。 
分析处理过程: 
由于我对财务一窍不通,我请财务经理讲明了情况和一些概念,又分析 
了系统的大致结构。我发现本月每一笔数据都是正常的,只是因为多了 
上千笔没有发生的收支,才使汇总表发生了变化。那么这些数据是哪里 
来的,就成了问题的关键。在看了该软件的初始状态后,我似有所悟 
,问财务软件初装后并没有的上百个“科目”是从哪里建立的。财务经 
理回忆是上年底从某营业部发来的,我当时就明白了,那个营业部是上 
一年6月成立的,问题显然出在该营业部提供的初始科目不为空,由于上 
年1-5月该营业部尚不存在,所以数据为空,而该营业部6月以后的数据 
则随科目转入了我所在营业部的财务系统。经过对当初转入初始科目的 
对照,证实了我的判断。于是,我做了一段程序,按照对应关系把相关 
数据从系统库中摘除。从分析问题到问题的解决,只用了三个小时。 
经验总结: 
①、 当出现数据紊乱时,很重要一点就是找到干扰源。 
②、 数据处理绝非仅仅就是一个技术问题,特别是金融系统,一定要 
得到这方面的专业人士的配合。我想如果没有那位财务经理的信任鼓励 
和让我对会计知识的速 
成,问题处理就不会如此顺利。 
这只是一些简单恢复的例子,类似的,大家可以将在完整版的文章中看 
到更多。想说明一点,有一些朋友建议过我把一些复杂的灾难恢复和数 
据抢救的细节写出来,但因为这些涉及到相关单位一些系统信息等等, 
就对不起大家了。最后,如果相关问题的话,大家可以到我们主持的 
169电脑医院查找更多资料,我们的虚拟域名是usafe.yeah.net 
 
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 )|)             ●   |江海客     seak@163.net 
\-----/               |之天涯看台 http://seak.163.net(163) 
ぺべぺべぺべぺ                    http://personal.yn.cninfo.net/seak(169)            
        问人间沧桑几许;看书生胆气如何 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: bbs.ndc.neu.edu.]