论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 1424阅读
  • 0回复

[原创文章]数据恢复大进阶轻松找回失落的数据 [复制链接]

上一主题 下一主题
离线笨熊维尼
 

发帖
8070
今日发帖
最后登录
2015-06-22
只看楼主 倒序阅读 使用道具 楼主  发表于: 2008-12-13 19:23:53
电脑中什么最昂贵?CPU?内存?或是硬盘?都不是,这里面任何一个部件都可以更换的,只有数据是最关键的,数据的丢失才是最大的损失。误删了数据,被病毒或软件破坏了硬盘分区表,这一切的一切对于一只菜鸟来说代价都是非常惨重的……   数据恢复就是找回丢失的数据,例如彻底删除某个文件或文件夹,重新格式化磁盘,重新分区磁盘等都会造成数据丢失。更严重的数据丢失是存储介质硬件损坏,例如,硬盘不小心摔坏了、硬盘根本就不认了、硬盘有大量坏道等。

数据恢复 准备篇

  在进行正式的数据恢复前,需要了解一些常见的数据恢复的原理,以便我们更好地恢复文件。 


1.文件误删丢失

  当我们存储一个文件时,操作系统首先在一个记录所有空间使用情况的表格中,找到足够容纳新文件的空间,然后把文件内容写到相对应的硬盘扇区上,最后在表格中标出该空间被占用了。当要删除一个文件时,一般并不对实际文件所占用的扇区进行操作,而仅仅是在该表格中指明那些空间是空白的,可以分配给别的文件使用。这时,被删除的文件的实际内容并没有受到破坏,可以恢复回来。但删除文件后,又重新创建了文件,那么被删除文件所占用的扇区就有可能被新创建的文件所使用,这时就无法恢复原来被删除的文件了。

2.硬盘分区表丢失

  分区表是硬盘的重要数据结构,管理整个硬盘空间。分区表丢失,表现为硬盘原分区或部分分区消失,在Windows 2000/XP的“磁盘管理器”中看到未分区的硬盘或未分区的空间。出现这个问题有多种可能。

(1)病毒:遇到比较厉害的病毒,分区表有可能被损坏或丢失,如CIH病毒等。

(2)重新分区:使用FDisk对磁盘重新划分空间,那么原来的分区表被新的分区表将取代,这时,原来分区的数据并没有损坏,仅仅是分区表指向了不正确的位置。

(3)误操作:有时进行如PQ或Ghost的操作时,如果出现断电或误操作的情况也可能会使硬盘分区表丢失。

3.硬盘剩余空间丢失

  由于某些原因使硬盘空间丢失,文件系统出现文件问题导致某些簇成为“孤儿”,这些可被ScanDisk扫描出来,并保存为CHK文件。这时候需要查看,这些CHK文件是否有用,然后才能删除,但通常这些文件是没用的。

数据恢复 备份篇

  有时当硬盘出现了物理损坏,最好是用Ghost的原始模式(RAW),把损坏磁盘按扇区备份到一个镜像文件中,然后再进行恢复操作,具体的方式如下。

第一步:将损坏的硬盘接到另外一台有足够硬盘空间的电脑上。

第二步:进入DOS版的Ghost,选择“Options”(选项),点击“Image/Tape”标签,然后选择“Image All”(全部镜像)项(见图1)。
第三步:在Ghost中选择“Local→Disk→To Image”,进行备份,然后在选择文件类型时,要选择“*.IMG”格式(见图2),以便其他软件打开镜像文件。

第四步:备份好的镜像文件可以用在虚拟机或恢复至相同型号的硬盘上进行数据恢复,也可使用如DiskExplore这种可以直接编辑镜像文件的软件尝试恢复。

数据恢复 上手篇

  对于菜鸟来说,能够简单应用几款最基本的软件,几乎就可以不再求助其他人而自行进行简单恢复了。

1.恢复被误删的数据

  如果要恢复被误删的数据,可以使用EasyRecovery,下载地址为http://sq5.onlinedown.net/down/fo-e604.zip,汉化版下载地址为http://zj.onlinedown.net/down/hb_easyrecoverypro60408_yy.rar。完成软件安装后,打开软件,点击窗口上侧的“Properties”项,然后选择“Language→简体中文”项,点击“确定”,重新进入软件,完成汉化。

