科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道数据恢复与软故障处理基本指南

数据恢复与软故障处理基本指南

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

任何使这些信息发生非主观意愿之外的变化都可视为破坏。那么数据恢复是就是一个把异常数据还原为正常数据的过程。

作者:51CTO.com  来源:51CTO.com  2008年7月7日

关键字: 数据恢复 数据安全 数据保护

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

  5、数据可恢复的前提

  有人觉得这个题目说法比较奇特,但数据恢复,作为一个数据再现的过程,一定要解决两个问题,第一是从哪里恢复的问题,第二是怎么恢复的问题。解决了这两个问题,我们事实上就把握了数据恢复的全部思想脉络。而这一部分就是从哪里恢复的问题。

  ①、 有效而及时的备份中是数据恢复最可靠的来源,在许多人倡导备份到秒的今天,恐怕不会有人怀疑这点。而有些备份机制则是系统内建的,比如两份FAT表。

  ②、 数据的实际有效性的判定是关键,对我们来说,硬盘无法自举、文件找不到、文件打不开等现象,其实并不与数据丢失画等号。因为此时往往数据只是从操作系统的角度是一种逻辑丢失,而从物理扇区意义上,它仍然存在或部分存在。最明显的就是文件删除的例子,事实上,这只是把文件首字节,改为0E而已。而此时文件体依然存在。

  ③、 数据损坏过程的可逆性分析:对数据的改变无非两种,取代和变换,前者是不可逆的,而后者则是可逆的。我们以杀毒为例,对于大多文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想的杀毒过程就是感染的逆过程。这种分析也常见与重要信息被隐藏搬移或者被加密的情况,但分析将比较复杂。

  ④、 数据本身是否是标准信息:有些信息实际是通用或局部通用的,你无须考虑如何从本机抢救。只要相同或相近的系统版本就可以了,比如BOOT区、隐含扇区、WINDOWS的DLL文件等等。典型的例子如分区表的代码区,这是一段标准代码,事实上,它就放在你的FDISK程序里面,你可以用DEBUG把他提取出来。

  ⑤、 数据本身是否可以由其他信息统计再生:有些信息尽管丢失了,也没有备份。但它实际可以从其他数据中间接求得。最典型的就是主分区表中的分区信息,即使你把他清零也不必害怕,因为你可以从你几个分区中计算再生。

  ⑥、 破坏的完成程度:事实上,FDISK、FORMAT都不会彻底破坏数据,一般只有低格和扇区覆盖操作才会彻底破坏数据。但有时,破坏过程或者误操作过程会因人工终止、死机等原因不能完成。最明显的就是CIH病毒的例子,由于CIH是以1024字节为单位覆盖扇区,这当然是不可逆过程,于是我们最初都认为,破坏是很难恢复的,除非人工终止。事实上,当病毒覆盖某些扇区时会与9X系统发生冲突,从而造成死机,使数据得到了保护。

  1、 硬件或介质问题的情况

  ①、硬盘坏:硬盘自检不到的情况一般是硬件故障,又可分为主版的硬盘控制器(包括IDE口)故障和硬盘本身的故障。如果问题在主板上,那么数据应当没有影响。如果出在硬盘上,也不是一定不能修复。硬盘可能的故障又可能在控制电路、电机和磁头以及盘片。如果是控制电路的问题,一般修好它,就可以读出数据。但如果电机、磁头和盘片故障,即使修理也要返回原厂,数据恢复基本没有可操作性。

  ②、软盘坏:当软盘数据损坏时,可以有几种处理,一种是用NDD修复,他会强制读出你坏区中的东西,MOVE到空白扇区中,这就意味着如果你的磁盘很满操作是没法进行的。你也可以用HDCOPY2.0以上版本READ软盘,他也会进行强读,使读入缓冲区的数据是完好的,你再写入一张好磁盘就可以了。当然这些方式,要看盘坏的程度。如果0磁道坏,数据也并非无法抢救,早先可以通过扇区读的方式,把后面的数据读出,不过一般来说,你依然可以HDCOPY来实验。

  2、系统问题的情况

  ①、在硬盘崩溃的情况下,我们经常要和一些提示信息打交道。我们要了解他典型提示信息的含义,注意这些原因仅仅分析逻辑损坏而不是硬盘物理坏道的情况。

  提示信息

  可能原因

  参考处理

  Invalid Partition Table

  分区信息中1BE、1CE、1DE处不符合只有一个80而其他两处为0

  用工具设定,操作在前面已经讲了。

  Error Loading Operating System

  主引导程序读BOOT区5次没成功。

  重建BOOT区

  Missing Operating System

  DOS 引导区的55AA标记丢失

  用工具设定,把前面读写主引导区程序的DX=80改为180即可

  Non-System Disk or Disk Error

  BOOT区中的系统文件名与根目录中的前两个文件不同

  SYS命令重新传递系统,

  Disk Boot Failure

  读系统文件错误

  SYS命令重新传递系统,

  Invalid Driver Specifcationg

  如果试图切换到一个确实存在的逻辑分区出现以下信息,说明主分区表的分区记录被破坏了。

  根据各分区情况重建分区表,或者用自动修复工具修复。注意分区丢失是最常见的故障之一,此时不要紧张,一般的说此时数据并没有问题,如果你不了解处理的方法。你可以选择我前面介绍的自动修复分区工具进行处理,他们大多只改写主分区表的数据区,不会影响你的其他数据。特别提醒大家,这些工具有的不支持8.4G硬盘,有的与BIOS对硬盘的识别有关系。如果你在一台机器上不行,可以换台BIOS不同的机器实验一下。

  Bad or missing command interpreter

  这是说找不到COMMAND.com,或者COMMAND文件坏了。

  如果你COPY过去COMMAND文件还是如此,一般来说是感染了某种病毒。

  Invalid media type reading drive

  X ,Abort,Retry,Fail?

  该盘没有高级格式化,或BOOT区中I/O参数表被破坏。

  这里情况较多,手工处理比较复杂,特别指出,此时DISKEDIT可能无法运行,建议用工具修复。

  Incorrect DOS Version

  可能是文件版本不统一,对9X来说,有95,95osr/2,98,98 oem/2等版本,重新SYS时,不要弄错了。

  用正确版本的启动盘重新SYS系统。

  另外说明一下,对于比较老的机器还有1071和not found rom basic、ROM BASIC OK等提示,在目前机器中以消失。另外,当代码区完全被破坏的情况下,系统关于无系统的提示是来自BIOS的,这条提示与BIOS的种类有关。另外,FDISK/MBR对代码区的重建是我们经常采用的。再介绍一种比较极端的情况,就是硬盘自检正常,而用软盘和硬盘都无法正常启动的情况,这可能是,病毒或恶意程序利用,DOS3以上版本启动中都要检索分区表这一特点,把分区表置为死循环。造成启动中死机。网上曾经流传过DOS6.22k修改方案,其实是修改西文MS-DOS6.22的 IO.SYS,把C2 03 06 E8 0A 00 07 72 03替换为:C2 03 90 E8 0A 00 72 80 90就可以启动被类似情况锁住的硬盘。

  ②、WIN9X无法正常进入或工作:以下仅仅是对可能的软故障分析,没有考虑硬件故障.

  进入图形界面前死机情况比较复杂,可能与加载的某些驱动有关可以在START MS WINDOWS时,用F8激活菜单,设置为step by step,看是哪项使系统死机。而后从CONFIG或者SYSTEM。INI中删除

  进入图形界面后死机: 一般这与开机加载的程序有关进入安全模式(此时自动运行的程序将不能加载),对注册表中的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run*中的键值和启动组中加载的程序进行分析。必要的予以删除。

  显示IEXPLORE.EXE错误,不能进行任何操作可能有某个系统的动态连接库损坏覆盖安装WIN9X,或从其他机器上COPY损坏的连接库。(确定哪个库损坏一般比较困难)

  频繁出现出错各种信息:一般是虚拟内存不足造成的看C盘是否剩余空间过少,或者打开的应用程序和窗口太多。

  2、全盘崩溃和分区丢失

  首先重建MBR代码区,再根据情况修正分区表。修正分区表的基本思路是查找以55AA为结束的扇区,再根据扇区结构和后面是否有FAT等情况判定是否为分区表,最后计算填回,主分区表,由于需要计算,过程比较烦琐,就不仔细介绍了,希望大家用前面介绍的工具,比如NDD处理。如果文件仍然无法读取,要考虑用TIRAMINT等工具进行修复。如果在FAT表彻底崩溃的情况下,恢复某个指定文件,可以用DISKEDIT或DEBUG查找已知信息。比如文件为文本,文件中包含“软件狗”,那么我我们就要把他们转换为内码C8 ED BC FE B9 B7进行查找。

  3、文件丢失、误格式化的情况

  一般的来说,文件删除仅仅是把文件的首字节,改为E5H,而并不破坏本身,因此可以恢复。但由于对不连续文件要恢复文件链,由于手工交叉恢复对一般计算机用户来说并不容易,在这篇缩略版中就不讲了,建议用工具处理,如果已经安装了Norton Utilities,可以用他来查找。另外,RECOVERNT 等工具,都是恢复的利器。特别注意的是,千万不要在发现文件丢失后,在本机安装什么恢复工具,你可能恰恰把文件覆盖掉了。特别是你的文件在C盘的情况下,如果你发现主要文件被你失手清掉了

  ,(比如你按SHIFT删除),你应该马上直接关闭电源,用软盘启动进行恢复或把硬盘串接到其他有恢复工具的机器处理。误格式化的情况可以用工具处理。

  4、文件损坏的情况

  一般的说,恢复文件损坏需要清楚的了解文件的结构,并不是很容易的事情,而这方面的工具也不多。不过一般的说,文件如果字节正常,不能正常打开往往是文件头损坏。就文件恢复举几个简单例子。

  类型

  特征

  处理

  ZIP、TGZ等压缩包无法解压

  ZIP文件损坏的情况下可以用一个名为ZIPFIX的工具处理。不过如果你的文件是从FTP站点上下载的,那么有可能是你没有定义下载模式为BIN。

  自解压文件无法解压

  可能是可执行文件头损坏,可以用对应压缩工具按一般压缩文件解压。

  DBF文件死机后无法打开

  典型的文件头中的记录数与实际不匹配了,把文件头中的记录数向下调整,遗憾的是公式我找不到了。

  5、硬盘被加密或变换

  此时千万不要FDISK/MBR,SYS等处理,否则可能数据再也无法找回,一定要反解加密算法,或找到被移走的重要扇区。对于那些加密硬盘数据的病毒,清除时一定要选择能恢复加密数据的可靠杀毒软件。

  6、文件加密后密码遗忘

  对于很多字处理软件的文件加密和ZIP等压缩包的加密,你是不能靠加密逆过程来完成的,因为那从理论上是异常困难的。目前有一些相关的软件,他们的思想一般都是用一个大字典集中的数据循环用相同算法加密后与密码的密文匹配,直到一致时则说明找到了密码。你可以去寻找这些软件,当然,有些软件是有后门的,比如DOS下的WPS,Ctrl+qiubojun就是通用密码。Undiskp的作者冯志宏是解文件密码的个中高手,大家不妨去他的主页看看。

  7、系统用户密码遗忘的处理:最简单的方法就是用软盘启动(NT的你也可以把盘挂接在其他NT上),找到支持该文件系统结构的软件(比如针对NT的NTFSDOS),利用他把密码文件清掉、或者是COPY出密码档案,用破解软件套字典来处理。前者时间短但所有用户信息丢失,后者时间长,但保全了所有用户信息。对UNIX系统,我建议你一定先做一张应急盘。

  下面举一些数据恢复或者软故障处理的例子,这些事例是从我参与大量的故障处理中选取的一些典型事例。在选取典型事例中,遵循了以下原则。

  ①、 处理过程能够表现一定思想,而不是纯粹的技术手段。

  ②、 处理过程本身并不算复杂,基本不出现汇编程序,一般读者能够理解。

  ③、 处理过程本身并不完美,中间可能犯了一些错误,有的甚至局部失败。可以使大家引为借鉴。

  ④、 处理过程本身并不仅仅是纯粹的逻辑思维,有人的心理活动对技术的干扰。以使大家能更好的避免这些。

  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做的,否则手工做确实太麻烦。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章