1、主引导程序是由分区程序(如大家最常用的Fdisk)产生的,所以在不同的操作系统中,主引导程序可能会不同。它的作用就是检查分区表是否正确并确定以哪个分区为引导分区,然后在程序结束时把该分区的启动程序(即操作系统)调入内存执行。而对于分区表,大家应比较熟悉了,它以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于0磁道0柱面1扇区的最末端。它规定着系统有几个分区,每个分区的起始和终止扇区、大小及是否为活动分区等重要信息。操作系统引导扇区即OBR(OS Boot Record),通常位于硬盘的0磁道1柱面1扇区(如果硬盘被设置为多重引导方式,则位于每个引导系统所在的主分区或扩展分区的
2、第一个扇区)。它是操作系统可直接访问的第一个扇区,也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的分区参数记录表。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件。如检查通过,就将引导文件读入内存,并把控制权交予该文件。BPB分区表参数块则是记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称为簇)的大小等重要参数。不知大家注意过没有,同一个硬盘,用生产厂家的原厂工具来分区与用Fdisk或Partition Magic之类的第三方工具来分区是有区别的。我
3、们可以试一下,先用原厂工具来分区,然后启动Partition Magic查看,发现什么问题没有?通常用原厂工具分区的硬盘开头或结尾部分,有可能还剩下48MB左右的未使用空间,而用Fdisk或Partition Magic分区则不会产生这种情况。这是硬盘厂家为防止硬盘因为引导区的信息出错,或该处扇区物理损坏而产生的一系列麻烦而采取的一个小小的但是却很有实用价值的措施。所以,一般用原厂工具分区,硬盘工作起来会比较稳定,在非法关机时也不容易掉链子;即使出现所谓的零磁道损坏(逻辑零磁道)、引导区出错而导致系统不认盘等问题,用户也不需使用Disk Editor、PCTools等软件修复(甚至找JS维修)
4、,只需一个原厂工具重新快速低格然后分区就一切如常了。文件分配表即FAT(File Allocation Table),是系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份。FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。FAT的格式有很多种,大家比较熟悉的有FAT12、FAT16和FAT32等格式。FAT12目前仅在软盘驱动器中使用,FAT16只能用于2GB以下的分区;而FAT32使用最为广泛,可管理的最大分区为32GB。 在硬盘克隆、扫描、格式化、拷贝大文件过程中突然断电的话,基本可肯定会出现分区表损坏的情况。不过现在大家知道原来分区
5、表有两个,同时如果使用原厂工具分区,非法关机时则不易丢失分区表信息。文件系统的格式除了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记录着每个文件(目录)的起始单元(对于文件来说,这才是
6、至关重要的)、文件的属性等。操作系统在定位文件位置时,根据DIR中的起始单元,再结合FAT表就可知文件在磁盘的具体位置及大小了。数据区即DATA,当将数据复制到硬盘时,数据就存放在DATA区。对于一块储存数据的硬盘来说,它占据了硬盘的绝大部分空间,但如没有前面所提到的4个部分,DATA区就仅只是一块填充着0和1的区域,没有任何意义。 也不能说没有任何意义,特别是在SCSI硬盘这种具备完整的校验和安全机制的硬盘上,数据区的信息里也还有很多附加标识信息和校验信息,可作为数据恢复的手段。IDE硬盘上则确实较麻烦,要花不少功夫。不过目前很多发布数据恢复软件的公司都在不断研究这个问题,希望能通过优化算法
7、,尽量提高数据恢复的成功率和恢复速度。 当操作系统要在硬盘上写入文件时,首先在DIR区中写入文件信息(包括文件名、后缀名、文件大小和修改日期),然后在DATA区找到闲置空间将文件保存,并将DATA区中存放文件的簇号写入DIR区,从而完成整个写入数据的工作。系统删除文件时的操作则简单许多,它只需将该文件在DIR区中的第一个字符改成E5,在文件分配表中把该文件占用的各簇表项清0,就表示将该文件删除,而它实际上并不对DATA区进行任何改写。通常的高级格式化程序,只是重写了FAT表而已,并未将DATA区的数据清除;而对硬盘进行分区时,也只是修改了MBR和OBR, 并没有改写DATA区中的数据。正因为D
8、ATA区中的数据不易被改写,从而也为恢复数据带来了机会。事实上各种数据恢复软件,也正是利用DATA区中残留的种种痕迹,来恢复数据,这就是整个数据恢复的基本原理。 二、亡羊补牢实战数据恢复一般存储器中的数据被破坏,主要有以下几方面的原因:(1)自然灾害,如水灾、火灾、雷击、地震等造成计算机系统的破坏,导致存储数据被破坏或完全丢失;(2)使用人员的误操作;(3)计算机设备的硬件故障,包括存储介质的老化、失效;(4)病毒感染造成的数据破坏;(5)“黑客”程序或软件Bug对数据的破坏。 我们要根据数据损坏的原因,采用不同的恢复方法。现在我们就针对目前使用最为广泛的硬盘、光盘、软盘及闪存等设备,来谈谈数
9、据恢复的具体工作。 在大众硬件2003年第12期的专题再见硬盘的硬伤和软伤硬盘维修与数据恢复中,笔者提到南方一家公司写的一个恢复软件,并就他们说的可从厂家级数据列表(P列表)被清除的情况下恢复数据发表了几句评论后,收到了他们的责难,这里我可以详细解释一下。在所有正常损坏的方式中(上面说的几种),甚至更极端一点,把硬盘从五楼高扔到地上,都不会导致P列表清除,除非有人吃饱了撑的,愿意花一百几十块让人用PC3000之类的软件清除P列表。因此,国外的恢复软件都没有在零售版本中为这种正常损坏下不可能发生的情况而专门放上这样的功能。写出这样的软件展示一下公司的实力是有意义的,但因为别人没有放上类似不实在的
10、功能就说自己天下第一、独一无二那就未免有炒作嫌疑了。毕竟数据还在硬盘里面放着,虽然清除P列表的同时,也等于同时改变甚至完全清除了目录区的信息,大大增加了数据恢复的难度,但只要有针对性地采用一种新的算法和恢复方式,要恢复数据也并不是海底捞月;而且国外也不是没有这样的软件,只是没有零售版而已。1.硬盘的数据恢复 硬盘作为操作系统的载体,是各种程序运行的主要场所,也是进行数据交换的重要平台。在使用过程中,因使用不当、病毒破坏等原因造成的数据丢失现象最为常见。恢复由分区表损坏造成的数据丢失 分区表记录了关于硬盘分区情况的重要信息,是引导型病毒最喜欢破坏的地方。当硬盘的分区表被破坏后,系统就会无法正确识
11、别分区,从而造成硬盘的分区丢失,导致无法引导系统。如处理不当,有可能丢失硬盘上的所有数据。有时用户也会因对分区软件不熟悉,从而错误地删除某个分区,会造成该分区内数据丢失。 解决此类问题的关键,不在于如何恢复硬盘中的数据,因为数据区并未损坏,仅是因为硬盘的分区表被改写而无法正常访问,所以最佳的修复方法是恢复硬盘分区表。只要能正确恢复硬盘的分区表,就可恢复硬盘上的所有数据。一般情况下,如事先已利用软件备份了硬盘的分区表信息,只需通过该软件将分区表还原即可(很多硬盘工具都具有备份硬盘分区表的功能,笔者推荐使用Disk Genius,该软件为全中文界面,使用十分方便)。但如事先并未备份分区表,就只有利
12、用软件来重建分区表了(无论用什么方法来修复分区表,在修复之前必须先将BIOS中的病毒保护功能关闭,即进入“BIOS FEATURES SETUP”设置,将“Virus Warning”选项设置为“Disabled”,否则当分区表被修改时,系统会报警并挂起,导致修复失败)。由于对分区表的操作,不会影响到硬盘的数据区,所以我们可在备份了原有分区表的情况下,直接将新的分区表写入硬盘,而不用担心对硬盘上的数据造成影响。软件推荐1:KV3000 这里笔者向大家首推的软件是KV3000 DOS版。利用KV3000中的“系统测试和灾难修复”功能,可方便地修复硬盘分区表。使用方法是:先利用DOS引导软盘引导系
13、统,然后启动KV3000,进入KV3000主界面。此主题相关图片如下:(图01:KV3000 DOS版主界面) 然后按F10键进入“系统测试与灾难修复”界面,此时程序会自动检测硬盘分区表。如分区表被破坏,则屏幕显示:Hard Disk Partition Table - Error!Fix Hard Disk Partition Table or Sector (Y/N)? 意为:硬盘分区表错误,是否修复硬盘分区表或引导区? 按“Y”开始修复分区表,屏幕显示“Scanning”字样的提示。经过一段时间后,会出现如下提示:Insert a formatted diskette into driv
14、e A, Pressed “Y” to save “error” Partition table floppy filename HDPT.VIR,“N” to exit continue (Y/N)。请插入一张软盘,以便将原先硬盘的分区信息备份到软盘上。插入软盘后按“Y”键继续,按“N”退出。(请注意,备份原先硬盘分区表的步骤不能跳过,所以在利用KV3000修复分区表前一定要先准备好一张没有问题的软盘。这样即使还原分区表不成功,也可利用KV3000/HDPT.DAT命令将分区表还原至修复前的状态,再尝试利用其他软件修复。)然后插入一张空白软盘,并按“Y”键后,屏幕显示:Hard disk P
15、artition table or boot sector fixed OK!Fixing 此时KV3000便开始自动修复分区表,当屏幕上显示:OK!Press any key to return 则表示重建分区表的操作成功了。此时可按任意键退出并重启电脑,再利用软盘引导系统。一般情况下,原先丢失的分区都可恢复,数据也不会丢失。如发现修复后的硬盘分区与原先的分区不符,则可利用KV3000/HDPT.DAT将分区表还原至修复前的状态。友情提示:(1)KV3000相对来说比较“古老”,在某些内存超过512MB的电脑上执行可能会提示出错;(2)由于KV3000在修复分区表时,必须要求备份分区表,因此
16、不能通过光盘引导系统,否则会因无法将分区表备份到A盘而中断修复工作;(3)修复后的硬盘有可能仍无法引导,这可能是由于启动文件已被破坏,这时需要利用“SYS C:”命令来传输系统文件,有必要的话还需要重新安装系统。 小结:KV3000的“系统测试和灾难修复”功能是个很好用的硬盘修复工具,特别是在没有备份硬盘分区表的情况下,它往往可让硬盘数据起死回生。它对使用者也没什么特殊要求,只需按软件提示操作即可,成功率相当高,很适合没有数据恢复经验的初学者使用。 这个软件好像对现在的大硬盘支持有点问题,笔者用一个160GB的硬盘试了几次都没有办法重现上面所说的情况。120GB的硬盘在2004年第一期写硬盘结
17、构的时候解剖掉了,没有更多的其他大容量硬盘来做测试,所以只能存疑。不过在小一些的硬盘上,这个软件效果确实不错。推荐软件2:Disk Genius Disk Genius的前身就是DISKMAN,是一款经典的全中文经典硬盘分区表维护软件,采用纯中文图形界面,支持鼠标操作。作为一款硬盘分区管理工具,它提供强大的分区表重建功能,可以迅速修复损坏了的分区表。 图02:Disk Genius使用界面) 利用Disk Genius重建分区表操作起来相当简单,点击“工具”菜单,选择“重建分区表”,程序提示“建议先备份分区表”。之后重建分区表时系统会提示选择“自动方式”或“交互方式”一般情况下,建议选择“自动
18、方式”(如选择交互方式,则每个分区都给出提示,由用户选择是否保留),此时程序会开始全面扫描硬盘,扫描的时间视硬盘的大小而定。当扫描结束后,程序会提示“分区表重建完毕,存盘后生效”,并将恢复后的硬盘分区情况显示出来。如对该修复结果满意,则可选择“硬盘”“存盘”,以保存重建后的分区表;如不满意此时程序修复的结果,可选择“硬盘”“重新加载”,然后再通过交互方式来重建分区表。这里需提醒大家注意的是,当没有选择“存盘”前,一切修复都是在内存中完成的,并不会真正写入到硬盘中,所以可无限制操作而不用担心破坏数据;而一旦选择了“存盘”,对硬盘的修改就会生效了。(1)和KV3000不同的是,Disk Geniu
19、s在重建分区表时不会强制备份分区表,但笔者仍建议大家在重建分区表前备份原来的分区表;(2)对目前动辄数十GB的硬盘,Disk Genius重建分区表时扫描硬盘所花的时间相当长,使用者要有耐心(特别是在硬盘的分区表被彻底破坏后、所有分区全部丢失的情况下,扫描时间实在有点不能忍受。相比之下KV3000的效率要高得多,这也是笔者将Disk Genius作为推荐软件2的原因)。 其实,即使不用Disk Genius这类工具来修复分区表,使用如Easy Recovery或Final Data这类数据恢复软件,也可在分区表损坏的情况下直接恢复数据。不过请大家记住,在恢复时不要选择逻辑驱动器而要选择物理驱动
20、器,因为分区表坏了,则根据坏的分区表显示出来的逻辑驱动器信息也必然是错误的,你要从一个本来就不存在的、错误的逻辑驱动器里恢复数据则根本就不可能。同时,还要忍受一下漫长的扫描时间对你的折磨。恢复硬盘主引导程序 硬盘的主引导扇区是硬盘中最为敏感的部分,其中的主引导程序用于检测硬盘分区的正确性并确定活动分区,负责把引导权移交给活动分区的操作系统。如果硬盘主引导程序损坏,将无法从硬盘引导。推荐软件:Fdisk 修复硬盘主引导程序最简单有效的方法,就是利用引导盘引导系统,然后执行“Fdisk/MBR”命令,利用Fdisk程序中包含的完整的硬盘主引导程序,直接将硬盘的主引导程序覆盖,并且不会破坏硬盘的数据
21、。 如硬盘上设置了多重启动(比如Win98和Win2000的双重启动菜单),当利用Fdisk/MBR恢复主引导程序后,可能会使多重启动菜单丢失,此时需利用相应的软件重新设置。恢复因为误删除或格式化而丢失的数据 在使用电脑过程中,我们都有可能因使用不当,不小心删除一些很重要的数据。有时甚至因误操作对硬盘进行了格式化,从而造成大量的数据丢失。其实,当执行删除文件的命令后,上文已说过,数据区并未被清除。同样,当硬盘的分区被格式化后,系统也仅将根目录区清零。由于删除与格式化操作只是在文件名或根目录区上做了一些手脚,对于文件的数据部分丝毫未动,因此只要处理得当,使用数据恢复软件,完全有机会恢复丢失的数据
22、。推荐软件1:Easy Recovery 6.0 Easy Recovery是个功能强大的数据恢复软件,可轻松地恢复误删除的文件和被格式化的分区,并且支持FAT16、FAT32和NTFS分区。软件的使用很容易,初学者也可轻松掌握。安装启动Easy Recovery后,在软件的主界面上会显示“磁盘诊断”、“数据恢复”、“文件修复”、“邮件修复”、“软件更新”和“救援中心”这6个菜单。点击“数据修复”菜单,就可进行数据修复工作了。 Easy Recovery为我们提供了多种数据恢复选项,其中包括“使用高级选项自定义数据恢复功能”、“查找并恢复已删除文件”、“从一个已格式化的卷中恢复文件”、“不依赖
23、任何文件系统结构信息进行恢复”,用户可根据自己需要来选择最佳的恢复方案。 如要恢复误删除的文件,最方便的方法就是通过“查找并恢复已删除文件”。如只是删除了少量文件,在选择需恢复文件的分区后,只需点击“下一步”,程序就会对选中的分区进行一次快速扫描,自动找出当前分区内所有已删除的文件这时只需选择需恢复的文件或目录,然后选择保存的路径即可。如知道需恢复的文件名称或扩展名,我们也可在“文件过滤器”中输入这些信息。如想要恢复ZIP压缩文件,可在“文件过滤器”中输入“*.ZIP”,这样可大大加快文件恢复速度。如删除了一个包括很多文件和子目录的文件夹,则需选择“完全扫描”了,这样才能最大程度恢复数据。“从
24、一个已格式化的卷中恢复文件”,可用来恢复被格式化分区。操作更为简单,只需选择要恢复的分区,然后在“先前的文件系统”中选择以前分区所使用的文件系统类型。这里一共有4种文件系统类型可供选择:“FAT12”、“FAT16”、“FAT32”和“NTFS”。如选择了错误的文件系统类型,程序就会无法正常恢复文件。有时因我们在删除数据或格式化分区后,又向分区中写入了很多数据,因此导致使用以上两种方法仍无法找到文件时,还可尝试利用“不依赖任何文件系统结构信息进行恢复”。这时程序会以簇为单位来扫描整个硬盘,最大限度地恢复数据。不过通常搜索到的数据文件名和目录名都已面目全非了,只能作为恢复数据的最后手段。因此,在
25、误操作后,千万不要再向硬盘内写入数据。不管是copy数据还是碎片整理,都会导致数据恢复困难加大,切记! 另外,有时我们可能一次无法恢复所有数据,这时当我们在关闭程序时,还可选择保存修复进度这样下次即可选择“继续一个以前保存的数据恢复进程”,就可很方便地继续修复工作,从而避免了重复进行漫长的数据扫描过程。(1)如不需恢复C盘的数据,可将Easy Recovery安装到C盘使用。(2)在利用Easy Recovery恢复数据时,Easy Recovery对数据的操作是只读的,不会影响到数据的安全性,但千万不要把修复后的文件保存在其他需修复的分区中。最好准备一个有大量空闲空间的硬盘,用来保存修复后的
26、数据。(3)有时某些恢复后的文件可能会有问题,可利用“文件修复”功能对文件进行二次修复。Final Data 2.0当需恢复某个分区中的文件时,只要选择“文件”“打开”,然后选择相应的分区即可这时程序会提示用户选择进行“快速扫描”还是“完全扫描”,一般建议选择快速扫描,如无法找到所需文件,可再进行“完全扫描”。扫描结束后,Final Data还会将所找到的文件按“根目录”、“删除的目录”、“丢失的目录”、“丢失的文件”和“最近删除的文件”进行分类,操作起来很方便。Final Data除支持微软的Windows操作系统外,还支持UNIX系统平台,如SUN的Solaris、IBM的AIX和惠普的H
27、P UNIX等。在目前正日渐流行的Linux操作系统平台上,Final Data同样能够胜任。推荐软件3:江民数据修复王 江民数据修复王的使用更加简单明了, 对文件的修复效果也不错,加上全中文的操作界面,很适合初学者使用。不过缺点是只能支持FAT12/16/32三种格式,无法恢复NTFS格式分区中的数据。 其实形形色色的各种数据恢复软件,都是基于同样基础的数据区的数据没有被损坏,可根据数据区现有的信息还原出文件列表信息。各种数据恢复软件的差别,只在于数据经过恢复后的完好率有所差异,而产生这种差别的来源,就在于不同的软件采取了不同的“算法”。一个好的算法,可以大大缩短数据恢复时扫描所需的时间,更
28、可大大提高数据恢复的完好率。因此,各出品数据恢复软件的公司都会把自己的软件算法列为最高机密,轻易不会让人知道。 这里我想聊聊对于数据不幸被覆盖后的恢复深层数据恢复。有位业内人士写信更正我,说国内早就有了深层恢复设备弱磁读取机。其实这应该是一种误解,弱磁读取设备是指那些能够读取微弱磁信号的设备。譬如一个硬盘用火烧过或从几十米的高处扔到地上,经过高温或强烈震荡,盘片上的磁介质磁力指向发生混乱,通过磁头正常读取已不可能读到数字信息了。这时就需用到弱磁读取设备,通过精确读取混乱后的磁信号,排除掉磁矩系数不同的干扰信息,精确提取出原来的、有固定磁矩系数的0或1的磁信号。这样的设备国内确实有,但还不能对被
29、覆盖的数据进行恢复。因为在数据被覆盖情况下,原有的数据和覆盖上去的数据都拥有相同的磁矩系数,同样都是0或1的数字信号,对于弱磁读取设备来说,只能看到覆盖上去的新数据,无法分辨出其中被覆盖的数据。不能说弱磁读取的难度和所需的技术不高,因为要在经过剧烈碰撞下发生磁信息紊乱的磁盘上,分辨出什么是有用信息、什么是无用信息非常困难。按照目前的技术,弱磁恢复的成功率和数据完整性是非常低的。不过,如果是录像带、录音带这类的模拟信息,那么即使有很多干扰的磁信息,也还是能看到或听到一个大概,顶多就是像看电视时接收不好,电视画面里满是雪花而已。 深层数据恢复受到很多条件的限制,跟很多其他因素相关联,但是让我们暂时撇开所有其他因素,回到磁介质这个根源,就会发现深层数据恢复基于这样一个原理:即一
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1