网站位置导航:首页特色栏目
 

漫谈对硬盘数据抢救

文字:李健供稿:教育信息中心图片:时间:2014-12-15点击数:3118

 

由于存储科技的不断发展,80G120G的硬盘在普通用户中都已经常见了。但是,在长时间的使用硬盘过程中,我们也在承受着硬盘随时也会出错的风险,轻则硬盘的数据丢失,重则整个硬盘报废,造成不可预料的严重后果。采用什么办法,才能解决常见的硬盘数据丢失故障,成为我们十分关注的问题。

 

 

    I. 硬盘的数据结构

要知道如何恢复硬盘数据,首先就要知道硬盘是如何存储数据的。

一个硬盘全新的硬盘要能存放文件,必须经过硬盘分区,格式化等操作步骤,因为经过这些步骤之后,在硬盘中就建立起了主分区,引导分区,确定了FAT16FAT32文件表。在一般情况下完成硬盘分区之后,会形成2种形式的分区状态;即主分区、扩展分区。

主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。主分区的作用是保存硬盘中各逻辑分区在盘片上起始位置和终止位置及分区的容量大小。其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软区或光区之后可对硬盘进行读写。

而扩展分区的概念是比较复杂的,极容易造成硬盘分区与逻辑磁盘混淆。扩展分区作为一个主分区占用了主分区表的一个表项。在扩展分区起始位置所指示的扇区(即该分区的第一个扇区)中,包含有第一个逻辑分区表,同样从1BEH字节开始,每个分区表项占用16个字节。逻辑分区表一般包含两个分区表项,一个指向某逻辑分区,另一个则指向下一个扩展分区。下一个扩展分区的首扇区又包含了一个逻辑分区表,

分区表中还有其他数据用于纪录分区的起始或终止地址。这些数据的损坏将造成该分区的混乱或丢失,一般无法进行手工恢复,唯一的方法是用备份的分区表数据重新写回,或者从其他的相同类型的并且分区状况相同的硬盘上获取分区表数据,否则将导致其他的数据永久的丢失。

  

以下几个概念,我们需要有一个深刻的了解。

      i) MBRMain Boot Record 主引导记录区)

MBR位于整个硬盘的0磁道0柱面1扇区,包括硬盘引导程序和分区表。在总共512字节的硬盘主引导扇区中,MBR只占用了其中的446个字节,其最后两个字节“55 AA”是分区的结束标志。另外的64个字节交给了DPTDisk Partition Table 硬盘分区表),从1BEH字节开始,共占用64个字节,包含四个分区表项。每个分区表项的长度为16个字节,它包含一个分区的引导标志、系统标志、起始和结尾的柱面号、扇区号、磁头号以及本分区前面的扇区数和本分区所占用的扇区数。其中“引导标志”表明此分区是否可引导,即是否活动分区。当引导标志为“80”时,此分区为活动分区;“系统标志”决定了该分区的类型,如“06”为FAT16分区,“0B”为FAT32分区,“07”为NTFS分区,“63”为UNIX分区,等;起始和结尾的柱面号、扇区号、磁头号指明了该分区的起始和终止位置。

我们假设一个硬盘分区表从1BEH字节开始的16个字节为 80 01 01 00 06 0D 68 6D 28 00 00 00 78 20 03 00

     硬盘分区表项的16个字节分配如下:

     1字节:是一个分区的激活标志,表示系统可引导。如是0则表示非活动分区。

     2字节:该分区起始磁头(HEAD)号

     3字节:该分区起始扇区(Sector)号

     4字节:该分区起始的柱面(Cylinder)号

     5字节:该分区系统类型标志

     68字节:该分区终止磁头(HEAD)号、分区结束的扇区号、分区结束的柱面号

     9-12字节:该分区首扇区的相对扇区号

     13-16字节:该分区占用的扇区总数

     以上参数我们可以用diskman或者KV3000等工具软件可轻松获取、

         

     ii) DBRDos Boot Record 操作系统引导记录区)

它通常位于硬盘的0磁道1柱面1扇区,是操作系统可直接访问的第一个扇区,它包括一个引导程序和一个被称为BPBBIOS Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以DOS为例,即是Io.sysMsodos.sys)。如果确定存在,就把它们读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元的大小等重要参数。DBR是由高级格式化程序(即format等程序)所产生的。

      

      iii) FATFile Allocation Table 文件分配表)

FATDOSWindows 9X系统的文件寻址格式,位于DBR之后。

在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是48163264……

      同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。

为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16FAT32

      iv) DIR Directory 根目录区)

