第4章 数据恢复
4.1.1造成硬盘数据丢失的原因
数据丢失的可能原因如下:
(1)恶意程序的破坏;
(2)误操作;
(3)操作系统或应用软件的错误;
(4)硬件失效;
(5)加密和权限;
(6)断电。
数据丢失的主要表现如下:
(1)不能进入系统;
(2)出现坏道;
(3)分区丢失;
(4)文件丢失;
(5)密码丢失;
(6)文档打不开或出现乱码。
现有的数据恢复实践和经验表明:大多数情况下,用户找不到的数据往往并没有真正丢失和被破坏,80%的数据都是可以恢复的。下面介绍常见的几种数据丢失的原因及恢复。
1.病毒破坏
破坏硬盘数据信息是计算机病毒主要的设计目的与破坏手段。有些病毒可以篡改、删除用户文件数据,导致文件无法打开,或文件丢失;有些更具破坏力的病毒则修改系统数据,导致计算机无法正常启动和运行。针对病毒导致的硬盘数据丢失,国内各大杀毒软件厂商都有了相当成熟的恢复经验,例如,江民科技的KV系列杀毒软件就曾将恢复这类数据的过程在软件中设计成了一个模块,即使是初级的用户也只需经过简单的几个步骤就可恢复85%~100%的数据。
2.软件破坏
软件破坏通常包括误删除、误格式化、误分区、误克隆等。目前的硬盘数据恢复技术对于软件破坏而导致的数据丢失恢复成功率相当高。此类数据恢复技术已经可以对FAT12、FAT16、FAT32、NTFS4. 0、NTFS5. 0等分区格式,DOS、Windows NT/2000/XP、UNIX、Linux等操作系统完全兼容。
3.硬件破坏
如果是介质设备硬件损坏,电路板有明显的烧毁痕迹或设备(如硬盘)有异响或BIOS不识别硬盘参数。对于这类故障,通常要首先排除硬件故障,使介质在特殊的工作平台上能正确地工作;其次是要确认所发生的硬件故障没有破坏存储数据的介质本身,这种情况下数据恢复的概率就相对要低多了。
4.1.2恢复数据的原则
数据修复就是把遭受破坏或误操作导致丢失的数据找回来的方法,包括硬盘、软盘、可移动磁盘的数据恢复等。数据恢复可以针对不同操作系统(DOS、Windows NT/2000、UNIX、NOVELL等)的数据进行恢复。对于一些比较特殊的数据丢失,如数据被覆盖、低级格式化、磁盘盘片严重损伤等,数据恢复可能会出现完全不能恢复或只能恢复部分数据。
如果希望在数据恢复时保持最大程度的恢复率,应遵循以下几项原则。
(1)发现问题时,如果可能,应立即停止所有的写操作,并进行必要的数据备份,出现明显的硬件故障时,不要尝试修复。
(2)恢复数据时。如果可能,则应立即进行必要的数据备份,并优先抢救最关键的数据,在恢复分区时则应优先修复扩展分区,再修复C区(主分区)。
1.软件恢复和硬件恢复
(1)软件恢复:又称为逻辑恢复,软件造成的数据丢失现象一般表现为无操作系统、读盘错误、找不到文件、打不开文件、乱码、报告无分区、无格式化等。
造成数据丢失的软件原因分为病毒破坏、误格式化、误分区、误克隆、误操作、网络删除几。磁道损坏、硬盘逻辑锁、操作时断电。其中,病毒感染(分区表被损坏)、误格式化、误删除、误分区是发生最多的四种情况,造成的影响也是很严重的,往往是整个硬盘的数据全部丢失。碰到这样的情况,千万不要再用该存储器进行操作,也不要在该硬盘上写任何数据,因为这会直接影响到数据的恢复率。尤其是Windows操作系统,因为每次系统启动都会产生大量的临时文件,这些临时文件很可能把其他宝贵的数据彻底冲掉。
(2)硬件恢复:又被称为物理恢复,硬件故障往往有盘面划伤、磁组撞毁、芯片及其他原器件烧坏等。
硬件故障一般表现为系统不认硬盘,或者有“咔嚓咔嚓”的磁组撞击声或电机不转,通电后无任何声音,读写出错。因硬件原因的丢失数据更要注意数据丢失后的保护工作,不应继续对该存储器反复测试,否则,将造成永久的损坏。
2.数据可恢复的前提
数据恢复作为一个数据再现的过程,一定要解决两个问题,第一是从哪里恢复的问题,第二是怎么恢复的问题。实际应用恢复实际有效性的判定是关键,硬盘无法自举、文件找不到、文件打不开等现象,其实并不一定是数据丢失。因为此时的数据丢失从操作系统的角度看只是一种逻辑丢失,而从物理扇区意义上讲,它仍然存在或部分存在。最明显的就是文件删除的例子,事实上,这只是把文件首字节改为0E而已。而此时文件体依然存在。
1)数据丢失可恢复性分析
(1)数据损坏过程的可逆性分析:对数据的改变无非两种:取代和变换,前者是不可逆的,而后者则是可逆的。以杀毒为例,对于大多文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想的杀毒过程就是感染的逆过程。
(2)数据本身是否是标准信息:有些信息实际是通用或局部通用的,无须考虑如何从本机抢救。只要相同或相近的系统版本就可以了,如BOOT区、隐含扇区、Windows的DLL文件等。例如,分区表的代码区,这是一段标准代码,事实
上,它就放在Fdisk程序里面,可以用Debug程序把它提取出来。
(3)数据本身是否可以由其他信息统计再生:有些信息尽管丢失了,也没有备份,但它实际可以从其他数据中间接求得。最典型的就是主分区表中的分区信息,即使把它清零也没关系,因为可以从几个分区中计算再生。事实上,Fdisk、格式化都不会彻底破坏数据,一般只有低级格式化和扇区覆盖操作才会彻底破坏数据。但有时破坏过程或者误操作过程会因人工终止、死机等原因不能完成。最明显的就是CIH病毒的例子,由于CIH是以1024B为单位覆盖扇区,这当然是不可逆过程,于是最初都认为,破坏是很难恢复的,除非人工终止。事实上,当病毒覆盖某些扇区时会与Windows XP系统发生冲突,从而造成死机,使数据得到了保护。
数据恢复的本质是数据的冗余,在众多的冗余手段中,日志也许是最常使用的技术(尽管还有许多其他的选择,如影子页面等)。在对数据库进行修改之前,系统会将数据修改前的影像(前项)和要修改的数据影像(后项)保存在日志当中。在这个过程中,有两点需要保证:一是日志必须先于它对应的修改被写入数据库,这称为先写日志(WAL)协议。这很容易理解,想象一下,如果修改被先写入数据库,而系统在日志被写入之前崩溃了,那么它将无法把该事务数据恢复到开始的状态。二是在事务提交之前,必须将它的日志写入灵敏据库,否则,系统无法保证后续的故障不会丢失该事务的修改。
2)数据丢失的几种原因及处理方法
(1)应用故障:例如,用户不小心错删了一张表,或者应用破坏了完整性约束。这种故障的数据恢复非常简单,对于前者,可以显示滚回事务(常用日志前项)。如果不小心提交了事务,数据就不好再恢复了,系统也许只能把它当作介质故障(利用备份)来恢复数据了。对于后者,系统会强迫把该事务滚回。只要数据库还在运行,在系统看来,事务的滚回与其他正常操作并没有什么区别。
(2)进程故障:假如在系统运行时,一个相关终端崩溃或者网络断了(通常服务器无法区别这两种状态),或者服务器端的某个进程死了。这时应为系统配置一个监视进程,由它来定期地检查系统状态、数据恢复或清除失败的进程(连接),同时把对应的事务滚回。
(3)系统故障:假如系统因为内部错误,(例如,数据库或操作系统含有漏洞),或者发生断电。这时缓冲区里的数据全部丢失,但磁盘上的数据还在,因此系统在重新启动后,首先重做所有事务的修改(利用日志的后项),以便让数据库回到了发生故障时的状态,这时再将所有在这一点上未提交的事务滚回就可以了:注意:此过程是自动完成的。
(4)介质故障:假如磁盘出现了坏磁道,或者整个磁盘损坏,这时上面的数据肯定已经丢失了。由于介质故障只能在试图再次存取磁盘时被发现,而这时故障可能早已发生,因此对介质故障的数据恢复需要定期地备份数据库。这样,当介质故障发生时,可以先用备份重新覆盖整个数据库(RESTORE过程),然后利用日志重做从备份那点到当前的数据库的更新(ROLL - FOGWARD过程)。
(5)灾难故障:若遇到火灾、被黑客攻击的,这时整个系统可能被完全破坏,此时可以对数据库进行备份,但备份以后数据库所做的修改可能就永久丢失了。一个更为稳妥的办法是在远程建立一个备份系统,所有在本地产生的日志同时也送往这个远程系统。为了防止网络发生故障,本地与远程系统之间应该同时建立几条相互独立的网络连接。
应该说明的是,数据恢复毕竟是一种非常耗时间的工作,特别是进行后三种故障的恢复时,数据库对用户不可用。而这对像银行这样的部门来说,损失实在太大了。因此在很多情况下,只把数据恢复看作是最后的道防线,因此就出来了各种各样的容错设备,像RAID、双机系统,它们会把故障发生的概率降到最低。
4.2.2数据恢复软件
很多数据恢复软件都各有特点,数据恢复率也有所差异。这里就介绍一些典型的数据恢复软件,供读者参考。
1. WinHex
WinHex是使用最多的一款在Windows下运行的十六进制编辑软件,此软件功能非常强大,有完善的分区管理功能和文件管理功能,能自动分析分区链和文件簇链,能对硬盘进行不同方式不同程度的备份,甚至克隆整个硬盘;它能够编辑任何一种文件类型的二进制内容(用十六进制显示),其磁盘编辑器可以编辑物理磁盘或逻辑磁盘的任意扇区,是手工恢复数据的首选工具软件。下面通过一个实例介绍WinHex的使用方法。
(1)双击桌面上的图标打开“WinHex”窗口,如图4-1所示。
(2)单击“打开磁盘”按钮,弹出“编辑磁盘”对话框,选择丢失文件所在的盘符,如图4-2所示。
(3)单击“确定”按钮,弹出“WinHex-盘符”窗口,此时在选项卡中可以查看找到的所有文件,如图4-3所示。
(4)找到了丢失的文件后就可以对其进行恢复了。首先选择想要恢复的文件夹选项,然后单击右键,从弹出的快捷菜单中选择如图4-4所示的“恢复/复制”菜单项。
(5)随即弹出“选择目标文件夹”对话框,然后在下方的列表框中选择恢复文件的存放路径,如图4-5所示。
(6)单击“确定”按钮,弹出“正在复制”对话框,此时系统开始恢复丢失的文件至指定的路径,如图4-6所示。
(7)恢复完成会弹出提示对话框,提示用户已经恢复的文件和目录数以及恢复文件的总容量等信息。如图4-7所示。
(8)单击“确定”按钮即可完成文件的恢复操作,如图4-8所示。
(9)按照恢复文件的存放路径打开窗口,可以发现所有丢失的照片文件已被全部恢复,如图4-9所示。
2.几种数据恢复软件界面图
1)EasyRecovery
EasyRecovery是一款非常强大的硬盘数据恢复工具,该软件可以恢复容量大于8. 4GB的硬盘,支持长文件名。EasyRecovery V6. 00. 09版本还使用了全新的数据恢复引擎,能够对ZIP文件以及微软的Office系列文档进行修复。EasyRecovery不会向原始驱动器写入任何数据,它主要是在内存中重建文件分区表,使数据能够安全地传输到其他驱动器中。其软件界面如图4-10所示。
2)FinalData
当文件被误删除(并从回收站中清除)、FAT表或者磁盘根区被病毒侵蚀造成文件信息全部丢失、物理故障造成FAT表或者磁盘根目录区不可读、磁盘格式化等原因造成的全部文件信息丢失之后,FinalData都能够通过直接扫描目标磁盘抽取并恢复出文件信息(包括文件名、文件类型、原始位置、创建日期、删除日期、文件长度等)。用户可以根据这些信息方便地查找和恢复自己需要的文件,甚至在数据文件已经被部分覆盖以后,专业版FinalData也可以将剩余部分文件恢复出来。FinalData软件主界面如图4-11所示。
3)File Scavenger 2. 1
File Scavenge:是一款能够恢复在NTFS格式下数据被意外删除的工具,其软件主界面如图4-12所示。全面支持Windows 2000/XP/NT系统(但前提条件是所删除的硬盘尚未被改写新的文件上去),提供了找寻文件类型功能,如*. doc及*. txt。能够恢复的文件不只单一文件,还包括整个目录及压缩文件,也支持恢复的文件选择在原来所在位置或储存到其他的硬盘。