精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>○ DOS>>经验技巧>>硬盘复活之术

主题:硬盘复活之术
发信人: znw()
整理人: smallhors(1999-09-27 19:57:45), 站内信件
                   硬盘复活之术


    硬盘中可能存储着大量有用数据, 如果硬盘突然出现
故障, 不能启动或者无法读取, 这也许预示着一场灾难,
此时如何恢复硬盘的完好, 保存硬盘中的有用数据, 是维
护者的首要任务, 合理有效的操作, 将会避免灾难或者把
损失降到最小限度。
    一、硬盘常见故障及解决办法
    1.系统不承认硬盘: 此类故障比较常见, 即从硬盘无
法启动, 从A 盘启动也无法转入C 盘, 使用CMOS中的自动
检测功能无法发现硬盘的存在, 这种故障大都出现在连接
电缆或IDE 口端口上, 硬盘本身的故障率很少, 可通过重
新插拔硬盘电缆或者改换IDE 口及电缆等进行替换试验,
可很快发现故障所在; 如果你是新接上的硬盘不承认, 还
有一个常见的原因就是硬盘上的主从跳线, 如果硬盘接在
IDE 的主盘位置, 则硬盘必须跳为主盘状态, 跳线错误一
般无法检测到硬盘, 比如昆腾(uantum)1.2G硬盘通过JP1
进行设置, 其共有四组跳线(PK CS DS SP),当DS短接其它
断开时为主状态, 而SP短接其它断开时为从状态, 其它硬
盘也都具有类似的跳线控制。
    2.CMOS引起的故障: CMOS的正确与否直接影响硬盘的
