一、数据恢复基础知识 
说到数据恢复,我们就不能不提到硬盘的数据结构、文件的存储原理,甚至操作系统的启动流程,这些是你在恢复硬盘数据时不得不利用的基本知识。即使你不需要恢复数据,理解了这些知识(即使只是稍微多知道一些),对于你平时的电脑操作和应用也是很有帮助的。 
我们就从硬盘的数据结构谈起吧…… 
1、 硬盘数据结构 
刚出厂一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。就拿我们一直沿用到现在的Win9x/Me系列来说,我们一般要将硬盘分成主引导扇区、操作系统引导扇区、FAT、DIR和Data等五部分(其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加)。 
主引导扇区: 
主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS 的Fdisk.exe)产生的,不同的操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区病毒)。 
操作系统引导扇区: 
OBR(OS Boot Record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS 的Format.com)。 

文件分配表: 
FAT(file Allocation Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份, FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。 
FAT的格式历来有很多选择,Microsoft 的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。 
目录区: 
DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。 
数据区: 
DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……)。 
2、硬盘分区方式 
我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。 
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。 
扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。 
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。 
需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。 
3、数据存储原理 
既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题…… 
文件的读取 
操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。 
操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。 
文件的写入 
当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的动作和上边的读取动作差不多。 
文件的删除 
看了前面的文件的读取和写入,你可能没有往下边继续看的信心了,不过放心,Win9x的文件删除工作却是很简单的,简单到只在目录区做了一点小改动——将目录区的文件的第一个字符改成了E5就表示将改文件删除了。 
Fdisk和Format的一点小说明 
和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘完全有可能恢复…… 

系统启动流程 
各种不同的操作系统启动流程不尽相同,我们这里以Win9x/DOS的启动流程为例。 
第一阶段:系统加电自检POST过程。POST是Power On Self Test的缩写,也就是加电自检的意思,微机执行内存FFFF0H处的程序(这里是一段固化的ROM程序),对系统的硬件(包括内存)进行检查。 
第二阶段:读取分区记录和引导记录。当微机检查到硬件正常并与CMOS设置相符后,按照CMOS设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区记录(DPT)和主引导记录(MBR)。 
第三阶段:读取DOS引导记录。微机正确读取分区记录和主引导记录后,如果主引导记录和分区表校验正确,则执行主引导记录并进一步读取DOS引导记录(位于每一个主分区的第一个扇区),然后执行该DOS引导记录。 
第四阶段:装载系统隐含文件。将DOS系统的隐含文件IO.SYS入内存,加载基本的文件系统FAT,这时候一般会出现Starting Windows 9x...的标志,IO.SYS将MS.SYS读入内存,并处理System.dat和User.dat文件,加载磁盘压缩程序。 
第五阶段:实DOS模式配置。系统隐含文件装载完成,微机将执行系统隐含文件,并执行系统配置文件(Config.sys),加载Config.sys中定义的各种驱动程序。 
第六阶段:调入命令解释程序(Command.com)。系统装载命令管理程序,以便对系统的各种操作命令进行协调管理(我们所使用的Dir、Copy等内部命令就是由Command.com提供的)。 
第七阶段:执行批处理文件(Autoexec.bat)。微机将一步一步地执行批处理文件中的各条命令。 
第八阶段:加载Win.com。Win.com负责将Windows下的各种驱动程序和启动执行文件加以执行,至此启动完毕。 
数据恢复的基础知识到此就给你介绍得差不多了。如果你领会了以上的这些知识,相信加上工具软件的辅助,恢复你丢失的数据简直是轻而易举,这里就不再多说,我们走入真正的实战操作吧…… 