DIR位于第二个FAT表之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。

      v) DATA(数据区)

数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘的大部分空间。当将数据复制到硬盘时,数据就存放在DATA区。

对于你手中硬盘来说,首先要做的事情就是分区了。硬盘分区是否合理直接影响到以后工作的便利性和数据的安全性。我们最常见到的分区表错误也是硬盘的最严重错误,不同错误的程度会造成不同的损失。如果是没有活动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过fdisk重置活动分区可进行修复。如果是某一分区类型错误,会造成某一分区的丢失。

  

 

      II. 硬盘的数据恢复

      i) 误格式化硬盘数据的恢复

  在DOS高版本状态下,格式化操作format在缺省状态下都建立了用于恢复格式化的磁盘信息,实际上是把磁盘的DOS引导扇区,fat分区表及目录表的所有内容复制到了磁盘的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变。我们都知道在DOS时代有一个非常不错的工具UnFormat,它可以恢复由Format命令清除的磁盘。如果用户是在DOS下使用Format命令误格式化了某个分区的话,可以使用该命令试试。不过UnFormat只能恢复本地硬盘和软件驱动器,而不能恢复网络驱动器。UnFormat命令除了上面的反格式化功能,它还能重新修复和建立硬盘驱动器上的损坏分区表。

  但目前再使用它来恢复格式化后分区的方法已经有点过时了,我们可以使用多种恢复软件来进行数据恢复,比如使用Easyrecovery 6.0Finaldata2.0等恢复软件均可以方便的进行数据恢复工作。其中尤其已finaldata比较简单好用,只要选取被误格式化的盘符,点选恢复即可,但需要值得注意的是,软件恢复有其局限性,不能100%还原原先的状况,特别对于一些比较大的文件来说。

      ii) 零磁道损坏时的数据恢复

  硬盘的主引导记录区(MBR)在零磁道上。MBR位于硬盘的0磁道0柱面1扇区,其中存放着硬盘主引导程序和硬盘分区表。在总共512字节的硬盘主引导记录扇区中,446字节属于硬盘主引导程序,64字节属于硬盘分区表(DPT),两个字节(55 AA)属于分区结束标志。零磁道一旦受损,将使硬盘的主引导程序和分区表信息将遭到严重破坏,从而导致硬盘无法引导。0磁道损坏判断:系统自检能通过,但启动时,分区丢失或者C盘目录丢失,硬盘出现有规律的“咯吱……咯吱”的寻道声,运行SCANDISK扫描C盘,在第一簇出现一个红色的“B”,或者Fdisk找不到硬盘、DM死在0磁道上,此种情况即为零磁道损坏!

  零磁道损坏属于硬盘坏道之一,只不过它的位置相当重要,因而一旦遭到破坏,就会产生严重的后果。如果0磁道损坏,按照目前的普通方法是无法使数据完整恢复的,通常0磁道损坏的硬盘,可以通过pqmagic或者SPFdisk来使0磁道偏转一个扇区,使用1磁道来作为0磁道来进行使用。而数据可以通过Easyrecovery来按照簇进行恢复,但数据无法保证得到完全恢复。

使用PQMagic

      大名鼎鼎的分区魔术师(Partition Magician)可能是大家最常用的硬盘分 区工具,用它来修复损坏的硬盘零磁道可谓易如 反掌。

      假设一块硬盘有两个分区(CD),用ScanDisk检查D盘时显示D盘零磁道损 坏,因此不能用formAT不能进行格式化,如果用FDISK重新调整逻辑D盘的大小, 使D盘的逻辑0磁道向前或向后移动,跨越这个坏磁道,但这样一来,就会破坏盘上的所有数据。因此这时我们必须借助PQMAGIC的威力。首先在DOS下启动 DOSPQMAGIC,选择查看D盘,此时屏幕会显示D盘的分区 和容量信息,然后选择Option菜单中的Reszie Selected Partition,用鼠标拖 动左边的容量标尺,让D区减少一点,或者直接手动输入分配D区的容量大小,目 的是空出坏的区域,确定后PQMAGICT便开始对D区进行转换,完成以后退出 PQMAGICT。这样对C盘上的文件秋毫无犯,且D盘又重见天日了。

使用 SPecialFDisk 

      SPecialFDisk在建立主分区时可由使用者自定启始柱面,通过这一选项就可以跳过损坏的柱面区域。

其它方法还有使用diskman或者pctools都可以做到。

      iii) 分区表损坏时的数据修复

  硬盘主引导记录(MBR)所在的扇区也是病毒重点攻击的地方,通过破坏主引导扇区中的DPT(分区表),就可以轻易地损毁硬盘分区信息,达到对资料的破坏目的。分区表的损坏是分区数据被破坏而使记录被破坏的。所以,我们可以使用软件来进行修复。

