网站首页    
 
公司介绍
公司简介
总裁致词
历史沿革
公司资质
自主创新
业界评述
工作机会 
社会招聘
校园招聘
联系方式
营销中心
服务中心
研发基地
数据恢复
中国深网技术研究中心
联系我们
企业文化
最新通讯
    硬盘数据恢复原理与方法
发表时间:2011/9/8 8:00:06  点击:1746

大家可能都遇到过这样的事情,上午刚刚清空垃圾站,下午却突然想起其中有个文件特别重要,这可怎么办?还有可能系统被病毒破坏,硬盘的分区表或文件分配表被病毒改写,但是硬盘上存着你数年的心血。这时我们就需要对数据进行恢复,而国内也有不少专门从事数据恢复业务的专业公司。不过我们的硬盘发生文件被误删除,分区丢失,病毒破坏等情况,通过一些数据恢复软件自己就能够解决。下面就详细介绍一下数据恢复的原理和一些常用的数据恢复方法。

硬盘使用和维护注意事项

  1.定期使用Windows自带的磁盘整理工具Defrag或其他如Vopt、NortonSpeed等磁盘碎片整理优化工具进行整理你的硬盘数据,一般一个月整理一次,可以提高硬盘访问速度。即使发生不测,也可提高你的数据文件恢复概率!

  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(MainBootRecord)和分区表DPT(DiskPartitionTable)。其中主引导记录的作用就是检查分区表是否正确以及判别哪个分区为可引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。主引导区的数据结构如(图1)所示。


图1

  分区表(DPT)

  在主引导区中,从地址BE开始,到FD结束为止的64个字节中的内容就是通常所说的分区表。分区表以80H或00H为开始标志,以55AAH为结束标志,每个分区占用16个字节,一个硬盘最多只能分成四个主分区,其中扩展分区也是一个主分区。随着硬盘容量的迅速扩大,引入的扩展分区可以不受四个主分区的限制,把硬盘分区数扩展到“Z”。

  值得一提的是,MBR是由分区程序(例如DOS的Fdisk.exe)产生的,不同的操作系统可能这个扇区的内容代码是不相同,但是实现的功能只有一个,使其中的一个活动分区获得控制区,正常启动系统。

  硬盘的分区结构如(图2)所示。


图2

  (在D盘,E盘前面都有一个粉红色的扇区,就是所谓的扩展分区表所在的位置,其后的62个扇区空闲,共同占有一个隐含磁道。)

  主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。也可以通过分区软件,在分区的最后建立主分区,或在磁盘的中部建立主分区。

  扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。

  所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。

  需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。这就是当硬盘被CIH病毒破坏后,我们可以通过KV3000的F10功能来找到丢失的D,E及以后的逻辑分区的原因。

  操作系统引导扇区(OBR)

  OBR(OSBootRecord)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOSParameterBlock)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。

  引导程序的主要任务在当根目录中寻找系统文件IO.SYS,MSDOS.SYS和WINBOOT.SYS三个文件,如果存在,就把IO.SYS文件读入内存,并移交控制权予该文件。在WIN98的系统中,没有MSDOS.sys文件,系统能够正常启动,但是无法进入桌面;如果没有COMMAND.COM文件,能够正常启动到桌面,但是无法进入DOS字符方式。

 

  BPB参数块:记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(AllocationUnit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS的Format.com)。

  C盘的数据结构如(图3)所示。