二、 硬盘数据恢复方案分析 
难道在硬盘数据由于各种原因被破坏后,我们就只能……? 
当然,我们最大的期望还是——你永远不要用到下面的方法!因为再完备的事后解决方案,也不能保证所有数据的完好无缺。而要真正做到万无一失,更重要的工作还在于防患于未然。 
1、文件语删除 
A、症状 
这可能是最简单同时也是最常见的数据损坏,直接的表述就是一般删除文件后清空了回收站,或按住Shift键删除,要不然就是在“回收站”的“属性”中勾选了“删除时不将文件移入回收站,而是彻底删除”。 
B、解决方案 
既然是最常见的数据损坏,当然也就是最容易恢复的,下面就根据不同的操作系统给出相应的解决方案。 
1).Win9x/Me下的解决方案 
也就是FAT16/32分区下的文件误删除恢复,这应该是大部分恢复类软件的基本功能;而我们拿来作例子的软件Recover4all,所提供的功能仅为在Win9x/Me下恢复被误删除的文件——其实很多东西并不是一味求大求全就好,够用已足够,简单就是美。 
2).WinNT/2000下的解决方案 
换种说法,也就是如何恢复在NTFS分区下被误删除的文件。对于这种相对简单的需求,file Scavenger完全就可以胜任。当然,file Scavenger是很具有针对性的——它只能在WinNT/2000系统下使用(同时必须以Administrator用户登录系统),而且只对NTFS格式的分区有效。不过它支持压缩过的NTFS分区或文件夹中文件的恢复,并对格式化过的NTFS分区中的文件也有效(注意:file Scavenger只可以对格式化过的分区中的文件进行恢复,并不能恢复整个被格式化过的分区)。 
C、不可恢复的情况 
如果文件在删除之后,其存储的磁盘空间进行过写操作,那在通常情况下恢复的几率为0。因此,误删除文件可以恢复的重要前提就是不要在删除文件所在的分区进行写操作。 
病毒破坏 
1)、症状 
现在使用电脑的人基本都是谈“毒”色变,病毒带来的数据破坏往往不可预见(包括分区表破坏、数据覆盖等;例如CIH病毒破坏的硬盘,其分区表已被彻底改写,用A盘启动也无法找到硬盘),由此病毒破坏硬盘数据的症状也不好描述,基本上大部分的数据损坏情况都有可能是病毒引起的,所以最稳妥的方法还是安装一个优秀的病毒防火墙。 
2)、解决方案 
由于病毒破坏硬盘数据的方法各异,恢复的方案就需要对症下药。一般以常见的CIH为例,因为它最普遍,也最容易判断(一般是在4月26日发作)。 
当用户的硬盘数据一旦被CIH病毒破坏后,使用KV3000的F10功能,可修复的程度如下: 
1.C盘容量为2.1G以上, 原FAT表是32位的,C分区的修复率为98%,D、E、F等分区的修复率为99%, 配合手工C、D、E、F等分区的修复率为100%。 
2.硬盘容量为2.1G以下,原FAT表是16位的,C分区的修复率为0%,D、E、F等分区的修复率为99%, 配合手工D、E、F盘的修复率为100%。 
因为原C盘是16位的短FAT表,所以C盘的FAT表和根目录下的文件目录都被CIH病毒乱码覆盖了。 KV3000可以把C盘找回来,虽然根目录的文件名字已被病毒乱码覆盖看不到了,但文件的内容影像还存储在C盘内的某些扇区上。推荐用KV3000找回C盘,再用文件修复软件TIRAMISU.EXE可将C盘内的部分文件影像找回来,如果原存放文件影像的簇是相连的,找回的文件就完整无损。 
但对于FAT16的C盘是不是中了CIH就没救呢?你还是可以尝试一下FIXMBR,它可以通过全盘搜索,决定硬盘分区,并重新构造主引导扇区。由于软件只修改主引导扇区记录,对其它扇区不进行写操作,故一般不会带来不安全目录(如果修复得不理想,请DiskEdit等工具进行手工修复)。注意:FIXMBR是一个比较老的程序,对WinNT、Linux以及FAT32考虑得不多。 
3)、不可恢复的情况 
由于病毒破坏硬盘的方式实在太多,而且大部分破坏都无法用一般软件轻易恢复(如果你喜欢使用DiskEdit等磁盘扇区编辑工具,对某些情况还有一线希望),所以……遇到病毒破坏硬盘的情况你就祈祷吧(由此看来,安装一个优秀的病毒防火墙绝对是有必要的)! 
2、 分区表破坏 
分区表破坏是比较常遇到: 
A、破坏原因及恢复可行性分析 
分区表破坏,可能是数据损坏中除了物理损坏之外最严重的一种灾难性破坏。究其原因,不外乎以下几种: 
1).个人误操作删除分区,只要没有进行其它的操作完全可以恢复。 
2).安装多系统引导软件或者采用第三方分区工具,有恢复的可能性。 
3).病毒破坏,可以部分或者全部恢复。 
4).利用Ghost克隆分区/硬盘破坏,只可以部分恢复或者不能恢复(用Ghost的朋友要小心了)。 
B、解决方案 
在Norton Utility系列工具中,功能十分强大,可以恢复分区记录、FAT表,需要注意的是它对硬盘的操作不是只读的,因此你需要每一步都做好Undo文件,这样即使误操作也可以恢复,Norton Disk Doctor配合DiskEdit在分区表不能恢复时也可以恢复部分文件,可惜Norton Disk Doctor不支持NTFS分区,这不能不说是它的一大遗憾之处…… 
最专业的数据恢复公司出的软件,当然很有专业风范,EasyRecovery支持的文件系统格式很多FAT、NTFS都支持,并且有专门的For Novell版本。EasyRecovery对于分区破坏和硬盘意外被格式化都可安全的恢复,你所要做的就是将数据损坏硬盘挂到另外一台电脑上,尽情恢复就是了,不过EasyRecovery对于中文的文件名和目录名效果不是很好(一些乱码,但文章内容绝对是正确的)。 
由出品PartitionMagic的PowerQuest公司所出的,硬盘资料复原工具。它是一套恢复硬盘因病毒感染,意外格式化等因素所导致的资料损失工具软件,能将已删除的文件资料找出并恢复,也能找出已重新格式化的硬盘、被破坏的FAT分配表、启动扇区等等,几乎能找出及发现任何在硬盘上的资料(支持FAT16和FAT32及长文件名)。恢复回来的资料能选择在原来所在位置恢复或保存到其它可写入资料的硬盘,也提供了自动备份目录、文件和系统配置文件的功能,能在任何时间恢复) 

