如何恢复丢失的数据(一)
随着科技的飞速发展,原先困扰我们的速度、容量等问题都已经成为过去式,就在你体验着高速CPU、大容量内存和硬盘带来的乐趣时候,是否忽视了一个重要问题:数据的保护。正因为计算机中最重要的就是各种数据,当你由于误操作删除了一些文件、遭受病毒侵袭、硬盘格式化、克隆或者因为系统故障导致了重要数据丢失,此时你应该如何对付呢?其实各位不用担心,上述的这些数据丢失并非无药可救,在一定条件下全部或部分数据还是可以恢复回来的,下面就让笔者告诉你怎样做。
硬盘中最外面的一圈称为零磁道,上面记录了硬盘的规格、型号、主引导记录和目录结构等一系列重要信息,硬盘中的每一个文件都在这里有记录,相当于文件的户口簿。在读取文件时,首先要寻找零磁道的有关文件的初始扇区,然后才能真正找到文件相关数据。在删除文件的时候,系统仅仅对零磁道的文件信息打上删除标记,但这个文件本身并没有被清除,只是文件占用的空间在系统中被显示为释放,所以只要及时抢救,还是有很大希望恢复数据的。那么到底怎样才能恢复丢失的数据呢?下面就让我们一起来看看吧。
格式化之后的数据恢复
格式化是大家经常需要使用到的一个操作,在格式化操作过程中有可能出现两方面问题:
●在Windows的资源管理器中选错了需要格式化的盘符,结果导致了错误格式化;
●使用Windows NT/2000/XP的朋友忘记了C盘主分区采用的是NTFS格式,结果采用Windows 98引导盘启动计算机之后却误将存放数据的D分区或者是其它的FAT32分区格式化。
这两种格式化方式并没有把硬盘上的文件数据清除,而是重写了FAT表而已,绝大部分的文件数据并没有被破坏,所以许多硬盘数据能够得以恢复。只要切换进入纯DOS状态,然后通过“unformat x:”命令可以恢复已经被格式化过的分区。不过这个命令虽然几乎能恢复所有的文件,但同时会将目录的层次结构丢失,再加上一些朋友对于DOS命令不是很熟悉,因此建议大家直接在Windows中使用Final Data对误格式化的分区进行数据恢复。
为了便于介绍,我们先在一个容量为13GB的分区中复制大约1GB左右的文件,接着直接在资源管理器中右击鼠标对其进行格式化操作,格式化完成之后,再通过Final Data进行数据的恢复。
1.点击Final Data的“File→Open”命令,在弹出的“Select Drive”窗口中选择刚才格式化的分区(此处为J盘),然后按下右边的“Find Format”按钮(图1)。
2.接着会出现图2所示的窗口(图2),这里可以设定Final Data搜索磁盘的起始和结束文件簇,适当的调整这两个参数可以减少文件搜索的时间。在此例中,我们知道原来的分区中存放了1GB左右的数据,这时就可以将起始文件簇设置为0,而结束的文件簇根据换算之后填写。设置完成之后按下“OK”按钮开始查找原先分区中的数据。
3.在搜索过程中,Final Data会自动分析目录和文件,每一个找到的文件都会在中间区域显示出来(图3)。需要提醒大家注意的是这个搜索过程比较长,尤其是对一个容量比较大的分区进行完全扫描的时候需要数十分钟,因此这个过程请大家耐心等待。
4.当Final Data完成所有的检查后,会将所有文件分类后以表格形式详细列出来,包括已删除的目录和删除的文件等类别。比如我们在“Lost Dir”目录中打开一个文件夹就能够看见其中的文件名称,同时还能够了解这些文件的名称、大小、目前状态(是否可以恢复)和创建时间等详细信息(图4)。
5.找到需要恢复的文件之后,先选中它并运行“File→Save”命令即可将这个文件重新保存下来,不过在恢复的时候不能将其存放在原先的分区中。
另外,使用Final Data时还要注意几点:
●Final Data分为Windows 9X和Windows NT两个版本,因此需要根据自己的操作系统选择。
●Final Data同样支持NTFS格式,因此即使在Windows 2000/XP下误格式化了分区也可以进行恢复。
●如果在DOS中误格式化了系统所在的分区,可以将硬盘拆下装到另外一台计算机中,然后用Final Data进行修复。
实际操作中,有些朋友也许会发现误格式化之后立即取消操作,或者是强行关闭计算机来中止格式化,如果这样将会破坏改分区的根目录文件目录表,导致在DOS或者是Windows中都无法识别改分区,只有重新格式化之后才可以正常识别这个分区。所以当你发现误格式化了一个分区之后不要强行中断操作,而是让它继续完成格式化操作,但是在格式化完成之后不要往这个分区中写入任何文件,以免新文件覆盖原有文件的磁道而导致文件无法恢复。
如果在误格式化后往改分区中写入了一些文件,恢复数据就要看你的运气了。由于格式化的时候并没有将硬盘中的数据删除,而是将文件第一个字节对应的文件簇更改为0,在往这个分区中写入文件时系统首先会检查是否存在更大的空白可用区域,等所有的空间用完之后才会重新使用这块区域。比如格式化之后往分区中复制一个大小为100MB的文件,这时系统首先会查看改分区中是否有大于100MB的空白区域,如果有则直接往这个区域中写入数据,否则将选择比较大的空间,然后再将剩余的数据写入到其它可用空间中。一旦新复制的文件占用了原先文件所在的文件簇,那么原先的文件才是真正的被改写,也就回天乏术了。
其实除去Final Data之外还有一些工具能够帮助我们恢复误格式化硬盘中的数据,比如EasyRecovery、RecoverNT、Drive Rescue等等,它们的使用与Final Data差不多,但是有的不支持NTFS格式、有的数据恢复功能方面略逊一筹,如只能恢复文件不能恢复目录,有兴趣的朋友也可以自行尝试一下。
误克隆还原系统之后的数据恢复
为了能够快速恢复操作系统,大家都会采用Ghost、Image Pro等克隆软件将系统所在的分区镜像保存,而且一些品牌机都随机赠送了恢复光盘,当系统出现故障时,只要将恢复光盘放入光驱中重新启动计算机就可以很快捷的把系统恢复到出厂时的状态。如果在对系统进行刻录还原的时候出现了错误,那怎么恢复数据呢?
在还原系统的时候,一般会出现下面两种类型的错误:
●错误覆盖非系统区,比如Windows系统安装在C盘,但是使用Ghost克隆恢复的时候却选中了D盘。
●厂商附带的恢复盘默认自动将整个硬盘看作一个分区,恢复之后导致其余分区丢失,只显示一个单独的C盘。
对于第一种错误来说,把镜像恢复到D盘之后会覆盖原先分区中的部分文件而导致数据丢失。不过通常系统分区所占用的空间都不是很大,即使部分数据被覆盖,也会有一些幸免遇难的文件,只是它们被标记为删除状态,因此我们还是可以通过Final Data来搜索一下分区中是否还有可以恢复的文件。
此时在图1所示的窗口中选择需要扫描的分区(比如D分区),点击“OK”键之后设定搜索的文件簇为整个分区。在搜索完成之后,Final Data会提供出当前硬盘中所有的文件目录和被标记为删除状态的文件(图5),用鼠标点取需要恢复的文件并将其转存在其它分区中即可。
对于第二种错误而言,数据的恢复就比较麻烦了。比如我们有一款11GB的硬盘,原先分为C、D、E三个分区,但是使用随机赠送的恢复光盘之后只剩下一个C分区,大小已变成了整个硬盘的大小,下面就来看看怎样恢复原有硬盘中重要的数据。
在系统恢复之后,C分区的内容已不再是以前C盘的内容,而且现有C盘的已用容量明显少于原来C盘的总容量,可以初步判断在克隆还原的时候并没有对整个硬盘进行改写,仅仅是对系统信息(如硬盘分区表、文件分配表FAT、文件目录表FDT)与有效数据的文件簇进行改写,因此硬盘中的其它区域并未被覆盖,只是破坏了系统的分区链表,并在FAT中标注为空闲。
由于原先C盘大小为4GB左右,并不清楚原来C分区的具体大小,因此只能搜索整个硬盘。对于D、E两分区的数据恢复可以通过下述步骤完成。
1.使用Final Data软件,搜索整个硬盘发现三个分区,其中C盘为3004MB,D盘为4994MB。查找第二个分区和第三个分区之后能够查看到原先的目录结构,这时可以断定D盘和E盘的数据并没有丢失。
2.因为Final Data并不能恢复系统分区表,只能逐个文件地还原,所以恢复D盘和E盘中数据的一种方法是外挂一块硬盘,并且一个一个地将整个的D和E盘上的数据另存还原。这种方法适合于计算机新手使用,但是这种做法很浪费时间,而且还需要单独找一块硬盘作为数据的保存,如果你熟悉DEBUG程序的话,不妨采用其它的方法实现。
3.通过DiskEdit编辑硬盘,从25%位置开始查找第二个分区信息,找到D和E盘的分区链表信息之后将这些信息记录下来。
4.在DOS环境下,进入DEBUG,用A100命令键入如下代码,用G命令执行并调出硬盘的分区表:
MOV AX,0201
MOV BX,200
MOV CX,1
MOV DX,80
INT 13
INT 20
5.在DS:3DE位置处,用E命令填入刚才记录的分区链表信息,重新构造分区链表。
6.将MOV AX,0201语句替换为MOV AX,0301,重新键入G命令执行,将修改后分区表内容写回硬盘。
7.重新启动机器,在Windows的资源管理器中重新出现了D和E盘,并且可以看见所有的数据都已经恢复了。
最后来恢复C盘中的数据,由于C分区被覆盖了部分数据,因此不能使用恢复D和E分区的方法一次性地全部恢复各个文件,而是要通过Final Data搜索现有的C分区,然后逐个文件地进行恢复。
从上面介绍的数据恢复可以看出。在克隆系统时候不仅需要正确选择还原的目标盘符,同时还要注意恢复光盘是否默认将整个硬盘当作一个分区看待,如果存在这种情况就尽量不要使用恢复光盘。另外,在Windows系统所在的分区尽量不要存放重要数据文件,以防止克隆时被覆盖丢失。
|