Skip to content

硬盘数据恢复原理与实战

2014-01-22 22:36:11   来源:华军科技数据恢复

 

        硬盘是怎么样数据恢复的呢?首先我们来了解一下硬盘的存储原理,硬盘是通过0和1的数字信号来存储的数据的,在硬盘中就表现为磁头在变化的磁场中产生电阻值的变化,导致产生高电位和低电位的不同信号。在光盘中,则表现为凸出和凹陷的光盘介质表面产生强弱变化的光反馈信号,进而导致不同的高低电位信号。因此,硬盘结构和理论看起来虽然复杂,但是归根到底就是盘面上表示0和表示1的磁信号。只要磁盘上还有表示0和1的磁信号并且还能被分辨出来,就基本上可以说这个盘片具备了数据恢复的条件。当然,用什么手段来恢复就是另外一个问题了。

了解数据恢复的基本原理

        为了加深大家对数据恢复的理解,我们有必要简单了解一下数据存储的基本原理。这里以硬盘为例做简单说明(软盘、光盘及闪盘的数据存储原理与硬盘大同小异)。先来看看硬盘的数据结构。当我们拿到一块新硬盘时,必须先对其进行分区和格式化操作后才能使用。对于目前大多数朋友所使用的Windows操作系统来说,硬盘被操作系统划分成主引导扇区、操作系统引导扇区、文件分配表、目录区和数据区这5个部分。其中主引导扇区在每块硬盘中都是唯一的,一块硬盘上只能有一个主引导扇区,而其他部分则在硬盘的每个分区里都会存在。

         软盘、光盘、闪存盘和硬盘的数据存储原理其实有较大不同。软盘的存储原理更像是录音带,直接通过电磁感应原理把磁场变化变成电流变化,对磁头和磁介质等材料并没有特殊要求。光盘上面也说了,至于闪盘,是直接用半导体储存高电位和低电位信号来表示0和1的数据信息。同时,各种存储介质所采用的文件格式也有很大区别。

         主引导扇区位于整个硬盘的0磁道0柱面1扇区,它包括硬盘主引导程序MBR(Main Boot Record)和分区表DPT(Disk Partition Table)两部分。主引导程序是由分区程序(如大家最常用的Fdisk)产生的,所以在不同的操作系统中,主引导程序可能会不同。它的作用就是检查分区表是否正确并确定以哪个分区为引导分区,然后在程序结束时把该分区的启动程序(即操作系统)调入内存执行。而对于分区表,大家应比较熟悉了,它以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于0磁道0柱面1扇区的最末端。它规定着系统有几个分区,每个分区的起始和终止扇区、大小及是否为活动分区等重要信息。

         操作系统引导扇区即OBR(OS Boot Record),通常位于硬盘的0磁道1柱面1扇区(如果硬盘被设置为多重引导方式,则位于每个引导系统所在的主分区或扩展分区的第一个扇区)。它是操作系统可直接访问的第一个扇区,也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的分区参数记录表。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件。如检查通过,就将引导文件读入内存,并把控制权交予该文件。BPB分区表参数块则是记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称为簇)的大小等重要参数。不知大家注意过没有,同一个硬盘,用生产厂家的原厂工具来分区与用Fdisk或Partition Magic之类的第三方工具来分区是有区别的。我们可以试一下,先用原厂工具来分区,然后启动Partition Magic查看,发现什么问题没有?通常用原厂工具分区的硬盘开头或结尾部分,有可能还剩下4~8MB左右的未使用空间,而用Fdisk或Partition Magic分区则不会产生这种情况。这是硬盘厂家为防止硬盘因为引导区的信息出错,或该处扇区物理损坏而产生的一系列麻烦而采取的一个小小的但是却很有实用价值的措施。所以,一般用原厂工具分区,硬盘工作起来会比较稳定,在非法关机时也不容易掉链子;即使出现所谓的零磁道损坏(逻辑零磁道)、引导区出错而导致系统不认盘等问题,用户也不需使用Disk Editor、PCTools等软件修复,只需一个原厂工具重新快速低格然后分区就一切如常了。

         文件分配表即FAT(File Allocation Table),是系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份。FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。FAT的格式有很多种,大家比较熟悉的有FAT12、FAT16和FAT32等格式。FAT12目前仅在软盘驱动器中使用,FAT16只能用于2GB以下的分区;而FAT32使用最为广泛,可管理的最大分区为32GB。

         对于格式化、拷贝大文件过程中突然断电的话,基本可肯定会出现分区表损坏的情况。不过现在大家知道原来分区表有两个,同时如果使用原厂工具分区,非法关机时则不易丢失分区表信息。文件系统的格式除了FAT16和FAT32外,还有NTFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、VFAT、HPFS、NFS、SMB、SysV、PROC、JFS等。其实,日常我们接触的都是DOS和Windows下的文件系统,而其他的文件系统则同我们相距较远,这里就不多做介绍了。

         根目录即DIR(Directory),它紧接在第二FAT表之后。只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(对于文件来说,这才是至关重要的)、文件的属性等。操作系统在定位文件位置时,根据DIR中的起始单元,再结合FAT表就可知文件在磁盘的具体位置及大小了。

         数据区即DATA,当将数据复制到硬盘时,数据就存放在DATA区。对于一块储存数据的硬盘来说,它占据了硬盘的绝大部分空间,但如没有前面所提到的4个部分,DATA区就仅只是一块填充着0和1的区域,没有任何意义。特别是在SCSI硬盘这种具备完整的校验和安全机制的硬盘上,数据区的信息里也还有很多附加标识信息和校验信息,可作为数据恢复的手段。IDE硬盘上则确实较麻烦,要花不少功夫。不过目前很多发布数据恢复软件的公司都在不断研究这个问题,希望能通过优化算法,尽量提高数据恢复的成功率和恢复速度。

         在硬盘上写入文件时,首先在DIR区中写入文件信息(包括文件名、后缀名、文件大小和修改日期),然后在DATA区找到闲置空间将文件保存,并将DATA区中存放文件的簇号写入DIR区,从而完成整个写入数据的工作。系统删除文件时的操作则简单许多,它只需将该文件在DIR区中的第一个字符改成E5,在文件分配表中把该文件占用的各簇表项清0,就表示将该文件删除,而它实际上并不对DATA区进行任何改写。通常的高级格式化程序,只是重写了FAT表而已,并未将DATA区的数据清除;而对硬盘进行分区时,也只是修改了MBR和OBR, 并没有改写DATA区中的数据。正因为DATA区中的数据不易被改写,从而也为恢复数据带来了机会。事实上各种数据恢复软件,也正是利用DATA区中残留的种种痕迹,来恢复数据,这就是整个数据恢复的基本原理。

 实战数据恢复

 一般存储器中的数据被破坏,主要有以下几方面的原因:

 (1)自然灾害,如水灾、火灾、雷击、地震等造成计算机系统的破坏,导致存储数据被破坏或完全丢失;

 (2)使用人员的误操作;

 (3)计算机设备的硬件故障,包括存储介质的老化、失效;

 (4)病毒感染造成的数据破坏;

 (5)“黑客”程序或软件Bug对数据的破坏。

         根据数据损坏的原因,采用不同的恢复方法。现在我们就针对目前使用最为广泛的硬盘、光盘、软盘及闪存等设备,来谈谈数据恢复的具体工作。

         在所有正常损坏的方式中(上面说的几种),甚至更极端一点,把硬盘从五楼高扔到地上,都不会导致P列表清除,除非有人吃饱了撑的,愿意花一百几十块让人用PC3000之类的软件清除P列表。因此,国外的数据恢复软件都没有在零售版本中为这种正常损坏下不可能发生的情况而专门放上这样的功能。写出这样的软件展示一下公司的实力是有意义的,毕竟数据还在硬盘里面放着,虽然清除P列表的同时,也等于同时改变甚至完全清除了目录区的信息,大大增加了数据恢复的难度,但只要有针对性地采用一种新的算法和恢复方式,要恢复数据也并不是海底捞月;而且国外也不是没有这样的软件,只是没有零售版而已。

 

Back To Top
Search