3、全盘崩溃和分区丢失 
  首先重建MBR代码区,再根据情况修正分区表。修正分区表的基本思路是查找以55AA为结束的扇区,再根据扇区结构和后面是否有FAT等情况判定是否为分区表,最后计算填回主分区表,由于需要计算,过程比较烦琐。如果文件仍然无法读取,要考虑用Tiramint等工具进行修复。如果在FAT表彻底崩溃,恢复某个指定文件,可以用DiskEdit或Debug查找已知信息。比如文件为文本,文件中包含“软件狗”,那么我们就要把它们转换为内码C8 ED BC FE B9 B7进行查找。 

4、文件丢失、误格式化的情况 
  一般来说,删除文件仅仅是把文件的首字节,改为E5H,而并不破坏文件本身,因此可以恢复。但对不连续文件要恢复文件链,而由于手工交叉恢复对一般计算机用户来说并不容易,这里就就不讲了,建议用工具处理,如果已经安装了Norton Utilities,可以用它来查找。另外,RecoverNT等工具都是恢复的利器。但是应特别注意,千万不要在发现文件丢失后,在本机安装什么恢复工具,你可能恰恰把文件覆盖掉了。特别是如果你的文件在C盘,发现主要文件被你失手清掉了(比如你按SHIFT删除),你应该马上直接关闭电源,用软盘启动进行恢复或把硬盘串接到其它有恢复工具的机器处理。 
5、文件损坏 
  一般的说,恢复损坏文件须要清楚地了解文件的结构,但这并不是很容易的事情,而这方面的工具也不多。不过,文件如果字节正常,不能正常打开往往是文件头损坏。 
6、硬盘被加密或变换 
  此时千万不要进行FDISK/MBR,SYS等处理,否则数据再也无法找回,一定要反解加密算法,或找到被移走的重要扇区。对于那些加密硬盘数据的病毒,清除时一定要选择能恢复加密数据的可靠杀毒软件。 
7、文件加密后密码遗忘 
  对于很多字处理软件的文件加密和ZIP等压缩包的加密,你是不能靠加密逆过程来完成的,因为那从理论上是异常困难的。目前有一些相关的软件,他们的思想一般都是用一个大字典集中的数据循环用相同算法加密后与密码的密文匹配,直到一致时则说明找到了密码。你可以去寻找这些软件,当然,有些软件是有后门的,比如DOS 下的WPS,Ctrl+qiubojun就是通用密码。Undiskp的作者冯志宏是解文件密码的个中高手,大家不妨去他的主页看看。 

8、系统用户密码遗忘的处理 
  最简单的方法就是用软盘启动(NT的你也可以把盘挂接在其他NT上),找到支持该文件系统结构的软件(比如针对NT的NTFSDOS),利用他把密码文件清掉、或者是COPY出密码档案,用破解软件套字典来处理。前者时间短但所有用户信息丢失,后者时间长,但保全了所有用户信息。对UNIX系统,建议你一定先做一张应急盘。 
三、数据备份介绍 
虽然数据恢复技术可能将你的损失降到最低,但是,谁愿意在惶恐不安中,边祈祷边按下各类数据恢复软件的“Recover”按钮?也没有人喜欢面对满屏的16进制代码,带着侥幸的心理调整硬盘分区表Data区的信息;所以,最好的数据保全方法应该是防患于未然——备份! 
虽然,备份可以说是一种悲观的做法,可一旦不可预见的问题发生,备份下来的资料也许是你唯一的救命稻草。 
1、 什么东西最该备份 
决定如何备份前,应先考虑备份什么。硬盘里有三种东西:数据、应用程序和操作系统。你可备份硬盘中的所有东西,也可只备份数据。 
进行完整的备份是最简单的方法,至少从恢复的角度看是这样。如果整个硬盘完全损坏,你不需要从头重装操作系统和应用程序;而是很快就可恢复运行。但是反过来,进行完整备份花的时间更长,要用到更多带有大容量存储空间的移动设备——即所谓外挂驱动器,如CD-R或Zip驱动器。 
另一个方法是只备份最重要的东西:数据。你不能很轻易地替换文档、工作表或数据库。备份所有数据的最简单的方法是把所有数据保存到一个地方。 
你还应备份其它的重要文件,比如那些含有你所有设置的文件,包括浏览器的书签(收藏夹)、cookie(含有密码)、地址簿、配置设置、数据项与报告表、模板、宏等。Windows 2000把这些文件都放到一个名叫“Documents And Settings”的新文件夹中,所以找起来很方便。该文件夹中不仅包括My Documents文件夹,还包括了部分关于配置设置、收藏夹和cookie的注册表信息。在Windows 95或98中,这些文件分布在多个Windows文件夹中,因此必须备份所有文件夹,以防遗漏。 
2、备份到哪里 
对于一般的个人用户,你当然可以将数据备份在本地硬盘的其它分区中;但如果不是实在别无选择,请不要以为将重要数据备份到本地硬盘的其它分区上就是安全的,各种意外错误或是病毒、木马都很容易将你的整个硬盘数据毁于一旦。所以,我们的建议是将重要数据备份到本地硬盘以外的其它设备,如插拔式外部存储设备(如Zip、Jaz驱动器或USB/1394接口的活动硬盘)等、CD-R/RW或者网络上的其它硬盘。 



一、数据恢复基础知识 
说到数据恢复,我们就不能不提到硬盘的数据结构、文件的存储原理,甚至操作系统的启动流程,这些是你在恢复硬盘数据时不得不利用的基本知识。即使你不需要恢复数据,理解了这些知识(即使只是稍微多知道一些),对于你平时的电脑操作和应用也是很有帮助的。 
我们就从硬盘的数据结构谈起吧…… 
1、 硬盘数据结构 
刚出厂一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。就拿我们一直沿用到现在的Win9x/Me系列来说,我们一般要将硬盘分成主引导扇区、操作系统引导扇区、FAT、DIR和Data等五部分(其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加)。 
主引导扇区: 
主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS 的Fdisk.exe)产生的,不同的操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区病毒)。 
操作系统引导扇区: 
OBR(OS Boot Record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS 的Format.com)。 

文件分配表: 
FAT(file Allocation Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份, FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。 
FAT的格式历来有很多选择,Microsoft 的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。 
目录区: 
DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。 
数据区: 
DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……)。 
2、硬盘分区方式 
我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。 
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。 
扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。 
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。 
需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。 
3、数据存储原理 
既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题…… 
文件的读取 
操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。 
操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。 
文件的写入 
当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的动作和上边的读取动作差不多。 
文件的删除 
看了前面的文件的读取和写入,你可能没有往下边继续看的信心了,不过放心,Win9x的文件删除工作却是很简单的,简单到只在目录区做了一点小改动——将目录区的文件的第一个字符改成了E5就表示将改文件删除了。 
Fdisk和Format的一点小说明 
和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘完全有可能恢复…… 

系统启动流程 
各种不同的操作系统启动流程不尽相同,我们这里以Win9x/DOS的启动流程为例。 
第一阶段:系统加电自检POST过程。POST是Power On Self Test的缩写,也就是加电自检的意思,微机执行内存FFFF0H处的程序(这里是一段固化的ROM程序),对系统的硬件(包括内存)进行检查。 
第二阶段:读取分区记录和引导记录。当微机检查到硬件正常并与CMOS设置相符后,按照CMOS设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区记录(DPT)和主引导记录(MBR)。 
第三阶段:读取DOS引导记录。微机正确读取分区记录和主引导记录后,如果主引导记录和分区表校验正确,则执行主引导记录并进一步读取DOS引导记录(位于每一个主分区的第一个扇区),然后执行该DOS引导记录。 
第四阶段:装载系统隐含文件。将DOS系统的隐含文件IO.SYS入内存,加载基本的文件系统FAT,这时候一般会出现Starting Windows 9x...的标志,IO.SYS将MS.SYS读入内存,并处理System.dat和User.dat文件,加载磁盘压缩程序。 
第五阶段:实DOS模式配置。系统隐含文件装载完成,微机将执行系统隐含文件,并执行系统配置文件(Config.sys),加载Config.sys中定义的各种驱动程序。 
第六阶段:调入命令解释程序(Command.com)。系统装载命令管理程序,以便对系统的各种操作命令进行协调管理(我们所使用的Dir、Copy等内部命令就是由Command.com提供的)。 
第七阶段:执行批处理文件(Autoexec.bat)。微机将一步一步地执行批处理文件中的各条命令。 
第八阶段:加载Win.com。Win.com负责将Windows下的各种驱动程序和启动执行文件加以执行,至此启动完毕。 
数据恢复的基础知识到此就给你介绍得差不多了。如果你领会了以上的这些知识,相信加上工具软件的辅助,恢复你丢失的数据简直是轻而易举,这里就不再多说,我们走入真正的实战操作吧…… 

