硬盘数据恢复知识和软件
一、数据恢复(Data Recovery)基础知识
硬盘数据结构
初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。就拿我们一直沿用到现在的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),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件......)。
硬盘分区方式
我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。
扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。
需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。
数据存储原理
既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题......
文件的读取
操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。
操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。
文件的写入
当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的动作和上边的读取动作差不多。
文件的删除
看了前面的文件的读取和写入,你可能没有往下边继续看的信心了,不过放心,Win9x的文件删除工作却是很简单的,简单到只在目录区做了一点小改动――将目录区的文件的第一个字符改成了E5就表示将改文件删除了。
Fdisk和Format的一点小说明
和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘完全有可能恢复......
系统启动流程
各种不同的操作系统启动流程不尽相同,我们这里以Win9x/DOS的启动流程为例。
第一阶段:系统加电自检POST过程。POST是Power On SelfTest的缩写,也就是加电自检的意思,计算机执行内存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下的各种驱动程序和启动执行文件加以执行,至此启动完毕。
数据恢复(Data Recovery)的基础知识到此就给你介绍得差不多了。如果你领会了以上的这些知识,相信加上工具软件的辅助,恢复你丢失的数据简直是轻而易举,这里就不再多说。
二、硬盘数据恢复原理
我们大家可能都遇到过这样的事情,上午刚刚清空垃圾站,下午却突然想起其中有个文件特别重要,这可怎么办?还有可能系统被病毒破坏,硬盘的分区表或文件分配表被病毒改写,但是硬盘上存着你数年的心血。这时我们就需要对数据进行恢复,而国内也有不少专门从事数据恢复业务的专业公司。
不过我们的硬盘发生文件被误删除,分区丢失,病毒破坏等情况,通过一些数据恢复软件自己就能够解决。下面就详细介绍一下数据恢复的原理和一些常用的数据恢复方法。
硬盘使用和维护注意事项
1.定期使用Windows自带的磁盘整理工具Defrag或其他如Vopt、Norton
Speed等磁盘碎片整理优化工具进行整理你的硬盘数据,一般一个月整理一次,可以提高硬盘访问速度。即使发生不测,也可提高你的数据文件恢复概率!
2.硬盘是机电一体化的高度精密设备,尽管现在硬盘抗冲击力大大提高,但为了安全和保险必须轻拿轻放;在主机内安装时硬盘的四个固定位都应该使用螺丝固定牢靠。开机后绝对不能移动主机。关机1分钟硬盘马达停转后,方可进行搬动,这也是原来的小硬盘专门有一个磁头归位程序,提供搬运机器时使用的原因。硬盘指示灯正在闪亮时不可断电关机,如此操作有可能会损坏硬盘。
3.正常硬盘运行时噪声很小,会有硬盘读盘时均匀的"嗒嗒"声。若你的硬盘运行时的声响较大或不正常,这一般是故障的前兆,此时宜及时备份重要数据以防不测
4.使用GHOST作恢复分区时,一定要选对目标分区,否则可能导致分区丢失或重要数据不能恢复。建议恢复分区前,对分区加Lable,这样能分清目标分区,不会导致你选错目标分区造成不必要的损失。
5.在使用Format命令格式化硬盘时,最好先使用Fdisk/Status命令查看一下硬盘的分区信息,是否存在NTFS分区,防止误格式化丢失数据。
6.要充分利用分区的特性,数据文件一般不要放在C区和系统区,因为C区和系统区属事故多发区。
硬盘数据丢失的原因
1.软件故障的类型
受病毒感染;误格式化或误分区;误克隆;误删除或覆盖;黑客软件人为破坏;零磁道损坏;硬盘逻辑锁;操作时断电;意外电磁干扰造成数据丢失或破坏;系统错误或瘫痪造成文件丢失或破坏。
软件现象一般表现为操作系统丢失,无法正常启动系统,磁盘读写错误,找不到所需要的文件、文件打不开、文件打开后乱码,硬盘没有分区、提示某个硬盘分区没有格式化等。
2.硬件故障的类型
磁盘划伤;磁头变形;磁臂断裂;磁头放大器损坏;芯片组或其它元器件损坏。
硬件故障一般表现为系统不认硬盘,常有一种"咔嚓咔嚓"的磁组撞击声或电机不转、通电后无任何声音、磁头定们不准造成读写错误等现象。一些具体的表现如下:
①
开机时,系统没有找到硬盘,同时也没有任何错误提示。注意有的主板在硬盘出现故障时会给出相应的提示信息和提示代码。我们在排除硬盘的供电正常,电源线连接无误,数据线安装正确,数据线没有质量问题时,也就可以确定是硬盘坏了。
②
启动系统时间特别长,或读取某个文件,运行某个软件时经常出错,或者要经过很长时间才能操作成功,其间硬盘不断读盘并发出刺耳的杂音,这种现象意味着硬盘的盘面或硬盘的定位机构出现问题。
③
经常出现系统瘫痪或者死机蓝屏,但是硬盘重新格式化后,再次安装系统一切正常。这种情况是因为硬盘的磁头放大器和数据纠错电路性能不稳定,造成数据经常丢失。
④
开机时系统不能通过硬盘引导,软盘启动后可以转到硬盘盘符,但无法进入,用SYS命令传导系统也不能成功。这种情况比较严重,因为很有可能是硬盘的引导扇区出了问题。
或者是无法重新分区,也可能是重新分区后的信息无法写入主引导扇区。
⑤
一直能够正常使用,但是突然有一天,硬盘在正常使用过程中出现异响,接着找不到硬盘。但是在停机一段时间以后,再次开机时还能找到硬盘,并且能够正常启动系统。当出现这种情况时,如果硬盘上有重要数据时,一定在最短的时间内把数据备份出来,防止硬盘彻底报废时丢失重要数据。
磁盘数据格式的相关知识
上述的各种原因都可能导致硬盘或软盘上的数据损坏或丢失,使部分(或全部)数据无法读出和使用。数据恢复就是使用各种软件和硬件的技术方法把数据重新找回,使宝贵的信息得以重新使用。
说到数据恢复,我们就不得不提到硬盘的数据结构、文件的存储原理,甚至操作系统的启动流程,这些是你在恢复硬盘数据时必须使用的基本知识。即使你不需要恢复数据,了解这些知识(即使只是稍微多知道一些),对于你平时的电脑操作和应用也是很有帮助的。
硬盘的文件系统结构
初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。就拿我们一直沿用到现在的Win9x/Me系列来说,我们一般要将硬盘分成主引导扇区、操作系统引导扇区、FAT表、DIR目录区和Data数据区等五部分。我们通常所说的主引导扇区MBR在一个硬盘中是是唯一的,MBR区的内容只有在硬盘启动时才读取其内容,然后驻留内存。其它几项内容随你的硬盘分区数的多少而异。
主引导扇区(MBR)
主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot
Record)和分区表DPT(Disk Partition
Table)。其中主引导记录的作用就是检查分区表是否正确以及判别哪个分区为可引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。
分区表(DPT)
在主引导区中,从地址BE开始,到FD结束为止的64个字节中的内容就是通常所说的分区表。分区表以80H或00H为开始标志,以55AAH为结束标志,每个分区占用16个字节,一个硬盘最多只能分成四个主分区,其中扩展分区也是一个主分区。随着硬盘容量的迅速扩大,引入的扩展分区可以不受四个主分区的限制,把硬盘分区数扩展到"Z"。
值得一提的是,MBR是由分区程序(例如DOS的Fdisk.exe)产生的,不同的操作系统可能这个扇区的内容代码是不相同,但是实现的功能只有一个,使其中的一个活动分区获得控制区,正常启动系统。
三、常用硬盘数据恢复软件
Easyrecovery
Easyrecovery是一个非常著名的老牌数据恢复软件。该软件功能可以说是非常强大。无论是误删除/格式化还是重新分区后的数据丢失,其都可以轻松解决,其甚至可以不依靠分区表来按照簇来进行硬盘扫描。但要注意不通过分区表来进行数据扫描,很可能不能完全恢复数据,原因是通常一个大文件被存储在很多不同的区域的簇内,即使我们找到了这个文件的一些簇上的数据,很可能恢复之后的文件是损坏的。所以这种方法并不是万能的,但其提供给我们一个新的数据恢复方法,适合分区表严重损坏使用其他恢复软件不能恢复的情况下使用。Easyrecovery最新版本加入了一整套检测功能,包括驱动器测试、分区测试、磁盘空间管理以及制作安全启动盘等。这些功能对于日常维护硬盘数据来说,非常实用,我们可以通过驱动器和分区检测来发现文件关联错误以及硬盘上的坏道。
Finaldata
Finaldata2.0是目前Finaldata的最新版本。Finaldata是一个日本人开发的数据恢复软件,Finaldata自身的优势就是恢复速度快,可以免去搜索丢失数据漫长的时间等待。不仅恢复速度快,而且其在数据恢复方面功能也十分强大,不仅可以按照物理硬盘或者逻辑分区来进行扫描,还可以通过对硬盘的绝对扇区来扫描分区表,找到丢失的分区。Finaldata在对硬盘扫描之后会在其浏览器的左侧显示出文件的各种信息,并且把找到的文件状态进行归类,如果状态是已经被破坏,那么也就是说如果对数据进行恢复也不能完全找回数据。这样方便我们了解恢复数据的可能性。同时此款软件还可以通过扩展名来进行同类文件的搜索,这样就方便我们对同一类型文件进行数据恢复。
Finaldata的速度之快不仅表现在对硬盘扫描时迅速,把已经找到要恢复的文件进行保存的速度也非常迅速,Finaldata能充分利用IDE硬盘的ATA133、ATA100等最大接口速度,对数据进行快速保存,在保存数据时间方面,Finaldata比其他同类型软件要快一倍以上。
R-Studio
R-Studio是损坏硬盘上资料的救星。它能针对各种不同版本的Windows操作系统之文件系统都能应付自如。甚至连非Windows系列的Linux操作系统,R-Studio软件也照样能够应付。而在Windows NT,Windows2000等操作系统上所使用的NTFS文件系统,R-Stduio亦具有处理的能力,而且R-Studio甚至也能处理NTFS文件系统的加密与压缩状态,并将发生问题的文件复原。除了本地磁盘以外,R-Studio甚至能透过网络去检测其他电脑上硬盘的状况。且在挽救资料损毁的文件以外,R-Studio也包括了误删文件的复原能力,让未使用回收站或是已清空回收站的文件,都照样能够找回来。最特别的一点是在标准的磁盘安装方式以外,R-Studio也能支持RAID磁盘阵列系统。
Drive Rescue
Drive Rescue是一款优秀而且免费的磁盘数据拯救程序,它能恢复驱动器(例如硬盘)上误删或遗失的数据,即使已经失去分区表或硬盘已被快速格式化或者遭遇系统崩溃等情况,找回驱动器重要文件系统信息如分区表、引导记录、FAT、文件/目录记录等。当然对于物理损坏的硬盘它也无能为力。Drive Rescue支持FAT 12/16/32分区和Windows全系列操作系统以及双硬盘。
Recover4all
Recover4all是一款非常优秀的文件恢复软件。可以恢复任何由于冒失而删除的文件,只需轻轻点击鼠标,删除的文件便可失而付返。不管你丢失的文件是故意的还是直接的删除,也不管删除了多久,次数有多少,对Recover4all来说,一切都不是问题。本软件无需安装,可在软盘上直接运行
File Scavenger
File Scavenger 能够恢复在NTFS格式下意外删除的文件工具,提供了找寻文件类型功能,如*.doc及*.txt,能够救回的文件不只单一文件,还包括整个目录及压缩文件,也支持救回来的文件选择在原来所在位置恢复或储存到其它的硬盘
getdataback
GetDataBack能帮我们在5个步骤之内轻轻松松的还原数据,不管您的硬盘是否还能被操作系统所辨认,也不管您的根目录或者是所有的目录都已经丢失了。
RecoverNT
RecoverNT是一套功能强大的硬盘资料恢复软件,可以在Windows9x下将你不小心格式化 ;硬盘资料给起死回生,适用于FAT、FAT32、NTFS系统下,可以挽救单独的文件或是整个目录的文件。
Search and Recover
Search and Recover 是出品 System Mechanic 的 iolo 公司发布的一款硬盘数据恢复工具。可以使用向导方式快速恢复已删除数据,也可以通过高级数据恢复工具最大限度的挽救数据。它的另一大特色是可以恢复 Outlook、Outlook Express、Netscape 等邮件程序中删除的邮件信息,现在即使误删除的邮件也可以恢复了。同时 Search and Recover 还附带一个安全删除工具,可以通过多次(最多100次)覆盖的方法以达到安全删除数据的目的。在 Win2000/XP 下,Search and Recover 还提供了一个驱动器映像工具,可以对某一驱动器进行 100% 的完全克隆,避免已删除数据由于磁盘操作被覆盖,提供最高的数据恢复可能性。
DataExplore(数据恢复大师)
DataExplore是一款功能强大,提供了较低层次恢复功能的数据恢复软件,只要数据没有被覆盖掉,文件就能找得到,本软件无须安装,解压后可以直接运行,请不要在待恢复的分区上运行本软件.
本软件支持FAT12,FAT16,FAT32,NTFS,EXT2文件系统,能找出被删除/被格式化/完全格式化/删除分区/分区表被破坏后磁盘里文件,分区被删除或分区表被破坏的情况下可以以虚拟卷方式加载,并以资源浏览器的方式进行管理,文件/文件夹可以拖放,被删除的文件以打红X的方式加以标志,能组织磁盘扇区成文件.能显示文件信息和文件在磁盘中的位置,方便的磁盘扇区浏览功能,内置有文本,十六进制,图片和网页等多种视图(可打印),可以在在未恢复出文件的情况下预览文件.可浏览网络硬盘.提供JScript脚本编辑和解析,相应的有API供脚本调用,并将脚本执行结果列表显示,通过脚本可以查找特殊的磁盘信息并存成文件,也可以用来搜索复杂的数据.所有操作均在内存中完成,不破坏源数据,加载分析的结果可以保存成文件.界面友好.有远程恢复功能,只要在用户远程运行服务器,专业人员就可以远程恢复导出客户的数据文件,很有实用价值的一款功能,是做数据恢复业务的好帮手.
最新功能:支持无分区的恢复,以物理方式加载整个硬盘,做卷分析,本程序根据硬盘上残留文件信息自动在内存中建立出FAT32,NTFS分区,按原目录结构分类文件。
Lost&Found
Lost&Found由出品Partition Magic的PowerQuest公司所出的产品, 是一套恢复硬盘因病毒感染,意外格式化等因素所导至损失的资料工具软件, 能将已删除的文件资料找出并救回, 也能找出已重新格式化的硬盘, 被破坏的FAT分配表, 启动扇区等等, 几乎能找出及发现任何在硬盘上的资料(支持FAT16 和FAT32及长文件名), 并尽可能的救回, 并提供了分析和提示恢复的可能性功能,救回来的资料能选择在原来所在位置恢复或储存到其它可写入资料的的硬盘, ZIP, MO支持所有IDE, EIDE及SCSI 设备, 亦提供了自动备份目录, 文件和系统配置文件, 能在任何时间恢复
PCtools(DOS)
该软件具有初级的数据恢复功能,使用计算机时间较长时间的用户对此软件较为熟悉。由于只在DOS下使用改工具,目前此款软件的应用范围已经大大缩小,取代它的则是在windows操作系统下使用的数据恢复软件。