首页| 论坛| 消息
主题:计算机知识500个为什么(硬件+软件通学+基础电脑知识学习!)
回帖:五.解开硬盘逻辑死锁的一种有效方法

  一、序言

 不知道你是否曾碰到过从软盘和硬盘都启动不了计算机的情形?一般计算机的硬盘分区表被病毒感染后,若不能启动机子,通常从软盘可以启动。但在严重的情形下,不但从硬盘不能启动机子,就是从软盘也不能启动。有的恶毒的病毒就能使硬盘被死锁。笔者一次在自己机子上玩弄硬盘锁时,就被锁住过一次。结果在硬盘下选择DOS或WIN95模式启动机子都死机,在软盘下用DOS启动也死机;在COMS中将硬盘类型选择None,虽然可以从软盘启动,但启动后没有硬盘,使用软盘上的FDISK命令,想重新分区或格式化都没门。弄得我一筹莫展。

  本来,硬盘被锁住时,可以采用3.0以下的DOS版本启动机子,机子启动后虽然也不认硬盘,但其不认的原因在于其管理不了现在的大硬盘,因此可以用Debug修改硬盘分区表,修改后可以启动。但在已进入WINDOWS的年代,3.0以下的DOS实难找到,即使找到,你的机子上恐怕也因没有5寸软驱而不能使用。因此,最好的办法是编制一个程序来解决这个问题。笔者通过尝试和思考,找到一种比较实用的方法,可以轻松解开死锁的硬盘,当然也把自己的硬盘解开了。下面,我将这种方法介绍出来。

  二、硬盘锁住原理

  硬盘锁住通常是对硬盘的分区表做手脚,因此首先应该了解硬盘的分区表。硬盘分区表位于0柱面0磁头1扇区,这个扇区的前面200多个字节是主引导程序,后面从01BEH开始的64个字节是分区表。分区表共64字节,分为4栏,每栏16字节,用来描述一个分区。如果是用DOS的FDISK程序分区后,最多只用两栏,第一栏描述基本的DOS分区, 二栏描述扩展的DOS分区。 分区表一栏的结构与各字节的含义如下:

  00H—标志活动字节,活动DOS分区为80H,其它为00H。

  01H—本分区逻辑0扇区所在的磁头号。

  02H—逻辑0扇区所在柱面中的扇区号。

  03H—逻辑0扇区所在的柱面号。

  04H—分区类型标志。

  05H—本分区最后一个扇区的磁头号。

  06H—最后一个扇区的扇区号。

  07H—最后一个柱面的柱面号。

  08H—硬盘上在本分区之前的扇区总数,用双字表示。

  0CH—本分区的扇区总数,从逻辑0扇区计数,不含隐藏扇区,用双字表示。

  在上面的介绍中给出的柱面号与扇区号虽然各占一个字节,但实际上扇区号用6位表示,柱面号用10位表示,扇区号所在字节的最高两位实际上是柱面号的最高两位。   分区表的最后两个字节是分区表的有效标志,如果将其改变,将不能从硬盘启动,这是一种简单的锁住硬盘的方法。解决的办法是从软盘启动,启动后硬盘仍然可以使用。用Debug或Noratn中的Diskedit软件将硬盘该分区表中的标志恢复,则从硬盘启动也没有问题了。锁住硬盘的另一种方法是对分区参数做手脚,如果将分区参数全部变为0,则启动时由于找不到分区参数,从硬盘是没法启动,从软盘启动后也不认硬盘,如果你敲入盘符C并回车,将出现提示Invalid driver specification。

  但所幸的是,毕竟可以启动机子,不认硬盘没关系,在A盘上用DOS的Debug仍然可以读出硬盘0柱面0磁头1扇区的内容,修改后再写入0柱面0磁头1扇区,重新启动机子又没问题了。如果将分区表参数随意改为其它参数,则有可能不能用可以安装DOS的DOS系统盘启动,按F3退出后将出现内存分配错误,不能装载DOS的命令解释器COMMAND的提示,系统就死机了,笔者就曾碰见过这种情形。但用一张格式化成系统盘的软盘则可以顺利启动,只要有Debug,你仍然可以将分区表参数修改回去。

  可怕的事情是,如果你不幸将分区表参数改成一个循环链,即C盘的下一个分区指向D驱,D驱的下一个分区又指向C区,这样循环下去,DOS启动或WIN95启动时由于无休止的读取逻辑驱动器,就只有死机的份了。这是只要有硬盘存在,不管你用软盘还是硬盘都没法启动机子了,由于不能启动是由于硬盘造成的,即使你将硬盘下到其它计算机上,也没法使用,这样硬盘就彻底被锁死了,笔者所遭遇就是此情形。不信,你只需将硬盘0柱面0磁头1扇区的1D0H处改为1(如果你的D驱开始柱面号不够大,此处本来就为1),将1D1H处改为0,表示D盘的开始柱面号跟C盘一样,看看你的计算机还能不能启动,不过你在没有充分的准备前绝不要试。

  一个完整的硬盘锁程序,不过是重新改写0柱面0磁头1扇区的引导程序,并将分区表破坏或故意制造一个循环分区表,而将真正的硬盘分区表参数和引导程序放在其它隐藏扇区并保护起来,如果启动时口令不对,则不能启动机子,口令对了则顺利启动。这种硬盘锁程序,情形好的还可以用软盘启动;情形严重的就是连软盘也不能启动,硬盘真被锁住。

  八.硬盘0磁道损坏的排解

  “0”磁道处于硬盘上一个非常重要的位置,硬盘的主引导记录区(MBR)就在这个位置上。MBR位于硬盘的0磁道0柱面1扇区,其中存放着硬盘主引导程序和硬盘分区表。在总共512字节的硬盘主引导记录扇区中,446字节属于硬盘主引导程序,64字节属于硬盘分区表(DPT),两个字节(55 AA)属于分区结束标志。由此可见,“0”磁道一旦受损,将使硬盘的主引导程序和分区表信息遭到严重破坏,从而导致硬盘无法自举。“0”磁道损坏也属于硬盘坏道,只不过由于它的位置太重要,因而一旦遭到破坏,就会产生严重的后果。

  1.硬盘“0”磁道损坏后的症状

  当硬盘“0”磁道损坏后:系统自检能通过,但启动时,分区丢失或者C盘目录丢失,硬盘出现有规律的“咯吱……咯吱”的寻道声,运行SCANDISK扫描C盘,在第一簇出现一个红色的“B”;Fdisk等分区软件找不到硬盘、利用低版本的DM进行分区时,程序“死”在0磁道上;在进行“Format C:”时,屏幕提示0磁道损坏或无休止地执行读命令“Track 0 Bad”。

  2.解决硬盘“0”磁道损坏的思路

  磁头总是把“0”磁道作为寻道的基准点,如果“0”磁道出现物理损坏,磁头定位机构会因找不到“0”磁道,使硬盘自举失败。因此,在解决硬盘“0”磁道损坏问题时,一般都采取“以1代0”的方法,也就是在划分硬盘分区时,重新定义“0”磁道,将原来的“1”磁道定义为逻辑上的“0”磁道,避开已损坏的“0”磁道。

  3.通过工具软件解决硬盘“0”磁道损坏

  (1)通过DM万用版解决

  首先从网上下载DM万用版并制作好DM启动软盘,然后执行DM并进入其主界面。在主界面中按下Alt+M组合键进入DM的高级模式,将光标定位到“(E)dit/View partitions”(编辑/查看分区)选项,按回车键之后,程序要求选择需要修复的硬盘,选中硬盘,按回车便进入了该硬盘的分区查看界面。如图8所示。

  在分区列表框中选中“1”号分区,此时上面的分区信息栏将显示该分区信息,例如分区格式、容量、开始的柱面、结束的柱面等。此时需要记住开始柱面中的“0”和结束柱面序号“2489”。保持光标定位在1号分区上,然后按下Del键删除该分区,在出现的确认删除分区的界面中选择“Yes”并回车,此时1号分区便删除了。

  保持光标停留在1号分区上,然后按下Ins键添加分区。在出现的分区类型界面中选择“DOS-FAT32”选项,按回车后便到了此时修复的关键步骤——“Select Entry Mode”(设置容量模式)。在该界面中一定要选择“(C)ylinders”(柱头)选项,回车后便进入了容量输入界面。在该界面中,是按照柱面来输入容量的。对于第一个分区(也就是C盘)而
下一页 (1/3)
下一楼›:十.硬盘坏道修复

  “坏道(Bad track)”源于十多年前的小容量硬盘。当时的硬盘内部没有 ..
‹上一楼:六.硬盘坏道的维修

1、Scandisk磁盘扫描程序是解决硬盘逻辑坏道最常用的手段,而常见的Fo ..

查看全部回帖(65)
«返回主帖