二、 硬盘数据恢复方案分析 
难道在硬盘数据由于各种原因被破坏后,我们就只能……? 
当然,我们最大的期望还是——你永远不要用到下面的方法!因为再完备的事后解决方案,也不能保证所有数据的完好无缺。而要真正做到万无一失,更重要的工作还在于防患于未然。 
1、文件语删除 
A、症状 
这可能是最简单同时也是最常见的数据损坏,直接的表述就是一般删除文件后清空了回收站,或按住Shift键删除,要不然就是在“回收站”的“属性”中勾选了“删除时不将文件移入回收站,而是彻底删除”。 
B、解决方案 
既然是最常见的数据损坏,当然也就是最容易恢复的,下面就根据不同的操作系统给出相应的解决方案。 
1).Win9x/Me下的解决方案 
也就是FAT16/32分区下的文件误删除恢复,这应该是大部分恢复类软件的基本功能;而我们拿来作例子的软件Recover4all,所提供的功能仅为在Win9x/Me下恢复被误删除的文件——其实很多东西并不是一味求大求全就好,够用已足够,简单就是美。 
2).WinNT/2000下的解决方案 
换种说法,也就是如何恢复在NTFS分区下被误删除的文件。对于这种相对简单的需求,file Scavenger完全就可以胜任。当然,file Scavenger是很具有针对性的——它只能在WinNT/2000系统下使用(同时必须以Administrator用户登录系统),而且只对NTFS格式的分区有效。不过它支持压缩过的NTFS分区或文件夹中文件的恢复,并对格式化过的NTFS分区中的文件也有效(注意:file Scavenger只可以对格式化过的分区中的文件进行恢复,并不能恢复整个被格式化过的分区)。 
C、不可恢复的情况 
如果文件在删除之后,其存储的磁盘空间进行过写操作,那在通常情况下恢复的几率为0。因此,误删除文件可以恢复的重要前提就是不要在删除文件所在的分区进行写操作。 
病毒破坏 
1)、症状 
现在使用电脑的人基本都是谈“毒”色变,病毒带来的数据破坏往往不可预见(包括分区表破坏、数据覆盖等;例如CIH病毒破坏的硬盘,其分区表已被彻底改写,用A盘启动也无法找到硬盘),由此病毒破坏硬盘数据的症状也不好描述,基本上大部分的数据损坏情况都有可能是病毒引起的,所以最稳妥的方法还是安装一个优秀的病毒防火墙。 
2)、解决方案 
由于病毒破坏硬盘数据的方法各异,恢复的方案就需要对症下药。一般以常见的CIH为例,因为它最普遍,也最容易判断(一般是在4月26日发作)。 
当用户的硬盘数据一旦被CIH病毒破坏后,使用KV3000的F10功能,可修复的程度如下: 
1.C盘容量为2.1G以上, 原FAT表是32位的,C分区的修复率为98%,D、E、F等分区的修复率为99%, 配合手工C、D、E、F等分区的修复率为100%。 
2.硬盘容量为2.1G以下,原FAT表是16位的,C分区的修复率为0%,D、E、F等分区的修复率为99%, 配合手工D、E、F盘的修复率为100%。 
因为原C盘是16位的短FAT表,所以C盘的FAT表和根目录下的文件目录都被CIH病毒乱码覆盖了。 KV3000可以把C盘找回来,虽然根目录的文件名字已被病毒乱码覆盖看不到了,但文件的内容影像还存储在C盘内的某些扇区上。推荐用KV3000找回C盘,再用文件修复软件TIRAMISU.EXE可将C盘内的部分文件影像找回来,如果原存放文件影像的簇是相连的,找回的文件就完整无损。 
但对于FAT16的C盘是不是中了CIH就没救呢?你还是可以尝试一下FIXMBR,它可以通过全盘搜索,决定硬盘分区,并重新构造主引导扇区。由于软件只修改主引导扇区记录,对其它扇区不进行写操作,故一般不会带来不安全目录(如果修复得不理想,请DiskEdit等工具进行手工修复)。注意:FIXMBR是一个比较老的程序,对WinNT、Linux以及FAT32考虑得不多。 
3)、不可恢复的情况 
由于病毒破坏硬盘的方式实在太多,而且大部分破坏都无法用一般软件轻易恢复(如果你喜欢使用DiskEdit等磁盘扇区编辑工具,对某些情况还有一线希望),所以……遇到病毒破坏硬盘的情况你就祈祷吧(由此看来,安装一个优秀的病毒防火墙绝对是有必要的)! 
2、 分区表破坏 
分区表破坏是比较常遇到: 
A、破坏原因及恢复可行性分析 
分区表破坏,可能是数据损坏中除了物理损坏之外最严重的一种灾难性破坏。究其原因,不外乎以下几种: 
1).个人误操作删除分区,只要没有进行其它的操作完全可以恢复。 
2).安装多系统引导软件或者采用第三方分区工具,有恢复的可能性。 
3).病毒破坏,可以部分或者全部恢复。 
4).利用Ghost克隆分区/硬盘破坏,只可以部分恢复或者不能恢复(用Ghost的朋友要小心了)。 
B、解决方案 
在Norton Utility系列工具中,功能十分强大,可以恢复分区记录、FAT表,需要注意的是它对硬盘的操作不是只读的,因此你需要每一步都做好Undo文件,这样即使误操作也可以恢复,Norton Disk Doctor配合DiskEdit在分区表不能恢复时也可以恢复部分文件,可惜Norton Disk Doctor不支持NTFS分区,这不能不说是它的一大遗憾之处…… 
最专业的数据恢复公司出的软件,当然很有专业风范,EasyRecovery支持的文件系统格式很多FAT、NTFS都支持,并且有专门的For Novell版本。EasyRecovery对于分区破坏和硬盘意外被格式化都可安全的恢复,你所要做的就是将数据损坏硬盘挂到另外一台电脑上,尽情恢复就是了,不过EasyRecovery对于中文的文件名和目录名效果不是很好(一些乱码,但文章内容绝对是正确的)。 
由出品PartitionMagic的PowerQuest公司所出的,硬盘资料复原工具。它是一套恢复硬盘因病毒感染,意外格式化等因素所导致的资料损失工具软件,能将已删除的文件资料找出并恢复,也能找出已重新格式化的硬盘、被破坏的FAT分配表、启动扇区等等,几乎能找出及发现任何在硬盘上的资料(支持FAT16和FAT32及长文件名)。恢复回来的资料能选择在原来所在位置恢复或保存到其它可写入资料的硬盘,也提供了自动备份目录、文件和系统配置文件的功能,能在任何时间恢复) 