a 修复硬盘主引导记录

由于病毒的破坏或操作上的失误,使硬盘主引导记录和分区表损坏,硬盘将无法启动。

① 使用KV3000 

作为一款著名的杀毒软件,KV3000也具有非常强大的主引导记录和分区修复的功能。我们可以先用软盘启动后,执行KV3000,按下F6键,就可查看已经不 能引导的硬盘隐含扇区,即查看硬盘001扇区主引导信息是否正常,如果在 硬盘的001扇区,没有找到关键代码,即硬盘分区表关键代码“80”“55 AA ”,那么硬盘本身将不能引导,即使软盘引导后也不能进入硬盘。这时,可按动 翻页键PgDnPgUp键,在硬盘的隐含扇区内查找,如有,会在表中出现闪动的红 色“80”和“55AA”,并响一声来提示你,下行会出现一行提示,“F9 = Save To Side 0 Cylinder 0 Sector 1 !!!”。这时,按一下“F9”键,就可将刚找 到的、即在表中显示出的原硬盘主引信息覆盖到硬盘001扇区中,然后, 机器会重新引导硬盘,恢复硬盘的起动性能。

② 使用FDISK 

FDISK/MBR覆盖主引导记录的代码区,但不重建主分区表。适用于主引导 记录被引导区型病毒破坏或主引导记录代码丢失,但主分区表并未损坏的情况下 。注意:FDISK/MBR并不适用于清除所有引导型病毒,因此要慎用。

③ 使用FIXMBR

FIXMBR是专门用于重新构造主引导扇区的小工具,使用方法也简单。直接运 行FIXMBR的情况下它将检查MBR结构,如果发现系统不正常则会出现是否进行修 复的提示。如果回答“YES”,它将搜索分区。当搜索到相应的分区以后,系统 会提示是否修改MBR,回答“YES”则开始自动修复,如果搜索的结果不对,可使 用/Z开关符,重新启动系统将恢复到原来的状态。如果想详细了解FIXMBR的使用 方法,可以用/H开关来查看。

修复硬盘分区表

① 使用KV3000

KV3000的主菜单上,按下F10键,就可对系统的有关参数和硬盘分区表快 速测试, 如果硬盘分区表不正常,KV3000会先将坏分区表保存到软盘上以防不 测,再自动重建硬盘分区表,使硬盘起死回生。

但如果硬盘只有一个分区,而且文件分配表(FAT)、文件目录表(ROOT严重损坏,数据已经都没有了。那么,用这个功能即使恢复了C盘分区表,也不 能使C盘引导,数据也不能恢复。这时需要配合其它的硬盘修复工具来恢复数据 。如果硬盘还有DE...等几个分区,一般情况下,KV3000能找回后面没有被 破坏掉的分区,重建一个新的硬盘分区表,然后,再用DOS系统软盘引导机器后 ,就可进入硬盘后面几个分区,将数据备出后,再将硬盘重新分区、格式化。

② 使用FDISK

FDISK还可以新建立分区、重建主分区表,但这种方法不覆盖主引导记录 的代码区。如果要保证硬盘内数不受破坏,注意分区时必需与原来的分区相一致,否则数据不保。 

③ 使用DiskMan

对于硬盘分区表被病毒严重破坏,引起硬盘和系统瘫痪,DiskMan可通过未被破坏的分区引导记录信息重新建立分区表。在菜单的工具栏中选择“重建分区表”,DiskMan即开始搜索并重建分区。DiskMan将首先搜索0柱面0磁头从2扇区开始的隐含扇区,寻找被病毒挪动过的分区表。接下来搜索每个磁头的第一个扇区。搜索过程可以采用“自动”或“交互”两种方式进行。自动方式保留发现的每一个分区,适用于大多数情况。交互方式对发现的每一个分区都给出提示,由用户选择是否保留。当自动方式重建的分区表不正确时,可以采用交互方式重新搜索。存盘退出即可。

挽救硬盘FAT(文件分配表)和DIR(根目录表)

如果FAT表损坏,就可能丢失所有文件,要修复FAT表 损坏的磁盘文件也不是件轻松的事情。 

① SCANDISK 

微软操作系统自带的类似NDD的硬盘检测工具,大家对它应该都不会陌生, 因为我们在WIN 9X非法关机后重启时它就会自动运行扫描硬盘, 

网友评论

昵称:  验证码: