第三部分--附录 <BR>每个用户的硬盘中都存放着大量的有用数据,而硬盘又是一个易出毛病的采诵宁。为了有效的保存硬盘中的数据,除了有效的保存硬盘中的数据,备份工作以外,还要学会在硬盘出现故障时如何救活硬盘,或者提取其中的有用数据,把损失降到最小程度。 <BR>1、系统不承认硬盘 <BR>此类故障比较常见,即从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无法发现硬盘的存在。这种故障大都出现在连接电缆或IDE口端口上,硬盘本身的故障率很少,可通过重新插拔硬盘电缆或者改换IDE口及电缆等进行替换试验,可很快发现故障的所在。如果新接上的硬盘不承认,还有一个常见的原因就是硬盘上的主从条线,如果硬盘接在IDE的主盘位置,则硬盘必须跳为主盘状,跳线错误一般无法检测到硬盘。 <BR><BR>2、CMOS引起的故障 <BR>CMOS的正确与否直接影响硬盘的正常使用,这里主要指其中的硬盘类型。好在现在的机器都支持IDEautodetect的功能,可自动检测硬盘的类型。当连接新的硬盘或者更换新的硬盘后都要通过此功能重新进行设置类型。当然,现在有的类型的主板可自动识别硬盘的类型。当硬盘类型错误时,有时干脆无法启动系统,有时能够启动,但会发生读写错误。比如CMOS中的硬盘类型小于实际的硬盘容量,则硬盘后面的扇区将无法读写,如果是多分区状态则个别分区将丢失。还有一个重要的故障原因,由于目前的IDE都支持逻辑参数类型,硬盘可采用Normal、LBA、Large等。如果在一般的模式下安装了数据,而又在CMOS中改为其他的模式,则会发生硬盘的读写错误故障,因为其物理地质的映射关系已经改变,将无法读取原来的正确硬盘位置。 <BR> <BR>3、主引导程序引起的启动故障 <BR>硬盘的主引导扇区是硬盘中的最为敏感的一个采诵宁,其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软区或光区之后可对硬盘进行读写。修复此故障的方法较为简单,使用高版本DOS的fdisk最为方便,当带参数/mbr运行时,将直接更换(重写)硬盘的主引导程序。实际上硬盘的主引导扇区正是此程序建立的,fdisk.exe之中包含有完整的硬盘主引导程序。虽然DOS版本不断更新,但硬盘的主引导程序一直没有变化,从DOS3.x到目前有winDOS95的DOS,所以只要找到一种DOS引导盘启动系统并运行此程序即可修复。 <BR><BR>4、分区表错误引导的启动故障 <BR>分区表错误是硬盘的严重错误,不同错误的程度会造成不同的损失。如果是没有活动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过fdisk重置活动分区进行修复。如果是某一分区类型错误,可造成某一分区的丢失。分区表的第四个字节为分区类型值,正常的可引导的大于32mb的基本DOS分区值为06,而扩展的DOS分区值是05。如果把基本DOS分区类型改为05则无法启动系统,并且不能读写其中的数据。如果把06改为DOS不识别的类型如efh,则DOS认为改分区不是DOS分区,当然无法读写。很多人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正常。分区表中还有其他数据用于纪录分区的起始或终止地址。这些数据的损坏将造成该分区的混乱或丢失,一般无法进行手工恢复,唯一的方法是用备份的分区表数据重新写回,或者从其他的相同类型的并且分区状况相同的硬盘上获取分区表数据,否则将导致其他的数据永久的丢失。在对主引导扇区进行操作时,可采用nu等工具软件,操作非常的方便,可直接对硬盘主引导扇区进行读写或编辑。当然也可采用debug进行操作,但操作繁琐并且具有一定的风险。 <BR><BR>5、分区有效标志错误引起的硬盘故障 <BR>在硬盘主引导扇区中还存在一个重要的部分,那就是其最后的两个字节:55aah,此字为扇区的有效标志。当从硬盘,软盘或光区启动时,将检测这两个字节,如果存在则认为有硬盘存在,否则将不承认硬盘。此标志时从硬盘启动将转入rombasic或提示放入软盘。从软盘启动时无法转入硬盘。此处可用于整个硬盘的加密技术。可采用debug方法进行恢复处理。另外,DOS引导扇区仍有这样的标志存在,当DOS引导扇区无引导标志时,系统启动将显示为:missingoperatingsystem。其修复的方法可采用的主引导扇区修复方法,只是地址不同,更方便的方法是使用下面的DOS系统通用的修复方法。 <BR><BR>6、DOS引导系统引起的启动故障 <BR>DOS引导系统主要由DOS引导扇区和DOS系统文件组成。系统文件主要包括io.sys、msdos.sys、command.com,其中command.com是DOS的外壳文件,可用其他的同类文件替换,但缺省状态下是DOS启动的必备文件。在Windows95携带的DOS系统中,msdos.sys是一个文本文件,是启动windows必须的文件。但只启动DOS时可不用此文件。但DOS引导出错时,可从软盘或光盘引导系统,之后使用sysc:传送系统即可修复故障,包括引导扇区及系统文件都可自动修复到正常状态。 <BR><BR> <BR>7、fat表引起的读写故障 <BR>fat表纪录着硬盘数据的存储地址,每一个文件都有一组连接的fat链指定其存放的簇地址。fat表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个fat表,如果目前使用的fat表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其fat表的长度及第二个fat表的地址也是不固定的,所以修复时必须正确查找其正确位置,由一些工具软件如nu等本身具有这样的修复功能,使用也非常的方便。采用debug也可实现这种操作,即采用其m命令把第二个fat表移到第一个表处即可。如果第二个fat表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用chkdsk或scandisk命令进行修复,最终得到*.chk文件,这便是丢失fat链的扇区数据。如果是文本文件则可从中提取并可合并完整的文件,如果是二进制的数据文件,则很难恢复出完整的文件。 <BR> <BR>8、目录表损坏引起的引导故障 <BR>目录表纪录着硬盘中文件的文件名等数据,其中最重要的一项是该文件的起始簇号,目录表由于没有自动备份功能,所以如果目录损坏将丢失大量的文件。一种减少损失的方法也是采用上面的chkdsk或scandisk程序的方法,从硬盘中搜索出chk文件,由目录表损坏时是首簇号丢失,在fat为损坏的情况下所形成的chk文件一般都比较完整的文件数据,每一个chk文件即是一个完整的文件,把其改为原来的名字可恢复大多数文件。 <BR><BR> <BR>9、误删除分区时数据的恢复 <BR>当用fdisk删除了硬盘分区之后,表面现象是硬盘中的数据已经完全消失,在未格式化时进入硬盘会显示无效驱动器。如果了解fdisk的工作原理,就会知道,fdisk只是重新改写了硬盘的主引导扇区(0面0道1扇区)中的内容。具体说就是删除了硬盘分区表信息,而硬盘中的任何分区的数据均没有改变,可仿造上述的分区表错误的修复方法,即想办法恢复分区表数据即可恢复原来的分区即数据,但这只限于除分区或重建分区之后。如果已经对分区用format格式化,在先恢复分区后,在按下面的方法恢复分区数据。 <BR> <BR>10、误格式化硬盘数据的恢复 <BR>在DOS高版本状态下,格式化操作format在缺省状态下都建立了用于恢复格式化的磁盘信息,实际上是把磁盘的DOS引导扇区,fat分区表及目录表的所有内容复制到了磁盘的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变。这样通过运行unformatc:即可恢复原来的文件分配表及目录表,从而完成硬盘信息的恢复。另外DOS还提供了一个miror命令用于纪录当前的磁盘的信息,供格式化或删除之后的恢复使用,此方法也比较有效。 <BR>硬盘基本知识 <BR><BR>9.物理驱动器与逻辑驱动器 <BR> 物理驱动器指实际安装的驱动器。 <BR> 逻辑驱动器是对物理驱动器格式化后产生的。 <BR>要点:同上。 <BR>硬盘逻辑锁巧解 <BR>在谈论具体的解决方法前,先讲述一下被逻辑锁锁住的硬盘为什么不能用普通办法启 动的原因: <BR><BR>计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引 导扇区的分区表信息,位于硬盘的零头零柱面的第一个扇区的OBEH地址开始的地方,当 分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义 为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘,以此类推找到E,F,G..... 逻辑锁就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向 自己,DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到是自己,这样一来 就形成了死循环,这就是使用软驱,光驱,双硬盘都不能正常启动的原因。实际上这逻辑锁只是利用了DOS在启动时的一个小小缺陷,便令不少高手都束手无策。知道了逻辑 锁的上锁原理,要解锁也就比较容易了。以前我看到有位朋友采用热拔插硬盘电源的方法来处理:就是在当系统启动时,先不给被锁的硬盘插上电源线,等待启动完成后再给硬盘热插上电源线,这时如果硬盘没有烧坏的话,系统就可以控制硬盘了。当然这是一种非常危险的方法,大家不要轻易尝试,下面介绍两种比较简单和安全的处理方法。 <BR> <BR>方法一:修改DOS启动文件 <BR>首先准备一张DOS6.22的系统盘,带上debug、pctools5.0、fdisk等工具。然后在一台正常的机器上,使用你熟悉的二进制编辑工具(debug、pctools5.0,或者windows下的ultraedit都行)修改软盘上的IO.SYS文件(修改前记住改该文件的属性为正常),具体是在这个文件里面搜索第一个55aa字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被黑客程序给恶意修改了,你无法用FDISK来删除和修改分区,而且仍无法用正常的启动盘启动系统,这时你可以用DEBUG来手工恢复。使用DEBUG手工修复硬盘步骤如下: <BR><BR>a:\ >debug <BR>-a <BR>-xxxx:100 mov ax,0201 读一个扇区的内容 <BR>-xxxx:103 mov bx,500 设置一个缓存地址 <BR>-xxxx:106 mov cx,0001 设置第一个硬盘的硬盘指针 <BR>-xxxx:109 mov dx,0080 读零磁头 <BR>-xxxx:10c int 13 硬盘中断 <BR>-xxxx:10e int 20 <BR>-xxxx:0110 退出程序返回到指示符 <BR>-g 运行 <BR>-d500 查看运行后500地址的内容 <BR><BR>这时候会发现地址6be开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使DOS或WINDOWS启动时查找硬盘逻辑盘进去死循环,在DEBUG指示符下用E命令修改内存数据 具体如下: <BR><BR>E6BE <BR>xx.0 xx.0 xx.0............... <BR>............................. <BR>.......................55 AA <BR>55 AA表示硬盘有效的标记,不要修改,xx0表示把以前的数据xx改成0 <BR><BR>再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下: <BR><BR>A:\ >debug <BR>a 100 表示修改100地址的汇编指令 <BR>-xxxx:100 mov ax,0301 写硬盘一个扇区 <BR>-xxxx: 这里直接按回车 <BR>-g 运行 <BR>-q 退出 <BR><BR>然后运行 FDISK/MBR(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。 怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的 数据!如果你不需要保数据的话,还有更加简单的处理方法: <BR>方法二:巧设BIOS,用DM解锁大家知道DM软件是不依赖于主板BIOS的硬盘识别安装软件,(所以在不能识别大硬盘的老主板上也可用DM来安装使用大容量硬盘)。就算在BIOS中将硬盘设为NONE,DM也可识别并处理硬盘。 <BR><BR>首先你要找到和硬盘配套的DM软件(找JS要或去网上荡),然后把DM拷到一张系统盘上。接上被锁硬盘,开机,按住DEL键,进CMOS设置,将所有IDE硬盘设为NONE(这是关键所在!),保存设置,重启动,这时系统即可 带锁启动。启动后运行DM,你会发现DM可以绕过BIOS,识别出硬盘,选中该硬盘,分区格式化,就OK了。这么简单?不过这种 方法的弱点是硬盘上的数据将全部丢失 |