3、全盘崩溃和分区丢失 
  首先重建MBR代码区,再根据情况修正分区表。修正分区表的基本思路是查找以55AA为结束的扇区,再根据扇区结构和后面是否有FAT等情况判定是否为分区表,最后计算填回主分区表,由于需要计算,过程比较烦琐。如果文件仍然无法读取,要考虑用Tiramint等工具进行修复。如果在FAT表彻底崩溃,恢复某个指定文件,可以用DiskEdit或Debug查找已知信息。比如文件为文本,文件中包含“软件狗”,那么我们就要把它们转换为内码C8 ED BC FE B9 B7进行查找。 

4、文件丢失、误格式化的情况 
  一般来说,删除文件仅仅是把文件的首字节,改为E5H,而并不破坏文件本身,因此可以恢复。但对不连续文件要恢复文件链,而由于手工交叉恢复对一般计算机用户来说并不容易,这里就就不讲了,建议用工具处理,如果已经安装了Norton Utilities,可以用它来查找。另外,RecoverNT等工具都是恢复的利器。但是应特别注意,千万不要在发现文件丢失后,在本机安装什么恢复工具,你可能恰恰把文件覆盖掉了。特别是如果你的文件在C盘,发现主要文件被你失手清掉了(比如你按SHIFT删除),你应该马上直接关闭电源,用软盘启动进行恢复或把硬盘串接到其它有恢复工具的机器处理。 