图3

  文件分配表(FAT)

  FAT(FileAllocationTable)即文件分配表,是DOS/Win9x系统的文件寻址系统。为了防止意外损坏,FAT一般做两个(也可以设置为一个),第二FAT为第一FAT的备份,FAT区紧接在OBR之后(对于FAT32格式,位置是从引导扇区开始的第32个扇区就是第一个FAT表的位置),其大小由这个分区的空间大小及文件分配单元的大小决定。

  随着硬盘容量的迅速发展,Microsoft的DOS及Windows也先后采用我们所熟悉的FAT12、FAT16和FAT32格式。不过WindowsNT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式,不同于FAT文件格式。

  FAT12是使用12BIT来表示簇的位置,最大容量32M,FAT16是使用两个字节16BIT位来表示簇的位置,分区最大容量2G,而FAT32采用4个字节来表示簇的位置,分区最大容量65G。

  目录区(DIR)

  DIR是Directory即根目录区的简写,在FAT12和FAT16格式中,DIR紧接在第二FAT表之后,而在FAT32格式中,根目录区的位置可以在分区中的任意位置,其起始位置是由引导扇区给出的。单有FAT表还不能确定文件在磁盘中的具体位置,只有FAT表和DIR区配合使用,才能准确定位文件的确切位置。

  DIR记录着每个文件(目录)的文件名,扩展名,是否支持长文件各,起始单元(这是最重要的)、文件的属性,大小,创建日期,修改日期等住处内容。操作系统在读写文件时,根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置,然后顺序读取每个簇的内容就可以了。

  数据区(DATA)

  在DIR区之后,才是真正意义上的数据存储区,即DATA区。

  DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。

  注意:我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,除非你使用了“Format  X:/U”命令,强制对每一扇区写“F6”。

  至于硬盘分区,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,MBR,OBR,FAT,DIR之一被破坏的话,我们的数据也无法正常读取。

  需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit,DDD,KV3000,EasyRevoery等),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复。

 

数据恢复的原理

  我们在了解了数据在磁盘上存储格式后,我们就会明白为什么数据在被删除后还能够再次被找回来的原因。  

  一块新的硬盘在买回来后,必须首先分区,再用Format对相应的分区实行格式化,这样以后我们才能在这个硬盘存储数据。硬盘的分区就象是对一块地方建仓库,每个仓库就好比是一个分区。格式化就好比是为了在仓库内存放东西,必须有货架来规定相应的位置。我们有时接触到的引导分区就是仓库大门号,上面要记载这个分区的容量的性质及相关的引导启动信息。FAT表就好比是仓库的货架号,目录表就好比是仓库的帐簿。如果我们需要找某一物品时,就需要先查找帐目,再到某一货架上取东西。正常的文件读取也是这个原理,先读取某一分区的BPB参数至内存,当需要读取某一文件时,就先读取文件的目录表,找到相对应文件的首扇区和FAT表的入口后,再从FAT表中找到后续扇区的相应链接,移动磁臂到对应的位置进行文件读取,就完成了某一个文件的读写操作。

  文件的读取(Read)

  操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0028。

  操作系统从0028簇读取相应的数据,然后再找到FAT的0023单元,如果此外的内容是文件结束标志“FF”,则表示文件结束,否则从该处读取下一个簇号,再读取相应单元的内容,这样重复下去直到遇到文件结束标志。

  文件的写入(Write)

  当我们要保存文件时,操作系统首先在DIR区中找到空闲区写入文件名、大小和创建时间等相应信息,然后在数据DATA区找出空闲区域将文件保存,再将Data区的第一个簇写入DIR区,同时完成FAT表的填写,具体的动作和文件读取动作差不多。

  文件的删除(Delete)

  Win9X操作系统的文件删除工作却是很简单的,只是将目录区中该文件的第一个字符改为“E5”来表示该文件已经删除,同时改写引导扇区的第二个扇区中表示该分区点用空间大小的相应信息。

  Fdisk的使用

  和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘完全有可能恢复……

  Fdisk/MBR可以用来再建主引导区,可以在使用光盘或软盘启动系统后,使用该命令来去除还原精灵或一些引导区病毒。注意:在使用该命令之前一定要先备份分区表内容,防止病毒对分区表进行加密处理。

  Format的使用

  Format命令可以完成分区的格式化,同时检测该分区有无坏扇区。格式化也就好比是将一幢新楼的每一个房间赋于房间好,以便以后存放物品和查找。

  Fotmat的内个重要参数:

  /C测试坏扇区并进行标记为“B”。  

  /S在格式化结束后传送系统文件。

  /Q进行快速格式化,只重建FAT表和目录区。

  /U无条件对分区进行格式化,对每一扇区重写“F6H”

 

 
 
 
 

南京能邦信息安全有限公司

版权所有.保留所有权