第一步:进入软件,在窗口左侧选择“数据修复”,然后点击右侧的“DeletedRecovery”(见图3)。
第二步:这时会打开新窗口,在左侧选择要扫描的分区,在窗口右侧的“文件过滤器”中选择要恢复的文件扩展名,最后需要注意,如果要恢复的是文件夹,则需要勾选“完全扫描”项,完成后,点击“下一步”按钮,开始扫描被删除的文件。

第三步:扫描完成后,可以看到所有扫描到的误删文件,勾选需要恢复的文件,点击“下一步”,设置好文件恢复的路径,再次点击“下一步”即可。

小提示

  EasyRecovery的功能非常强大,还有“磁盘诊断”等非常强大的功能,大家可以自行试用。
2.恢复文件分区表

  如果是因为FDisk或是其他原因将硬盘分区表破坏,可直接使用Disk Genius(下载地址:http://nj2.onlinedown.net/down/DGen20b0219.zip)进行恢复。

  将软件下载后,拷贝至引导盘,然后在DOS下运行Disk Genius,选择菜单中的“工具→重建分区表”即可恢复。

3.恢复被删除的空间

  如果你的硬盘剩余空间突然减少,在并没有丢失重要信息的情况下,可以使用磁盘扫描程序对硬盘进行扫描,然后删除掉所有CHK文件即可。

数据恢复 高级实例篇


  上面的介绍已经足够菜鸟进行日常的恢复了,我们下面要介绍的是一些高级的硬盘恢复实例,对于大家很有指导意义。

实例1:手动恢复被CIH破坏的数据

  N年前由于中了CIH病毒,无法引导操作系统。20GB硬盘系统分为3个分区,第一个分区是FAT32,大约5GB,第二个分区也是FAT32,大约8GB,最后一个分区是NTFS,重要的数据都在第二个分区上,只要恢复第二个分区就可以了。在当时,修复硬盘的自动化工具还很少,所以完全需要手工计算来恢复分区表。其实目前的自动化的工具也是使用类似的原理来修复,电脑计算比人工计算要准确得多,但有可能产生误判,所以依然需要人工辅助。

第一步:使用DOS引导盘启动,运行Norton的DiskEditor工具(见图4),以物理磁盘的方式访问(逻辑磁盘信息全部丢失),发现MBR完全是无效代码,分区表也无效,查看随后的C区所在扇区,同样是混乱数据,查看硬盘后面的扇区,看到很多熟悉的文件名字,判断是硬盘前面部分被覆盖,后面数据可能没有受损。


第二步:确定D区及E区的开始和结束位置,在磁盘上搜索特征字符串,如“55AA”(扩展分区表和分区的DBR的结束标志),或者根目录的某些特殊文件名字。由于搜索速度比较慢,又因为C区大约为5GB,所以可以从3GB甚至4GB的位置开始搜索。为了保险,从硬盘的3GB的偏移位置开始搜索DBR,规则条件有:“55AA”在扇区结尾,扇区开始有FAT32的签名(OEM和FAT32等字样),随后扇区有比较整齐的FAT数据,向前63扇区是扩展分区表等。满足的条件越多,可能性越大,经过一系列的比较和判断(这种工作手工方法非常吃力),终于找到了D区的DBR,也就是D区实际的第一个扇区,向前偏移63个扇区,发现扩展分区表完好无损,这样就找到了完整的扩展分区。

第三步:在主分区表中写入扩展分区的起始和结束信息以及相关的内容。

第四步:重新用DOS系统盘启动,发现了原来的D区,数据完好无损,而E区由于是NTFS,无法访问,但其实E区也没有损坏。

  通过这样一番搜索,重建了丢失的扩展分区分区表,100%恢复了重要数据分区D区。使用磁盘工具重建分区表的过程基本类似,都是通过分析相关的信息重建分区表。其实这次数据恢复经历,完全可以用Disk Genius工具来恢复,而且更加方便一些。
实例2:分区表、FAT表丢失的数据恢复

  一个朋友拿着一个4GB的硬盘来找我,说启动后看不到分区,但里面有一个重要数据文件,也没有备份。
我把这块有问题的硬盘接到我的电脑上,然后大概了解了一下硬盘的情况,询问硬盘损坏的原因:打开电脑,无法启动,主板似乎没有自检,怀疑主板坏了,换了一块主板,发现只能在BIOS里面找到硬盘,而不能进入系统,接到别的电脑上,也看不到分区。初步判断为分区表丢失,如果仅仅是分区表丢了的话比较简单……

第一步:粗略查看硬盘数据。运行WinHEX(下载地址:http://sq3.onlinedown.net/down/winhex.zip)(见图5)或RunTimes的磁盘工具DiskExplorer(下载地址:http://sq.onlinedown.net/down/diskexpl.zip),选中需要的物理硬盘。然后拖动滚动条,浏览一遍整个硬盘,可以看到一些有意义的字符串,还可以见到大批的零数据,当然更多是看不懂的内容。这个没有关系,至少目前说明硬盘没有什么明显物理损坏或逻辑坏道。


第二步:自动寻找。用EasyRecovery里面的工具试图自动找到分区,但没有成功。

第三步:试图重建分区表。查看第一个扇区也就是MBR的内容,发现分区表完全损坏。如果仅仅是分区表损坏,完全可以通过搜索分区,然后根据分区的偏移重建分区表。

第四步:了解分区情况,如硬盘分有几个区,每个分区大概多大,分区格式是什么。经过询问,了解到电脑大概是1999年左右买的,装的是Windows 98,不知道几个分区,不知道分区文件系统是FAT16还是FAT32,不知道重要的数据保存在哪个分区,哪个目录名。虽然一问三知,但至少知道是FAT,不是NTFS,而且很可能是FAT32(纯属猜测)。根据经验,一般第一个分区从第64个扇区开始,这个扇区是分区的第一个扇区,对于FAT来说,是引导扇区,里面存储着BPB数据。从起始扇区一直浏览到第64个扇区,前面扇区的数据都很混乱,不像是空白的样子,怀疑被病毒改写了,看这样的症状,猜测是CIH,损坏BIOS,导致主板不能启动,同时搞乱C区的数据。一直到远远超过了64个扇区的时候,也没有看到可能是FAT引导扇区的扇区。直接搜索扇区尾部的55AA,搜索了一会,似乎没有找到引导扇区。

第五步:寻找根目录。找不到引导扇区,无法定位分区的开始,从而无法定位FAT文件分配表的位置。换个思路,根目录一般就在FAT表后,挨着FAT表,所以决定搜索根。看看其他电脑中Windows 98的根目录,有MSDOS这个文件名,于是搜索MSDOS这个字符串。很幸运,找到了,在大约第16700个扇区里面,然后倒退几个扇区,发现了FAT表,FAT表一般是排列很整齐的数据。如果不知道FAT表是什么样的,那么你打开你自己的硬盘,看看FAT的16进制表示,就知道这个很整齐大概是什么样子了。这样看来,第一个分区大概在硬盘的8M(16700*512/1024/1024=8M)左右的位置开始的。 找一个磁盘编辑工具,如DiskExplorer,从目录径扇区的开始位置用根目录的模式查看,熟悉的文件名字出现了,说明这里确实是根目录所在的扇区。查看FAT表,似乎前面部分的FAT损坏了一部分,而后面的比较完好,同时 还是没有找到引导扇区,看来引导扇区被破坏了。

第六步:再一次自动寻找。根据前面的信息,已经可以推算出大部分的信息了,但是手工劳动比较辛苦,还是试一试自动化的工具。

  于是,再一次运行EasyRecovery,点击“数据修复→AdvancedRecovery”,然后在弹出窗口中点击只有当所选硬盘没有分区时,才可使用的“高级选项”按钮。第一次自动寻找的时候,就是使用了缺省的设置,所以搜索失败,根据前面的分析,设定搜索范围从16000个扇区开始,分区类型选择FAT32、FAT的匹配模式,同时选择忽略FAT表(缺省时候是最佳匹配),然后就可以看到EasyRecovery不断的显示出查找的文件。

第七步:导出重要数据。可以说EasyRecovery恢复得还是比较成功的,恢复出了相当多的目录结构,关键是我看到了Lock2000目录,这就是我们要寻找的重要数据目录。其他没有关系的数据就不要了。存储Lock2000目录后,打开文件,发现大部分文件完全恢复,少部分在最后面出现了乱码,也就是最后面的数据不太对。

  历时1个小时,数据恢复基本上是成功的。得到的教训是,要充分利用自动化工具。不过,随着大硬盘的增多,自动化工具扫描一次非常费时间,即使4GB的硬盘也是比较慢的,在实例一中搜索20GB的硬盘是很慢的,要有耐心。所以要注意收集信息,信息收集越充分,提供给自动化工具的信息越多,数据恢复的可能也越大,速度也越快。

小提示

  前面讲的2个例子都没有备份数据,这是因为实例一是分区表彻底损坏,而后来仅仅修改了分区表,所以不必备份数据;实例二是因为现在的数据修复工具基本上考虑到了保存原始数据的必要性,一般不是直接在硬盘上操作,而是仅仅在内存中重建FAT等操作,基本没有写硬盘的操作,因为没有对硬盘的写操作,所以不需要备份数据。

  但是重申一点,重要数据最好备份,否则一旦误操作,就后悔莫及了。
实例3:误删除文件的恢复

  对于误删除的文件,我们有很多选择,如FinalData、Recover4ALL、EasyRecovery,这些软件使用很简单,直接按照向导的指示就可以了。

  下面介绍一种手工恢复被删除数据的方法,特别是使用这种自动化的方法恢复无效的时候,这种方法适合恢复有明显特征的结构简单的文件,如文本文件的恢复。

  微软公司的VC6有个一直没有修改的BUG:存储写好的程序代码时,偶尔会弹出一个对话框无法存储文件,这时必须再存一次才可以,如果你直接关闭VC6,就会发现刚才那个文件被删除了。刚好我的一个朋友就遇到了这样的BUG,他很费劲才调试好的很长的文件就失踪了。我先试用了前面介绍的软件,结果找出很多以前删除的文件,就是没有需要的。没有办法的情况下,只好使用强行搜索的方法了。
第一步:运行WinHEX,选择菜单中的“Tools→Open Disk”,选择误删除文件所在C区。

第二步:选择“Search”菜单项,使用“Find Text”项,在打开的C区上直接搜索程序代码中的特征串“增加了处理Reg_Expand_SZ”(见图6)。


第三步:经过一段时间后,把找到代码所在扇区的前后几个扇区全部复制下来(见图7),拷贝到一个新的文件中,这样就找回了原来的代码。

  如果文件分散在分区的多个位置,还需要根据文档的内部结构来重新组织文档,才能彻底恢复数据。

  误格式化的原理与此非常类似,仅仅是快速格式化时,并没有覆盖原来的数据,所以可以恢复。

实例4:恢复被占用的空白空间

  近日,在DOS下运行Ghost的硬盘分区(Partition to Image)映像备份,将系统分区C区备份到另一磁盘E区时,意外发生了断电。待来电时,进入Windows后,却收到了“磁盘空间不足”的报警,打开E区“属性”,才发现不见了近1GB的磁盘空间,可是找遍了“E:”盘的每个角落,除了因备份失败增加了一个0字节的Windows XPsp2.GHO映像文件外,没有其他变化。

  由于Ghost备份是在DOS下被意外中止的,会不会是造成了“磁盘中的簇丢失”?于是,运行Windows磁盘扫描程序试试。在“我的电脑”中右击E区图标,选择“属性→工具”,点下“查错”中的“开始检查”按钮,在弹出的选框中把“自动修复文件系统错误”、“扫描并试图恢复坏扇区”两项选中,并按下“开始”,重启电脑即可运行针对E区的磁盘扫描了。

  重新进入Windows,打开“资源管理器”选取本地磁盘“E”,此时就E盘中会出现名为“FOUND.000”的文件夹(该文件夹为隐藏文件夹),打开后就可见到占用磁盘空间的“原凶”──还原碎片文件“FILE0000.CHK”已在其中等候你的处置了,将它删除即可。