5、文件损坏 
  一般的说,恢复损坏文件须要清楚地了解文件的结构,但这并不是很容易的事情,而这方面的工具也不多。不过,文件如果字节正常,不能正常打开往往是文件头损坏。 
6、硬盘被加密或变换 
  此时千万不要进行FDISK/MBR,SYS等处理,否则数据再也无法找回,一定要反解加密算法,或找到被移走的重要扇区。对于那些加密硬盘数据的病毒,清除时一定要选择能恢复加密数据的可靠杀毒软件。 
7、文件加密后密码遗忘 
  对于很多字处理软件的文件加密和ZIP等压缩包的加密,你是不能靠加密逆过程来完成的,因为那从理论上是异常困难的。目前有一些相关的软件,他们的思想一般都是用一个大字典集中的数据循环用相同算法加密后与密码的密文匹配,直到一致时则说明找到了密码。你可以去寻找这些软件,当然,有些软件是有后门的,比如DOS 下的WPS,Ctrl+qiubojun就是通用密码。Undiskp的作者冯志宏是解文件密码的个中高手,大家不妨去他的主页看看。 

8、系统用户密码遗忘的处理 
  最简单的方法就是用软盘启动(NT的你也可以把盘挂接在其他NT上),找到支持该文件系统结构的软件(比如针对NT的NTFSDOS),利用他把密码文件清掉、或者是COPY出密码档案,用破解软件套字典来处理。前者时间短但所有用户信息丢失,后者时间长,但保全了所有用户信息。对UNIX系统,建议你一定先做一张应急盘。 
三、数据备份介绍 
虽然数据恢复技术可能将你的损失降到最低,但是,谁愿意在惶恐不安中,边祈祷边按下各类数据恢复软件的“Recover”按钮?也没有人喜欢面对满屏的16进制代码,带着侥幸的心理调整硬盘分区表Data区的信息;所以,最好的数据保全方法应该是防患于未然——备份! 
虽然,备份可以说是一种悲观的做法,可一旦不可预见的问题发生,备份下来的资料也许是你唯一的救命稻草。 
1、 什么东西最该备份 
决定如何备份前,应先考虑备份什么。硬盘里有三种东西:数据、应用程序和操作系统。你可备份硬盘中的所有东西,也可只备份数据。 
进行完整的备份是最简单的方法,至少从恢复的角度看是这样。如果整个硬盘完全损坏,你不需要从头重装操作系统和应用程序;而是很快就可恢复运行。但是反过来,进行完整备份花的时间更长,要用到更多带有大容量存储空间的移动设备——即所谓外挂驱动器,如CD-R或Zip驱动器。 
另一个方法是只备份最重要的东西:数据。你不能很轻易地替换文档、工作表或数据库。备份所有数据的最简单的方法是把所有数据保存到一个地方。 
你还应备份其它的重要文件,比如那些含有你所有设置的文件,包括浏览器的书签(收藏夹)、cookie(含有密码)、地址簿、配置设置、数据项与报告表、模板、宏等。Windows 2000把这些文件都放到一个名叫“Documents And Settings”的新文件夹中,所以找起来很方便。该文件夹中不仅包括My Documents文件夹,还包括了部分关于配置设置、收藏夹和cookie的注册表信息。在Windows 95或98中,这些文件分布在多个Windows文件夹中,因此必须备份所有文件夹,以防遗漏。 
2、备份到哪里 
对于一般的个人用户,你当然可以将数据备份在本地硬盘的其它分区中;但如果不是实在别无选择,请不要以为将重要数据备份到本地硬盘的其它分区上就是安全的,各种意外错误或是病毒、木马都很容易将你的整个硬盘数据毁于一旦。所以,我们的建议是将重要数据备份到本地硬盘以外的其它设备,如插拔式外部存储设备(如Zip、Jaz驱动器或USB/1394接口的活动硬盘)等、CD-R/RW或者网络上的其它硬盘。