正常使用, 这里主要指其中的硬盘类型, 好在现在的机器
都支持"IDE AUTO DETECT"功能, 可自动检测出硬盘类型,
当你连接新的硬盘或者更换硬盘之后都要通过此功能进行
重新设置类型, 当硬盘类型错误时, 有时干脆无法启动系
统, 有时能够启动, 但会发生读写错误, 比如CMOS中的硬
盘类型小于实际硬盘容量, 则硬盘后面的扇区将无法读写,
如果是多分区状态则个别分区丢失; 还有一个重要的故障
原因, 由于目前的IDE 都支持逻辑参数类型, 硬盘可采用
NORMAL(普通模式)、LBA(逻辑块模式、LARGE(巨大模式)
等,如果在一般模式下安装了数据, 而又在CMOS中改为其
它模式, 则会发生硬盘的读写故障, 因为其物理地址的映
射关系已经改变, 将无法读取原来的正确硬盘位置。
    3.主引导程序引起的启动故障: 硬盘的主引导扇区是
硬盘中最为敏感的一个部件, 其中主引导程序是它的一部
分, 此段程序主要用于检测硬盘分区的正确性, 并确定活
动分区, 负责把引导权移交给活动分区的DOS 或其它操作
系统, 此段程序损坏将无法从硬盘引导, 但从软驱或光驱
之后可对硬盘进行读写; 修复此故障的方法较为简单, 使
用高版本DOS 的FDISK 最为方便, 当带参数/MBR运行时,
将直接更换(重写)硬盘的主引导程序, 实际上硬盘的主引
导扇区正是此程序所建立的,FDISK.EXE之中包含有完整的
硬盘主引导程序, 虽然DOS 版本不断更新, 但硬盘的主引
导程序一直没有变化, 从DOS 3.X到目前有WINDOWS 95的
DOS , 所以只要找到一种DOS 引导盘启动系统并运行此程
序即可修复, 另外象KV300等其它工具软件也具有此功能。
    4.分区表错误引导的启动故障: 分区表损坏是硬盘的
严重错误, 适错误的程度会造成不同的损失; 如果是没有
活动分区标志, 则计算机无法启动, 但从软驱或光驱引导
系统后可对硬盘读写, 可通过FDISK 程序重置活动分区进
行修复; 如果是某一个分区类型错误, 可造成某一个分区
丢失, 分区表的第四个字节(从零数起)为分区类型值, 正
常的可引导的大于32M 的基本DOS 分区类型值为06, 而扩
展DOS 分区类型值为05, 如果把基本DOS 分区类型改为05
则无法启动系统, 并且不能读写其中的数据, 如果把06改
为DOS 不识别的类型比如EFH, 则DOS 认为该分区不是DOS
分区, 当然无法读写, 很多人利用此类型值实现单个分区
的加密之用, 恢复原来的正确类型值即可使该分区恢复正
常; 分区表中还有其它数据用于记录分区的起始或终止地
址, 这些数据损坏将造成该分区混乱或丢失, 一般无法进
行手工恢复, 唯一的办法是用备份的分区表数据重新写回,
或者从其它相同类型并且分区状态一样的硬盘上获取分区
表数据, 否则将导致其它的数据永久性挂失; 在对主引导
扇区进行操作时, 可采用NU等工具软件, 操作非常方便,
可直接对硬盘主引导扇区进行读写或编辑, 当然也可采用
DEBUG进行操作, 但操作烦琐并且具有一定的风险性,谨慎
操作为是, 下面仅演示其修改分区类型方法,把第一个DOS
分区的类型改为06(假设原为05), 完成的代码如下:
    C>DEBUG
    -A
    XXXX:0100  MOV AX,0201  ;读一个扇区
    XXXX:0103  MOV BX,0200  ;数据存放在200H处
    XXXX:0106  MOV CX,0001  ;0磁道 1扇区
    XXXX:0109  MOV DX,0080  ;0磁头 硬盘驱动器
    XXXX:010C  INT 13       ;读扇区操作
    XXXX:010E  INT 3
    -G=100     ;执行,如返回AH为0则读出数据正确;
    -E 3C2     ;第一分区为3C2,之后为3D2.3E2.3F2等;
    XXXX:02C2  05.06        ;修改类型值
    -A 100                  ;修改第一条语句
    XXXX:0100 MOV AX,0301   ;改为写扇区
    G=100                   ;执行写盘操作
    5.分区有效标志错误引起的硬盘故障: 在硬盘主引导
扇区中还存在着一个重要部分, 那就是其最后的两个字节:
55AAH, 此字为扇区的有效标志,当从硬盘、软盘或光驱启
动时, 都将检测这两个字节, 如果存在则认为有硬盘存在,
否则将不承认硬盘,此标志时从硬盘启动将转入ROM BASIC
或提示放入软盘, 从软盘启动时无法转入硬盘, 此处也可
用于整个硬盘的加密处理, 可采用上述的DEBUG 方法进行
恢复处理; 另外DOS 引导扇区仍有这样的标志存在,当DOS
引导扇区无引标志时, 系统启动将显示为:
“Missing operating system”; 其修复方法可采用上述
的主引导扇区修复方法, 只是地址不同, 更方便的方法是
使用下面的DOS 系统的通用修复方法。
    6.DOS 引导系统引起的启动故障: DOS 引导系统主要
由DOS 引导扇区和DOS 系统文件组成, 系统文件主要包括
IO.SYS、MSDOS.SYS及COMMAND.COM, 其中COMMAND.COM 是
DOS 的外壳文件, 可用其它的同类文件替换, 但缺省状态
下是DOS 启动的必备文件, 在WINDOWS 95携带的DOS 系统
中, MSDOS.SYS是一个文本文件,是启动WINDOWS 95必需的
文件, 但只启动DOS 时可不用此文件; 当DOS 引导出错时,
可从软盘或光盘引导系统, 之后使用"SYS C:"传送系统即
可修复故障, 包括引导扇区及系统文件都可自动恢复到正
常状态;
    7.FAT 表引起的读写故障: FAT 表记录着硬盘中数据
的存储地址, 每一个文件都由一组连续的FAT 链指定其存
放的簇地址, FAT 表的损坏意味着文件内容的丢失, 庆幸
的是DOS 系统本身提供了两个FAT 表, 如果目前使用的FAT
表损坏, 可用第二个进行覆盖修复, 但由于不同规格的磁
盘其FAT 表的长度及第二个FAT 表的地址也是固定的, 所
以修复时必须正确查找其正确长度和位置, 有一些工具软
件如NU等本身具有这样的修复功能, 使用也非常方便, 采
用DEBUG 也可实现这种操作, 即采用其M命令把第二FAT表
移到第一个FAT表处即可; 如果第二个FAT 表也损坏了,那
无法把硬盘恢复到原来的状态, 但文件的数据仍然存放在
硬盘的数据区之中, 可用CHKDSK或SCANDISK命令对硬盘进
行修复, 最终得到*.CHK文件, 这便是丢失FAT链的扇区数
据, 如果是文本文件则可从中提取并可合并为完整的文件,
如果是二进制的数据文件, 则很难恢复出完整的文件。
    8.目录表损坏引起的引导故障: 目录表记录着硬盘中
文件的文件名等数据, 其中最重要一项是该文件的起始簇
号; 目录表由于没有自动备份功能, 所以如果目录损坏严
重将丢失大量文件, 一种减小损失的方法也是采用上面的
CHKDSK或SCANDISK程序的方法, 从硬盘中搜索出.CHK文件,
由目录表损坏时是首簇号丢失, 在FAT 未损坏的情况下所
形成的.CHK文件一般都是比较完整的文件数据,每一个.CHK
文件即是一个完整的文件, 把其改为原来的名字可恢复大
多数文件。
    9.误删除分区时数据的恢复: 当你用FDISK 删除了硬
盘分区之后, 表面现象是硬盘中的数据已经完全消失, 在
未格式化时进入硬盘会显示无效驱动器, 如果你了解FDISK
的工作原理, 就会知道, FDISK 只是重新改写了硬盘的主
引导扇区(0面0道1扇区)中的内容,具体说就是删除了硬盘
的分区表信息, 而硬盘中任何分区的数据均没有改动, 可
仿造上述的分区表错误的修复方法, 即想办法恢复分区表
数据即可恢复原来的分区及其数据, 但这只限于删除分区
或重建分区之后, 如果已经对分区用FORMAT格式化, 在先
恢复分区之后, 再按下面的方法恢复分区数据。
    10.误格式化硬盘数据的恢复: 在DOS 高版状态下,格
式化操作FORMAT在缺省状态下都建立了用于恢复格式化的
磁盘信息,实际上是把磁盘的DOS 引导扇区、FAT分区表及
目录表的所有内容复制到了磁盘的最后几个扇区中( 因为
后面的扇区很少使用),而数据区中的内容根本没有改变,
这样通过运行"UNFORMAT C:" 即可恢复原来的文件分配表
及目录表, 从而完成硬盘信息的恢复; 另外DOS 还提供了
一个MIROR 命令用于记录当前磁盘信息, 供格式化或删除
之后的恢复使用, 此方法也比较有效; 如果你事先备份了
硬盘的FAT表目录表, 则可用一般的工具软件或DEBUG重新
写回原来的位置, 同样可恢复格式化的硬盘数据。
    二、常规预防故障措施
    1.减少或避免病毒的感染: 硬盘故障大多数是由于病
毒感染所致, 引导型病毒破坏硬盘的主引导扇区或DOS 引
导扇区, 极易导致硬盘的引导故障, 而文件型病毒则破坏
硬盘文件, 严重时就会使FAT 表或目录表发生混乱, 所以
避免病毒的感染将使硬盘故障率极大地降低, 具体上机过
程要谨慎使用来历不明的软盘或盗版的光盘, 这是病毒的
最主要来源, 再就是注意网络病毒的传播; 当发现异常情
况时要及时检测病毒, 早期发现病毒将降低硬盘损失。
    2.避免误操作: 误操作也是导致硬盘故障的一个主要
原因, 尤其是在进行涉及硬盘的物理扇区操作时,必须具
有一定经验的维护人员进行, 并且要求对硬盘的结构及数
据存储格式有详细的了解, 否则改变硬盘主引导扇区或者
DOS 引导扇区, 以至于FAT 表及目录表, 将使硬盘数据面
临极大的危险; 再就是分区及格式化程序的使用, 对硬盘
进行这些操作时一般都要求输入卷标号, 所以为每个分区
设置卷标是必要的,另外通过PCTOOLS等还可以修改卷标为
小写字母或其它不可直接输入的特殊符号, 这样可有效的
禁止删除分区和格式化操作, 确实需要进行这些操作进再
改回大写字母或删除卷标即可; 对于一般用户尽量采用熟
悉的工具软件进行硬盘维护操作,而少用DEBUG等低级程序,
以免故障越修越大, 最终导致硬盘瘫痪。
    3.备份系统数据: "有备而无患", 这是个真理, 在硬
盘中有许多有用数据可以备份, 比如硬盘的主引导扇区,
如果真的硬盘分区表损坏或误删除分区, 没有备份数据那
硬盘恢复的可能性极小, 反之则可百分之百的恢复; 再就
是硬盘每个分区的FAT 表及目录表, 从上面已经看出分配
表损坏或目录表损坏, 基本不可能完全恢复数据, 如果你
有备份则就不同了, 重新写回会使硬盘中的数据完好如初,
即使分区格式化都可轻而易举的恢复; 备份的数据一定要
存放在软盘之后, 放在硬盘上是没有意义的, 因为硬盘出
故障时连备份的数据也无法使用; 利用NU等工具软件可方
便的完成这些工作, 使用DEBUG则需要小心操作,下面仅给
出备份和恢复硬盘主引导扇区的DEBUG操作过程:
    C>DEBUG
    -A500
    XXXX:0500 MOV AX,0201
    XXXX:0503 MOV BX,0100
    XXXX:0506 MOV CX,0001
    XXXX:0509 MOV DX,0080
    XXXX:050C INT 13
    XXXX:050E INT 3
    -G=500
    -N BOOT.DAT
    -RCX
    CX 0000
    :200
    -W
    之后将在当前目录形成一个512字节的BOOT.DAT文件,
可把其拷入软盘之中, 以供硬盘出现故障时使用, 恢复过
程如下,先从A驱引导系统, 然后执行下面的操作:
    C>DEBUG a:BOOT.DAT
    -A500
    XXXX:0500 MOV AX,0301
    XXXX:0503 MOV BX,0100
    XXXX:0506 MOV CX,0001
    XXXX:0509 MOV DX,0080
    XXXX:050C INT 13
    XXXX:050E INT 3
    -G=500

--
       ____ _  _    ___  _  ___       
      |_  /| \| |   \  \/ \/  /
       / /_| .` | _  \   _   /  
      /___||_|\_||_|  \_/ \_/

※ 来源:.网易 BBS bbs.netease.com.[FROM: 202.98.110.208]

[关闭][返回]