wangqima

乞丐

基地领导人

贴子 27

精华 0

积分 -37

信用 0

竞猜 0

魅力 0

威望 -1

现金 413 CZB

银行 0 CZB

黄金 0

比特币 0

注册时间 2007-01-22

发表于:2007-01-22 02:01:44   |  只看该作者   |  本帖随机奖励楼主:0 CZB   |  转账至  wangqima

计算机知识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个柱面开始,但现在我们必需将前面的“0”改成“1”,至于后面该分区结束的柱面数没有必要修改,可以根据之1号分区的结束柱面数进行填写。

  重新划分好1号分区后,返回到分区界面,将光标定位到“Save and Continue”(保存并继续)选项保存设置,然后按下Esc键推出DM,最后根据提示重新启动电脑。

  重新启动电脑后,首先在BIOS中通过“IDE HDD Auto-Detection”功能重新设置硬盘参数,然后进入对C盘进行格式化。至此,修复工作结束。

  (2)通过PCTools解决
  工具软件PCTools是由美国Central Point公司针对PC机设计的实用工具包,该软件包中的DE(DiskEdit)工具可用来修复“0”磁道损坏的硬盘。

  首先将PCTools 9.0下载到本地硬盘,由于该软件包体积比较大,且无法在FAT32格式上的硬盘上运行,因此最好是将下载得到的压缩包解压缩,然后将整个PCTools工具包刻录到光盘上。当然,如果硬盘上有FAT16格式的分区,也可以将PCTools放在该分区上并运行。

  准备一张系统启动软盘(或启动光盘),将启动盘放入软驱并引导系统(注意,一定要加载光驱驱动),然后放入预先准备好有PCTools的光盘,进入光盘上DE所在的目录并运行DE。进入DE主界面之后,首先会弹出一个信息窗口,提示此时DE运行在只读状态。按回车之后,程序会提示用户选择要打开的文件,此时直接按回车打开默认的文档即可。打开文档后,按下Atl键激活功能菜单,选择“Options(选项)→Configuration(配置)”菜单命令。按回车后进入配置窗口,通过“Tab”键将光标定位到“Read Only”(只读)选项上,然后按空格键将该选项前的“√”取消,最后选择“OK”保存设置。

  返回到主界面,选择“Select(选择)→Drive(设备)”菜单命令,然后在出现的驱动器列表将光标定位到“Physical”(物理磁盘)上,按空格键选中它,选中“Drives”(设备)栏中的“Hard Disk”(硬盘)并回车。

  返回到主界面之后,选择“Select→Partition Table(分区表)”菜单命令,选中并进入将出现硬盘分区表信息。如果硬盘有多个分区,那么l分区就是C盘,该分区是从硬盘的0柱面开始。将1分区的“Beginning Cylinder”(起始柱面)的0改成1即可。如图9所示。

  修改之后请按回车,这时软件会提示问是否保存更改,选择“Save”(保存)并回车确定。然后按下Esc键退出即可。重新启动电脑,按下Del键进入BIOS设置画面,让BIOS自动检查硬盘设置,应该可以看到该硬盘的“Cylinder”(柱头)比原来减少了1,保存并退出,重新分区,然后格式化,修复完成。


  九.硬盘引导失败的排解

  在启动计算机后,看不到Windows启动画面,而是出现了“Non-System disk or disk error,replace disk and press a key to reboot”(非系统盘或磁盘出错)提示信息,这即是常见的硬盘故障——无法引导系统。

  (一)硬故障导致硬盘无法引导
  所谓硬盘硬故障,是指因为连接、电源或硬盘本身出现硬件故障而导致的硬盘故障。当发现硬盘无法引导时,首先得从硬件下手。

  在大多数硬盘引导失败的故障中,硬盘本身的连接或设置错误是最常见的故障原因。因此,在遇上引导故障后,可在启动电脑时,按下Del键进入BIOS设置,在主界面中移动光标到“Standard CMOS Features”(标准CMOS设置)选项,回车进入次级设置界面。在该界面中注意观察IDE端口上是否能看到当前系统中所安装的硬盘,例如下图中的“WDC WD800BB-32CCB0”就是系统中的硬盘。

  如果能够看到硬盘型号,并且型号没有出现乱码,那么可以选中该硬盘并回车,进入硬盘属性设置界面,将“IDE Primary Master”(第一IDE接口)和“Access Mode”(存取模式)选项均设置为“Auto”(自动)。移动光标到“IDE HDD Auto-Detection”(自动检测IDE硬盘)选项并按下回车键,以便让主板自动检测硬盘,如果此时能显示出相应硬盘信息,例如,Capacity(容量)、Cylinder(柱头数)等,则说明硬盘的物理连接及BIOS设置正确。

  如果在“Standard CMOS Features”中看不到硬盘盘符及相关信息,或者硬盘的型号字符变成了乱码,例如,本来应该是“IC35L060AVVAWA07-O”,可是现在却变成了“IC#5L0&0AVFA 7-0”,再查看硬盘的参数,也什么都没有,那么一般说来有两种原因:

  1.硬盘的数据线或电源线问题
  对于如今的大硬盘而言,都使用80芯的数据线。当出现在BIOS中看不到硬盘,或者硬盘型号出现乱码的现象时,首先考虑利用替换法更换一根确认没有问题的数据线,并且仔细检查数据线与硬盘接口、主板IDE接口的接触情况,查看主板IDE接口和硬盘数据接口是否出现了断针、歪针等情况。如果问题确实是因数据线及电源连接造成,一般更换数据线并排除接触不良的问题后,在BIOS中就能看到硬盘,此时硬盘也就可以引导了。

  2.硬盘本身问题
  当通过更换数据线、排除接触不良仍然无法看到硬盘,或者硬盘型号出现乱码,则只能通过替换法来检查是否是硬盘本身出了故障,具体方法是:将故障硬盘挂接在其他工作正常的电脑中,看硬盘是否能够工作,如果能够正常工作,则说明硬盘本身没有问题;如果依然检测不到硬盘,则说明硬盘已经出现了严重的故障,建议返回给生产厂商进行维修。

  注意:如果系统中安装了多块硬盘,则还需要检查硬盘的跳线设置情况,以免因为跳线设置错误而导致系统无法检测到硬盘的存在。硬盘跳线的设置方法可以通过查看说明书获得。

  这种硬盘硬故障导致的硬盘无法引导,其故障大都出现在连接数据线或IDE接口上,硬盘本身故障的可能性并不大,因此一般都可通过重新插接硬盘数据线或者改换IDE口等进行替换试验,就会很快发现故障所在。另外,BIOS中的硬盘类型正确与否直接影响硬盘的正常使用。现在的机器都支持“IDE Auto Detect”(自动检测)功能,可自动检测硬盘的类型,对于普通用户而言,建议通过该功能来自动设置硬盘参数。

  (二)软故障导致硬盘无法引导

  硬盘软故障也就是硬盘本身并没有问题,只是由于某些设置或参数被破坏而出现故障。当通过前面讲述的方法,确认硬盘没有出现硬故障时,此时可以从以下几个方面入手。

  1.系统文件破坏导致无法引导
  如果硬盘中没有安装操作系统,或者操作系统的引导文件遭到破坏,则也会出现硬盘无法引导的现象。很多电脑初学者都会自作聪明地把C盘根目录下的文件删除或移动到其他地方,殊不知此举会破坏系统引导文件,导致系统无法引导!

  如何确定系统中引导程序遭到破坏呢?拿一张启动软盘或光盘,引导系统,如果能在DOS状态下看到硬盘中的C、D、E……这样的逻辑分区及分区中的文件,则证明只是引导程序被破坏,此时只需要重新安装操作系统即能解决问题。

  2.硬盘引导区被破坏导致无法引导
  硬盘是一种磁介质的外部存储设备,在其盘片的每一面上,以转动轴为轴心、以一定的磁密度为间隔的若干同心圆就被划分成磁道(Track),每个磁道又被划分为若干个扇区(Sector),数据就按扇区存放在硬盘上。

  (1)什么是硬盘主引导扇区
  硬盘的第一个扇区被保留为主引导扇区,它位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。

  值得一提的是,MBR是由分区程序(例如,Fdisk.exe)产生,不同的操作系统可能不尽相同。正因为这个主引导记录容易编写,硬盘的主引导区常常成为病毒攻击的对象,从而被篡改甚至被破坏。

  (2)硬盘引导区被破坏后的故障现象
  主引导区记录被破坏后,当启动系统时,往往会出现“Non-System disk or disk error,replace disk and press a key to reboot”(非系统盘或盘出错)、“Error Loading Operating System”(装入DOS引导记录错误)或“No ROM Basic,System Halted”(不能进入ROM Basic,系统停止响应)等提示信息,在比较严重的情况下,则不会出现任何信息。

  (3)修复硬盘主引导区
  如果系统出现硬盘无法引导的现象,并且通过前面讲述的方法都无法解决问题,则可以判断是硬盘主引导区出现问题。以下介绍几种常见的修复方法:

  通过Fdisk修复硬盘主引导区。用Windows 98启动盘启动系统后,在提示符下输入“Fdisk /mbr”命令回车即可。通过FDISK加“/mbr”参数能覆盖主引导区记录的代码区,但不重建主分区表。因此只适用于主引导区记录被引导区型病毒破坏或主引导记录代码丢失,但主分区表并未损坏的情况下。

  注意:“Fdisk /mbr”命令并不适用于清除所有引导型病毒,因此要慎用。

  通过Fixmbr修复硬盘主引导区。Fixmbr工具专门用于重新构造主引导扇区。该软件只修改主引导区,对其他扇区不进行写操作,其基本命令格式如下:
  Fixmbrprivel[/A][/D]

  [/Z] [/11]

  /A Active DOS partition //激活基本DOS分区

  /D Display MBR //显示主引导区内容

  /P Display partition //显示DOS分区的结构

  /Z Zero MBR //将主引导区清零

  /H Help //帮助信息

  用启动盘引导系统后,直接运行Fixmbr,它将检查MBR结构,如果发现系统不正常则会出现是否进行修复的提示。如果回答“Yes”,它将搜索分区,当搜索到相应的分区以后,系统会提示是否修改MBR,回答“Yes”则开始自动修复。默认状态下Fixmbr能够搜索到所有已经存在的分区,并完成修改操作。如果发现最后得到的结果不对,可以用“/Z”参数将结果清空后重新启动,这样就能还原到初始状态了。

  通过“江民硬盘修复王”修复主引导区记录。首先在江民公司的网站上下载“硬盘修复王”的镜像文件及“HD.exe”文件,然后通过“HD.exe”将镜像写入江民杀毒王2003的钥匙盘中。

  用该软盘启动电脑,在提示符下输入“JMHDFIX”后回车便进入了硬盘修复王的主界面。按下F1键进入“硬盘修复工具”对话框,查看硬盘的隐藏扇区,查看0面0柱1扇区主引导信息是否正常,如果在硬盘的0面0柱1扇区,没有找到关键代码(“80”、“55 AA”),那么硬盘本身将不能引导,即使通过软盘引导后也不能进入硬盘。这时,可按下“PgDn”及“PgUp”键,在硬盘的隐藏扇区内查找关键代码。如果关键代码还存在,则程序会在表中出现闪动的红色“80”和“55AA”,并提示用户,下面还会出现“F9 = Save To Side 0 Cylinder 0 Sector 1 !!!” 提示。

  按下F9键,程序会给出警告信息,按下“Y”键确认后,就可将找到的原硬盘主引导区记录覆盖到硬盘0面0柱1扇区中,然后重新引导硬盘,恢复硬盘的引导功能。

  注意:当硬盘并没有出现引导区错误时,不要乱用工具软件来修复引导区。特别是“江民硬盘修复工具”这样的工具软件。如果将其用在完好的硬盘上,则可能会出现一些意想不到的问题。因此,不到万不得已,不要动用此类工具。
楼主
编辑   |    引用    回帖
关闭    高亮    置顶   |    移动    回收站   |    -6删主题    删主题    |