论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 3366阅读
  • 1回复

对DOS不识别硬盘软故障的修复,对你也许有用 [复制链接]

上一主题 下一主题
离线暗夜精灵
 
发帖
*
今日发帖
最后登录
1970-01-01
只看楼主 倒序阅读 使用道具 楼主  发表于: 2008-06-14 22:22:48
在此介绍一个利用多种工具修复DOS系统不识别硬盘的软故障的例
子,即利用硬盘参数通过计算和多种工具的使用恢复硬盘分区表信息。这对于
硬盘上含有宝贵信息未能及时备份发生了不识别硬盘的故障,又不能简单重新
构造硬盘,将有重要价值。
1.设备配置
(1)硬件配置:NEC PowerMate 386SX-20主机
(内存640K,扩展内存1024K,A驱1.2M,B驱1.44M,硬
盘43M,VGA显示器,101扩展键盘,P3300打印机)
(2)软件配置:NEC DOS3.30,NEC Hardware
Utilities
2.故障现象
该机从硬盘上启动显示附页一信息后死机;
从软盘上起动DOS亦出现“FIXED DISK CONFIG E
RROR”提示信息,DOS起动后系统不识别硬盘。
3.故障起因
在该机上使用了不知名的游戏软件之后,系统不能从硬盘上引导并且从软
驱起动后列硬盘目录,结果文件全部消失。之后错误地使用长城机配给的诊断
盘诊断软件DIAG30C对硬盘进行设置后,系统不识别硬盘,开机从软盘
启动出现附一提示信息后死机。
4.修复目标
在该机硬盘上的某一子目录下含有该单位财务软件本年度的数据库,因没
有及时备份,故不能简单地重新构造硬盘。至此,需要恢复DOS对硬盘的识
别和使用,找到硬盘原有信息,将原有数据库拷贝出来。
5.分析及修复
(1)查找硬盘参数,修正硬盘类型值:从软盘上起动,仍显示“FIX
ED DISK CONFIG ERROR”,进入DOS,运行QAPL
US软件,对硬盘进行测试,无硬件故障,获得硬盘参数:
磁头数:8(08H)(00~07H)
每道扇区数:17(11H)(01~11H)
柱面数:642(282H)(00~281H)
查NEC随机手册得知该硬盘类型是45。
起到随机配给的NEC Hardware Utilies(NEC硬
件工具)磁盘上的Setup软件,选择“Set Hardware Co
nfiguration”,设置“Hard Drive 1”的硬盘类型
为“NEC 42 MB #45”,选择“Save Current S
ettings”保存该设置。重新在软盘上起动没有出现“FIXEDDI
SKCONFIG ERROR”错误提示,但仍不识别硬盘。从硬盘上启动
,显示附一(热起动不出现内存自检提示)后系统死机,也没有出现“FIX
ED DISK CONFIG ERROR”。说明对硬盘类型的改正是正
确的。
(2)读出硬盘主引导扇区、DOS分区引导扇区,修正硬盘分区表:
从软盘上起动,运行DEBUG实用程序读出硬盘主引导扇区,分析硬盘
主引导程序和硬盘分区表,根据DOS引导过程和已查得的硬盘参数,可知硬
盘分区表已经被破坏,但第一分区表内指向DOS分区引导扇区的前4字节(
1个双字)内容是正确的。找到DOS分区引导块中的硬盘I/O参数表可简
化修正第一硬盘分区表的过程。
具体过程见附二。
重新用软盘起动,键入C:出现C>DIR并回车,目录显示出来,将数
据库拷贝出来,在拷贝过程中发现某些文件已被病毒破坏,数据有部分损失,
用CPAV软件清除病毒,发现硬盘可执行文件大部已被DIR II病毒侵
染。
6.预防与维护
禁止使用不知名的游戏软件,这些游戏软件往往是病毒的载体,在运行未
知名软件之前,先要用可靠消毒软件对其消毒,无异常情况后再使用。将硬盘
主引导扇区、DOS分区引导扇区、FAT表、FDT表的信息保存起来,待发
生意外的情况后恢复硬盘信息。用PCSHELL6.0及以上版本的MIR
ROR和REBUILD实用程序可以解决硬盘信息保存的问题。特别值得一
提的是用MIRROR/PARTN可将硬盘分区表信息保存于一软盘上,在
需要时用REBUILD/PARTN恢复硬盘分区表信息。
附一
Phoenix Advanced Vidio BIOS Versio
n 1.05 03
Copyright (C) 1984-1989 Phoenix Te
chnologiest Ltd.
ALL Rights Reserved
Phoenix 80386 ROM BIOS PLUS Versio
n 1.10.87
Copyright (C) 1985-1990 Phoenix Te
chnologiest Ltd.
ALL Rights Reserved
NEC Corporation
PerwerMate SX/20
1024K System Memory
384K Reserved
-----
640K Base Memory, 01024K Extended
FIXED DISK CONFIG ERROR
附二
在A盘起动DEBUG程序
A>DEBUG
-a1000 ;从1000外汇编
4D04:1000 mov ax,0201 ;读1扇区
4DO4:1003 mov bx,0100 ;内存缓冲区始址ES:BX
4D04:1006 mov cx,0001 ;0头1扇区
4D04:1009 mov dx,0080 ;0柱面第1硬盘驱动器
4D04:100C int 13 ;磁盘DIOS中断调用向量
4D04:100E int 3 ;
4D04:100F
-g=1000 ;从1000处执行至INT 3处
AX=0001 BX=0100 CX=0001 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=4DO4 ES=4D04 SS=4D04 DS=4D04 IP=100E NV UP EI PL ZR NA PE NC
4D04:100E CC INT 3
硬盘主引导扇区已经读入内存ES:100处,为了便于分析把该扇区内容移至DS:7C00
处.
-m 1001200 7c00
-m 1001200 7e00 ;移至ES:7E00处
-d 7e8d 7ee2 ;主引导块错误信息
4D04:7E80 OD OA 49 ..I
4D04:7E90 6E 76 61 6C 69 64 20 50-61 72 74 69 74 69 6F 6E navlid Partition
4D04:7EA0 20 54 61 82 6C 65 00 0D-OA 45 72 72 6F 72 20 4C Table...Error L
4D04:7EB0 6F 61 64 69 8E 67 20 4F-70 65 72 61 74 69 6E 67 oading Operating
4D04:7EC0 20 53 79 73 74 65 6D 00-0D OA 4D 69 73 73 69 6E System...Missin
RD04:7ED0 67 20 4F 70 65 72 61 74-69 6E 67 20 53 79 73 74 g Operating Syst
4D04:7EE0 65 6D 00 em.
-d 7fbe 7fff ;列硬盘分区表内容
4DOR:7FB0 80 01 ..
4DO4:7FC0 01 00 06 00 88 31 09 00-00 00 7B 27 00 00 00 00 .....1....{....
4D04:7FD0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...............
4D04:7FE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...............
4D04:7FF0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA .............U.
-d 7c00 7clc ;反汇编硬盘主引导程序
4D04:7COO FA CLI
4D04:7C01 2BCO SUB AX,AX
4D04:7C03 8ED0 MOV SS,AX
4D04:7C05 8EC0 MOV ES,AX
4D04:7C07 8ED8 MOV DS,AX
4D04:7C09 B8007C MOV AX,7C00
4D04:7C0C 8BE0 MOV SP,AX
4D04:7C0E FB STI
4D04:7C0F 8BF0 MOV SI,AX
4D04:7C11 BFOO7E MOV DI,7E00 ; 将本身从0:7C00移至
0:7E00处
4D04:7C14 FC CLD
4D04:7C15 B90001 MOV DX,0100
4D04:7C18 F3 REPZ
4D04:7C19 A5 MOVSW
4D04:7C1A E90002 JMP 7E1D
-u 7e1d 7e84
4D04:7E1D B91000 MOV CX,0010 ; 继续执行
4D04:7E20 8B36857E MOV SI,[7E85] ; 将查找分区表指针取出送入SI
4D04:7E24 F60480 TEST BYTE PTR [SI],80 ;检查活动分区标志
4D04:7E27 7508 JNZ 7E31 找到转
4D04:7E29 83EE10 SUB SI,+10
4D04:7E2C E2F6 LOOP 7E24
4D04:7E2E EB37 JMP 7E67 ; 无活动硬盘分区表
; Invalid partition Table
4D04:7E30 90 NOP
4D04:7E31 BFBE07 MOV DI,07BE ; 将分区移至内存0:7BE处(16字节)
4D04:7E34 57 PUSH DI
4D04:7E35 B90800 MOV CX,0008
4D04:7E38 F3 REPZ
4D04:7E39 A5 MOVSW
4D04:7E3A 5E POP SI
4D04:7E3B BB007C MOV BX,7C00 ; 读分区引导扇区
4D04:7E3E 8B14 MOV DX,[SI]
4D04:7E40 8B4C02 MOV CX,[SI
+02]
4D04:7E43 BD0500 MOV BP,0005
4D04:7E46 B80102 MOV AX,0201
4D04:7349 CD13 INT 13
4D04:7E4B 7309 JNB 7E56 ; 成功转
4D04:7E4D 2BC0 SUB AX,AX ; 不成功复位硬盘
4D04:7E4F CD13 INT 13
4D04:7E51 4D DEC BP
4D04:7E52 7419 JZ 7E6D ; 重试5次不成功显示
; Error Loading Operating System
4D04:7E54 EBF0 JMP 7E46
4D04:7E56 BEFE7D MOV SI,7DFE
4D04:7E59 AD LODSW
4D04:7E5A 3D55AA CMP AX,AA55 ; 判断分区引导扇区有效标志
4D04:7E5D 7514 JNZ 7E73 ; 无有效标志显示
; Missing Operating System
4D04:735F BEBE07 MOV SI,07BE
4D04:7E62 EA007C0000 JMP 0000:7C00 ; 转分区引导块继续执行
4D04:7E67 8B36877E MOV SI,[7E87]
4D04:7E6B EB0A JMP 7E77
4D04:7E6D 8B36897E MOV SI,[7E89]
4D04:7E71 EB04 JMP 7E77
4D04:7E73 8B368B7E MOV SI,[7E8B]
4D04:7E77 AC LODSB
4D04:7E78 0AC0 0R AL,AL
4D04:7E7A 74FE JZ 7E7A ; 显示错误信息后陷入死循环
4D04:7E7C BB0700 MOV BX,0007
4D04:7E7F B40E MOV AH,OE
4D04:7E81 CD10 INT 10
4D04:7E83 EBF2 JMP 7E77
-d 7e85 18
4D04:7e80 EE 7F 8D-7E A7 7E C8 7E
通过对硬盘主引导程序的分析可知第一分区表内DOS分区引导扇区未遭
破坏。
读硬盘DOS分区引导扇区。(DOS不识别硬盘故不能用DEBUG命
令L 100 2 0 1)
-a1000
4D04:1000 mov ax,0201 ; 读1扇区
4D04:1003 mov bx,0100 ;
4D04:1006 mov cx,0001 ; 0柱1扇区
4D04:1009 mov dx,0180 ;1号硬盘1磁头
4D04:100C int 13
4D04:100E int 3
4D04:100F
-g=1000
AX=0001 BX=0100 CX=0001 DX=0180 SP=FFEE BP=0000 SI=0000 DI=0000
DS=4D04 ES=4D04 SS=4D04 CS=4D04 IP=100E NV UP EI PL ZR NA PE NC
4D04:100E CC INT 3
-d 103 10a ;显示OEM标志
4D04:7C00 4E 45 43 49 53-33 2E 33 NECIS3.3
列硬盘I/O参数表内容
-d 10b 11d
4D04:7C00 00 02 04 01 00 .....
4D04:7C10 02 00 02 77 FF F8 40 00-11 00 08 00 11 00 ...w..@.......
重新读硬盘主引导扇区至DS:100处,修正硬盘分区表:
(读主引导扇区略)
-E 7FC2
4D04:7FC2 06.04 00.07 88.51 31.E0 09.11 00.0
4D04:7FC8 00.00 00.0 7B.77 27.FF 00.0 00.0
将修正后硬盘分区表写回0头0柱1扇区
-a1000 ;从1000处汇编
4D04:1000 mov ax,0301 ;写1扇区
4D04:1003 mov bx,0100 ;内存缓冲区始址ES:BX
4D04:1006 mov cx,0001 ;0头1扇区
4D04:1009 mov dx,0080 ;0柱面第1硬盘驱动器
4D04:100C int 13 ;磁盘BIOS中断调用向量
4D04:100E int 3 ;
4D04:100F
-g=1000
AX=0001 BX=0100 CX=0001 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=4D04 ES=4D04 SS=4D04 CS=RD04 IP=100E NV UP EI PL ZR NA PE NC
4D04:100E CC INT 3
注:有关硬盘主引导扇区和DOS分区引导扇区的内容具体含义可参见《局部
网操作系统DOS高级技术分析》张载鸿编 国防工业出版社出版
离线彩虹飞翔
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 沙发  发表于: 2008-06-16 08:22:49
一个也看不懂呀  :81)