硬盘故障和数据恢复

来源:互联网 发布:入驻淘宝费用 编辑:程序博客网 时间:2024/04/29 18:30

1、 硬件或介质问题的情况
①、 硬盘坏:硬盘自检不到的情况一般是硬件故障,又可分为主版的 硬盘控制器(包
括IDE口)故障和硬盘本身的故障。如果问题在主板上 ,那么数据应当没有影响。如果
出在硬盘上,也不是一定不能修复。 硬盘可能的故障又可能在控制电路、电机和磁头以
及盘片。如果是控 制电路的问题,一般修好它,就可以读出数据。但如果电机、磁头和
 盘片故障,即使修理也要返回原厂,数据恢复基本没有可操作性。
②、 软盘坏:当软盘数据损坏时,可以有几种处理,一种是用NDD修 复,他会强制读出
你坏区中的东西,MOVE到空白扇区中,这就意味着 如果你的磁盘很满操作是没法进行的
。你也可以用HDCOPY2.0以上版本 READ软盘,他也会进行强读,使读入缓冲区的数据是
完好的,你再写 入一张好磁盘就可以了。当然这些方式,要看盘坏的程度。如果0磁道
 坏,数据也并非无法抢救,早先可以通过扇区读的方式,把后面的数 据读出,不过一
般来说,你依然可以HDCOPY来实验。
2、系统问题的情况
①、 在硬盘崩溃的情况下,我们经常要和一些提示信息打交道。我们 要了解他典型提
示信息的含义,注意这些原因仅仅分析逻辑损坏而不是 硬盘物理坏道的情况。
提示信息
可能原因
参考处理
Invalid Partition Table
分区信息中1BE、1CE、1DE处不符合只有一个80而其他两处为0 用工具设定,操作在前面
已经讲了。
Error Loading Operating System
主引导程序读BOOT区5次没成功。
重建BOOT区
Missing Operating System DOS
引导区的55AA标记丢失
用工具设定,把前面读写主引导区程序的DX=80改为180即可
Non-System Disk or Disk Error
BOOT区中的系统文件名与根目录中的前两个文件不同
SYS命令重新传递系统,
Disk Boot Failure
读系统文件错误 SYS命令重新传递系统,
Invalid Driver Specifcationg
如果试图切换到一个确实存在的逻辑分区出现以下信 息,说明主分区表的分区记录被破
坏了。
根据各分区情况重建分区表,或者用自动修复工具修 复。注意分区丢失是最常见的故障
之一,此时不要紧 张,一般的说此时数据并没有问题,如果你不了解处理 的方法。你
可以选择我前面介绍的自动修复分区工具进 行处理,他们大多只改写主分区表的数据区
,不会影响 你的其他数据。特别提醒大家,这些工具有的不支持 8.4G硬盘,有的与BI
OS对硬盘的识别有关系。如果你 在一台机器上不行,可以换台BIOS不同的机器实验一 
下。
Bad or missing command interpreter
这是说找不到COMMAND.com,或者COMMAND文件坏了。
如果你COPY过去COMMAND文件还是如此,一般来说是 感染了某种病毒。
Invalid media type reading drive X ,Abort,Retry,Fail?
该盘没有高级格式化,或BOOT区中I/O参数表被破坏。
这里情况较多,手工处理比较复杂,特别指出,此时 DISKEDIT可能无法运行,建议用工
具修复。
Incorrect DOS Version
可能是文件版本不统一,对9X来说,有95 95osr/2,98,98 oem/2等版本,重新SYS 时,
不要弄错 了。
用正确版本的启动盘重新SYS系统
另外说明一下,对于比较老的机器还有1071和not found rom basic、ROM BASIC OK等提
示,在目前机器中以消失。另外,当 代码区完全被破坏的情况下,系统关于无系统的提
示是来自BIOS 的,这条提示与BIOS的种类有关。另外,FDISK/MBR对代码区的 重建是我
们经常采用的。再介绍一种比较极端的情况,就是硬盘 自检正常,而用软盘和硬盘都无
法正常启动的情况,这可能是, 病毒或恶意程序利用,DOS3以上版本启动中都要检索分
区表这一 特点,把分区表置为死循环。造成启动中死机。网上曾经流传过 DOS6.22k修
改方案,其实是修改西文MS-DOS6.22的 IO.SYS,把 C2 03 06 E8 0A 00 07 72 03替换
为:C2 03 90 E8 0A 00 72 80 90就可以启动被类似情况锁住的硬盘。
②、 9X无法正常进入或工作:以下仅仅是对可能的软故障分析 ,没有考虑硬件故障.
进入图形界面前死机情况比较复杂,可能与加载的某些驱动有关 可以在START MS WIND
OWS时,用F8激活菜单,设置为step by step ,看是哪项使系统死机。而后从CONFIG或
者SYSTEM。INI中删除
进入图形界面后死机
一般这与开机加载的程序有关进入安全模式(此时自动 运行的程序将不能加载),对注
册表中的 HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run* 中
的键值和启动组中加载的程序进行分析。必要的予以删除。
显示IEXPLORE.EXE错误,不能进行任何操作
可能有某个系统的动态连接库损坏覆盖安装WIN9X,或从 其他机器上COPY损坏的连接库
。(确定哪个库损坏一般 比较困难)
频繁出现出错各种信息
一般是虚拟内存不足造成的看C盘是否剩余空间过少, 或者打开的应用程序和窗口太多

2、 全盘崩溃和分区丢失
首先重建MBR代码区,再根据情况修正分区表。修正分区 表的基本思路是查找以55AA为
结束的扇区,再根据扇区结构 和后面是否有FAT等情况判定是否为分区表,最后计算填
回, 主分区表,由于需要计算,过程比较烦琐,就不仔细介绍了 ,希望大家用前面介
绍的工具,比如NDD处理。如果文件仍然 无法读取,要考虑用TIRAMINT等工具进行修复
。如果在FAT 表彻底崩溃的情况下,恢复某个指定文件,可以用DISKEDIT 或DEBUG查找
已知信息。比如文件为文本,文件中包含“软件 狗”,那么我我们就要把他们转换为内
码C8 ED BC FE B9 B7 进行查找。
3、 文件丢失、误格式化的情况
一般的来说,文件删除仅仅是把文件的首字节,改为E5H,而并 不破坏本身,因此可以
恢复。但由于对不连续文件要恢复文件 链,由于手工交叉恢复对一般计算机用户来说并
不容易,在这 篇缩略版中就不讲了,建议用工具处理,如果已经安装了Norton Utilit
ies,可以用他来查找。另外,RECOVERNT 等工具,都是 恢复的利器。特别注意的是,
千万不要在发现文件丢失后,在 本机安装什么恢复工具,你可能恰恰把文件覆盖掉了。
特别是 你的文件在C盘的情况下,如果你发现主要文件被你失手清掉了 ,(比如你按S
HIFT删除),你应该马上直接关闭电源,用软盘 启动进行恢复或把硬盘串接到其他有恢
复工具的机器处理。误格 式化的情况可以用等工具处理。
4、 文件损坏的情况
一般的说,恢复文件损坏需要清楚的了解文件的结构,并不是很 容易的事情,而这方面
的工具也不多。不过一般的说,文件如果 字节正常,不能正常打开往往是文件头损坏。
就文件恢复举几个 简单例子。
类型 特征 处理
ZIP、TGZ等压缩包无法解压
ZIP文件损坏的情况下可以用一个名为ZIPFIX的工具 处理。不过如果你的文件是从FTP站
点上下载的,那么 有可能是你没有定义下载模式为BIN。
自解压文件无法解压
可能是可执行文件头损坏,可以用对应压缩工具按一般 压缩文件解压。
DBF文件死机后无法打开
典型的文件头中的记录数与实际不匹配了,把文件头中 的记录数向下调整,遗憾的是公
式我找不到了。
5、 硬盘被加密或变换:
此时千万不要FDISK/MBR,SYS等处理,否则可 能数据再也无法找回,一定要反解加密算
法,或找到被移走的重要扇区。 对于那些加密硬盘数据的病毒,清除时一定要选择能恢
复加密数据的可 靠杀毒软件。
6、 文件加密后密码遗忘:
对于很多字处理软件的文件加密和ZIP等压 缩包的加密,你是不能靠加密逆过程来完成
的,因为那从理论上是异常 困难的。目前有一些相关的软件,他们的思想一般都是用一
个大字典集 中的数据循环用相同算法加密后与密码的密文匹配,直到一致时则说明 找
到了密码。你可以去寻找这些软件,当然,有些软件是有后门的,比 如DOS 下的WPS,
Ctrl+qiubojun就是通用密码。Undiskp的作者冯志宏 是解文件密码的个中高手,大家不
妨去他的主页看看。
7、 系统用户密码遗忘的处理:
最简单的方法就是用软盘启动(NT的你也 可以把盘挂接在其他NT上),找到支持该文件
系统结构的软件(比如针对 NT的NTFSDOS),利用他把密码文件清掉、或者是COPY出密
码档案,用破解 软件套字典来处理。前者时间短但所有用户信息丢失,后者时间长,但
保 全了所有用户信息。对UNIX系统,我建议你一定先做一张应急盘。

 

 

第二篇、数据恢复的准备知识

文/江海客 lowpower
————————————————————————————————
声明:
1、您所看到的是《数据恢复与软故障处理基本指南》一文的文本稿,本文
已经在《计算机应用文摘》发表,传统媒体如欲转载请同该杂志社联系,
获得许可方可转载。
2、本文作者seak(哈工大紫丁香站ID)许可本文可转载于任何非商业BBS、
新闻组和WEB站点。但严禁改动、删节或添加或局部抄袭、改头换面用于任
何正式出版物。转载必须完整,包括本声明和原文紫丁香BBS信头 (即:发
信人、标题、发信站三行)。
3、由于《计算机应用文摘》编辑同志对本文的修改、和作者对文章的再次
扩充,等因素,你看到的电子版本部分章节与刊发文章并不一致。同时,
作者本人也保留对文章再次扩充修改和网上重新发布的权利。
4、本文是一篇科普文章,是作者考虑到一般用户的接受能力而写的,对本
领域的专家本文并无价值。作者力图能给广大用户做准确的描述,但由
于作者时间和水平的限制,作者不能保证本文的涉及的观点、处理方法等绝
对正确。欢迎大家就各种问题与我探讨,dongying477@163.com
————————————————————————————————

1、 系统工作机理的简单介绍(本节由lowpower缩写)
这一部分在原作中是最重要的一章,考虑到篇幅关系,进行了大量的删节。
①、 DOS(DOS兼容系统)硬盘数据的构成
DOS磁盘系统,可以按照逻辑分区的概念管理物理空间,不同分区可以装载
不同的OS系统。
示意如下:
                 硬盘空间
第一扇区|分区1     |分区2   |分区3   |分区4
主引导扇区|引导扇区|引导扇区|引导扇区|引导扇区|
各分区公用|各个分区相对独立,可安装不同操作系统。


对FAT结构的分区每一分区都有独立的引导记录,FDT表,FAT表等。同时,
系统还有一个最为重要的主引导记录。在0柱0面1扇区,今后我们用CYL代
表柱、SIDE代表面,SEC代表扇区。以下一个FAT结构分区的简图。

保留区- 磁盘参数表、DOS引导记录
控制区-FAT表1、FAT表2根目录区
数据区-数据区

以下简单介绍一下重要的部分:
主引导记录又称主分区表、MBR等等:MBR占一个扇区,在CYL 0、SIDE 0
、SEC 1,由代码区和数据区构成。其中代码区是一端标准的程序,完成
BIOS自举到OS BOOT之间的工作,为OS启动做最后的准备。标准代码区可
以由FDISK/MBR重建,但对于多系统引导的不标准MBR,将被这一操作破坏
。MBR的数据区记录了分区情况。
系统扇区:CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共62个扇
区引导区又称BOOT区:CYL 0、SIDE 1 、SEC 1 这是我们过去称的DOS引
导区。也占一个扇区。
文件分配表又称FAT:是记录文件占用簇的情况和连接关系的地方。一般有
两个FAT表,起到备份的作用。FAT12、FAT16的第一FAT表一般均在0-1-2,
FAT32的第一FAT表在0-1-33。由于FAT表记录文件占用扇区连接的地方,如
果两个FAT表都坏了,后果不堪设想。
由于FAT表的长度与当前分区的大小有关所以FAT2的地址是需要计算的。
根目录区(ROOT、FDT):这里记录了根目录里的目录文件项等,ROOT区
跟在FAT2后面。
数据区:跟在ROOT区后面,这才是数据内容。
其实, MBR、隐含扇区、BOOT区,重建都比较容易。数据恢复的关键在
于恢复数据文件。由于FAT表记录了文件在硬盘上占用扇区的链表,如果
2个FAT表都完全损坏了。那么恢复文件,特别是占用多个不连续扇区文件
就相当困难了。
②、 主引导记录简单说明:
主引导记录是硬盘引导的起点,关于代码区不多说了,其数据区,比较重
要的是2个标志,80H和55AA,80H一般在偏移1BE处,80是分区激活的标志
的标记表示系统可引导,且整个分区表只能有一个80标记。另一个就是结
尾的55 AA标记,用来表示主引导记录是一个有效的记录。另外,各个分区
自身的引导记录,也是以55AA结束,这是我们查找分区的标志。我们后面
在介绍如何主引导记录中,给出了一个完整的分区表的例子,大家可对照
查看。数据区中,用10H字节表示一个分区,最多可表示4个分区,分别从
1BE、1CE、1DE、1EE开始,我们后面给出了分区表项对应地址的含义。大
家可以对应分析一下以下分区的情况。
80  01  01  00  0B  FE  BF  FC  3F  00-00 00 7E 86 BB 00
①      ②      ③       ④            ⑤        ⑥
①:激活标记,80表示可引导分区
②:分区开始的磁头号为01、开始的扇区号为01、开始的柱面号为00,由
于开始的扇区号为2进制6位,而开始的柱面号为2进制10位,因此扇区号所
用字节的高两位要加在柱面号高两位。
③:分区的系统类型FAT32(0B),01是FAT12,04为FAT16,06为BIGDOS,07为NTFS,
其他参见分区类型表。
④:分区结束磁头号254、分区结束扇区号63、分区结束柱面号764
⑤:首扇区的相对扇区号63
⑥:总扇区数12289622
2、常见手工处理工具与DOS外部命令介绍
DEBUG:古老和最为常见的调试跟踪软件,始终捆绑在微软的DOS/WIN9X
操作系统中。有19个子命令。有编写执行汇编指令,直接读写绝对扇区
和内存单元等功能,可以在最艰苦的条件下工作。DOS6.22以下的系统,
DEBUG.EXE在DOS目录下,WIN9X系统中它在WINDOWS/COMMAND目录下,它
也出现在WIN9X所生成的应急盘中。
DISKEDIT:常见16进制编辑软件,字符界面,可以以文件方式和扇区方
式读写逻辑内容,可以读写绝对扇区,可以方便的查找编辑分区表、FAT
表、ROOT区等重要扇区。这一点要比DEBUG更方便。但在一些重要扇区损
坏的情况下,DISKEDIT可能无法启动。DISKEDIT软件可以在著名的Norton
 Utilities软件包中找到。最新的DISKEDIT出现在NU4中。
NDD:常见的FAT文件结构磁盘修复工具,就是著名的NORTON磁盘医生,
可以自动修复分区丢失等情况,可以抢救软盘坏区中的数据,强制读
出后搬移到其他空白扇区。希望大家不要再使用NORTON FOR DOS7或8
的NDD,这个版本由于不支持大分区、FAT32、长文件名等技术,会给
你带来大量的麻烦。建议大家使用Norton Utilities4或更高版本中的
NDD.EXE,这是纯DOS下的工具。在硬盘崩溃或异常的情况下,他可能
可以带给用户以希望。WIN9X下的磁盘医生调用的并不是这个程序,而
是NDD32.EXE.
FDISK:FDISK当然是个危险的命令,很多人非常恐惧,事实上,FDISK
命令的运行并不影响任何分区内的硬盘数据,他对分区的设置操作,
只改变主分区表的数据区。而特别是FDISK异常重要的隐含参数/MBR,
可以重建主分区表的代码区,清除主引导型病毒等。这是非常有用的
操作。DOS6.22以下的系统,FDISK.EXE在DOS目录下,WIN9X系统中
它在WINDOWS/COMMAND目录下,它也出现在WIN9X所生成的应急盘中。
FORMAT:在一些人眼中,FORMAT是最可怕的命令,但他并不是对硬盘
清零,特别值得注意的是,很多文件恢复工具都建议你恢复前先FORMAT
该分区起到保护的饿作用。DOS6.22以下的系统,FORMAT.COM在DOS目录
下,WIN9X系统中它在WINDOWS/COMMAND目录下,它也出现在WIN9X所生
成的应急盘中。
HD-COPY:传统的软盘COPY工具,2.0版本以后加入了强制读的功能,
可以读出一些损坏扇区的内容。
SYS:SYS命令是重建BOOT区的最简洁的手段,也可以杀除BOOT区病毒。
DOS6.22以下的系统,sys.COM在DOS目录下,WIN9X系统中它在WINDOWS
/COMMAND目录下,它也出现在WIN9X所生成的应急盘中。

令我非常遗憾的是,至今我没有发现比较出色的扇区级备份镜象工具
,我曾写过一个HD-MIRROR,但由于错误较多,我提供下载的第二天
就停止了发布,另外fixc的作者noz写过一个clone.exe,但可惜只适
合相同的硬盘。我也曾以为GHOST可以做到这点,事实上,你目前还
不能指望他为你备份一块深度破损的硬盘。。如果有一个有效的能以
按扇区机制(而不是文件机制)压缩备份一块硬盘将之做成一个镜象
文件的话,那么我们的恢复工作就拥有了更多的保证和余地。我们可
以更大胆的做恢复的尝试。
3、 一些自动处理工具或软件包
首先介绍国内的一些免费修复工具
FIXMBR:何公道先生写的一个修复MBR的工具,适合处理逻辑分区丢
失的情况, 有一些可选参数,支持 FAT32、FAT16,不支持NTFS、
LINUX等分区,支持8.4G以上硬盘。可修复CIH发作后的扩展逻辑分区。
VRVFIX:北信源公司的推出的修复硬盘共享工具,适合处理逻辑分
区丢失的情况,处理的基本比较准确。支持FAT32、FAT16,不支持
NTFS、LINUX等分区。也不支持8。4G以上硬盘。
FIXC:国内最早出现的可以修复部分被CIH破坏的C盘的工具,作者是
NOZ,新版本也加入了修复分区信息的功能,支持FAT32、FAT16,有
限支持NTFS,不支持8。4G以上硬盘。目前的版本已经比较完善。
FIXHDPT:TBSOFT工作室的分区信息修复工具。支持FAT32、FAT16
,不支持NTFS和LINUX,不支持8。4G以上硬盘,是历史比较长的工
具之一。
RE(ReapirEasy):本人早期写的分区表修复工具,支持FAT32、FAT16,
有限支持NTFS,不支持8.4G
以上硬盘,和某些BIOS不兼容。其整体水准低于前面列举的工具。
国外一些系统维护的工具目前已经达到了非常强大的程度。
Norton Utilities:历史最悠久的系统维护工具。不仅可以数据恢
复,还可以系统加速和修补内存错误。目前最新的版本是NU 4.5
FOR 9X、NU2 FOR NT等。
Tiramint:最为出色的灾难恢复工具之一,有NTFS、FAT32、FAT16、
NOVELL4种版本。生成急救软盘,可以对深度破坏的磁盘进行交叉恢复。
4、常用的基本操作
① 读出主引导记录:这是系统级数据恢复可能涉及最多的程序之一。
例:
DEBUG
-a100 ;从此处开始汇编
126C:0100 mov ax,201; 读操作一个扇区
126C:0103 mov bx,300; 送入地址300
126C:0106 mov cx,1 ;0面1扇
126C:0109 mov dx,80 ;80H为硬盘,头为0
126C:010C int 13
126C:010E int 3
126C:010F
-g=100 ;执行
AX=0050  BX=0300  CX=0001  DX=0080  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=126C  ES=126C  SS=126C  CS=126C  IP=010E   NV UP EI PL NZ NA PO NC
这里用了I/O中断13,涉及的寄存器含义为
ah,操作方式,02H为读,03H为写
al,送扇区数
bx,送准备装入扇区的内存偏移地址
cx送从哪一道哪一扇区开始,我们一般依靠改换CX来读写不同逻辑
盘某个逻辑扇区。dx,送盘符和头数
INT 3是断点中断,使程序运行到此停止。
② 显示引导区内容:我们把扇区读到某个内存地址并不是目的。而
是为了看到他的内容,在DEBUG中D命令可以方便的查看内存单元的内容。
续前例,如果我们要看到主引导区的内容的话,既然装载到300。
-d300 l200就可以查看了,一个引导区的映象类似如下,可以直观的看
到我们前面所提到的代码区和数据区。是否正常请大家自行分析一下
126C:0300  33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C   3.....|.P.P....|
126C:0310  BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04   ...PW...........
126C:0320  38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B   8,|.u...........
126C:0330  EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC   ....It.8,t....N.
126C:0340  3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25   <.t...........F%
126C:0350  96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05   ..F...<.t...<.t.
126C:0360  3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4   :.u+@.F%.u$..UP.
126C:0370  41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74   A..Xr...U.u....t
126C:0380  0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF   ....V$.......f..
126C:0390  0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E   .......3.......N
126C:03A0  25 03 4E 02 CD 13 72 29-BE 46 07 81 3E FE 7D 55   %.N...r).F..>.}U
126C:03B0  AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 27 07 EB   .tZ.......u..'..
126C:03C0  8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB   ...R..F..V....Z.
126C:03D0  D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 00 00 00 00   .Ot.3...........
126C:03E0  56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4   V3.VVRP.SQ...V..
126C:03F0  50 52 B8 00 42 8A 56 24-CD 13 5A 58 8D 64 10 72   PR..B.V$..ZX.d.r
126C:0400  0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 49   .@u.B......^..tI
126C:0410  6E 76 61 6C 69 64 20 70-61 72 74 69 74 69 6F 6E   nvalid partition
126C:0420  20 74 61 62 6C 65 00 45-72 72 6F 72 20 6C 6F 61    table.Error loa
126C:0430  64 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73   ding operating s
126C:0440  79 73 74 65 6D 00 4D 69-73 73 69 6E 67 20 6F 70   ystem.Missing op
126C:0450  65 72 61 74 69 6E 67 20-73 79 73 74 65 6D 00 00   erating system..
126C:0460  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
126C:0470  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
126C:0480  00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00   ......W.........
126C:0490  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
126C:04A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
126C:04B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01   ................
126C:04C0  01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00 00 00   ......?...~.....
126C:04D0  81 FD 0F FE FF FF BD 86-BB 00 E0 A9 75 00 00 00   ............u...
126C:04E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
126C:04F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA   ..............U.
③ 反汇编主引导区内容:判定MBR的代码区是否正常,对于数据区的
基本情况,我们可以通过直观观察得出,但对于存在引导型病毒,或
者引导区出现异常代码的情况,我们可能需要分析MBR中代码区的指令
。这一般要对已经读入内存的引导区进行反汇编。
反汇编用指令U
续前例:
-u300 l15D ;反汇编主引导扇区代码区内容
126C:0300 33C0          XOR AX,AX
126C:0302 8ED0          MOV SS,AX
…………
126C:045C 65            DB 65
126C:045D 6D            DB 6D
④ 写内存单元,在我们的前例中,主分区类型是0B是FAT32的,假定
这个类型实际是NTFS的,我们该如何修改呢?由于主分区类型的偏移
是4C3H,我们可以用E命令写到内存单元中,从附表中查得NTFS的类型
为07。因此 -e4c3 7再比如说,假定我们想把无效的分区表清零,那么
,我们应当用另一个命令F,这个命令可以用填充一个内存地址范围。
清零分区表的操作就是 -f4be 4ff 00,以下两个操作
也比较常见。
重置80标记,-e4be 80
重置55AA标记,-f4ff 4fe 55 aa
不要忘记了,此时仅仅是改动了内存中的数据,并未写到硬盘上。因
此需要用int 13中断把改写的结果,写回硬盘。
  续前例,
-a100
126C:0100 mov ax,301 ; 写操作一个扇区
-g=100 ;执行
  其实,我们相当于修改了刚才输入的读主引导扇区程序,使程序变为。
126C:0100 mov ax,301 ; 写操作一个扇区
126C:0103 mov bx,300 ;从内存地址300
126C:0106 mov cx,1   ;0面1扇
126C:0109 mov dx,80  ;80H为硬盘,头为0
126C:010C int 13
126C:010E int 3      ;断点
⑤ 绝对磁盘内容的读出与写入
类似操作在FAT32结构硬盘被CIH破坏的修复中比较常见,我们后面将讲
到恢复的基本思路就是用第二FAT表覆盖第一FAT表。那么无疑要读出第
二FAT表的内容,再回写到第一FAT表的位置上。一般的来说,大量连续
扇区的读出写入DISKEDIT进行非常方便,如果用DEBUG做则要写一段子程
序,不过程序的主要技巧就是利用int 25绝对磁盘读中断读出的内容,
而用int 26绝对磁盘写做内容写入。
4、数据可恢复的前提
  有人觉得这个题目说法比较奇特,但数据恢复,作为一个数据再现的
过程,一定要解决两个问题,第一是从哪里恢复的问题,第二是怎么恢
复的问题。解决了这两个问题,我们事实上就把握了数据恢复的全部思
想脉络。而这一部分就是从哪里恢复的问题。
①、 有效而及时的备份中是数据恢复最可靠的来源,在许多人倡导备
份到秒的今天,恐怕不会有人怀疑这点。而有些备份机制则是系统内建
的,比如两份FAT表。
②、 数据的实际有效性的判定是关键,对我们来说,硬盘无法自举、
文件找不到、文件打不开等现象,其实并不与数据丢失画等号。因为此
时往往数据只是从操作系统的角度是一种逻辑丢失,而从物理扇区意义
上,它仍然存在或部分存在。最明显的就是文件删除的例子,事实上,
这只是把文件首字节,改为0E而已。而此时文件体依然存在。
③、 数据损坏过程的可逆性分析:对数据的改变无非两种,取代和变
换,前者是不可逆的,而后者则是可逆的。我们以杀毒为例,对于大多
文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想的
杀毒过程就是感染的逆过程。这种分析也常见与重要信息被隐藏搬移或
者被加密的情况,但分析将比较复杂。
④、 数据本身是否是标准信息:有些信息实际是通用或局部通用的,
你无须考虑如何从本机抢救。只要相同或相近的系统版本就可以了,
比如BOOT区、隐含扇区、WINDOWS的DLL文件等等。典型的例子如分区
表的代码区,这是一段标准代码,事实上,它就放在你的FDISK程序里
面,你可以用DEBUG把他提取出来。
⑤、 数据本身是否可以由其他信息统计再生:有些信息尽管丢失了,
也没有备份。但它实际可以从其他数据中间接求得。最典型的就是主
分区表中的分区信息,即使你把他清零也不必害怕,因为你可以从你
几个分区中计算再生。
⑥、 破坏的完成程度:事实上,FDISK、FORMAT都不会彻底破坏数据
,一般只有低格和扇区覆盖操作才会彻底破坏数据。但有时,破坏过
程或者误操作过程会因人工终止、死机等原因不能完成。最明显的就
是CIH病毒的例子,由于CIH是以1024字节为单位覆盖扇区,这当然是
不可逆过程,于是我们最初都认为,破坏是很难恢复的,除非人工终
止。事实上,当病毒覆盖某些扇区时会与9X系统发生冲突,从而造成
死机,使数据得到了保护。

 

 


按:文中所说的方法具有一定的普遍性。偶再推荐几个很不错的磁盘工具:

DM(DISK MANAGE)万用版:可以解决大硬盘问题,进行低格操作,以及快速分区,格式化
。也可以使用各品牌硬盘专用的DM(名称可能有所不同,在厂商主页上都有下载)
PQMAGIC:无损分区,数据分区转换。
DISKMAN:恢复分区表。
RECOVER4ALL,RECOVERNT,FINALDATA,LOST&FOUND等:恢复误删除的文件(个人推荐F
INALDATA,支持中文文件名,速度也很快),如果是NTFS的系统,请下载相应的版本。

文中所述使用CHKDSK,SCANDISK等命令实不可取,可以尝试上面的误删除恢复软件来
恢复,效果很好。


(转载)
故障硬盘数据拯救全攻略
----------------------------------------------------------------------------
----
http://www.sina.com.cn 2001/07/13 16:19 李英豪 
  为了有效地保存硬盘中的数据,除了经常性地进行备份工作以外,还要学会在硬盘
出现故障时如何救活硬盘,或者从坏的区域中提取出有用的数据,把损失降到最小程度

  系统不认硬盘
  系统从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无

发现硬盘的存在。这种故障大都出现在连接电缆或IDE端口上,硬盘本身故障的可能性不
大,可通过重新插接硬盘电缆或者改换IDE口及电缆等进行替换试验,就会很快发现故障
的所在。如果新接上的硬盘也不被接受,一个常见的原因就是硬盘上的主从跳线,如果
一条IDE硬盘线上接两个硬盘设备,就要分清楚主从关系。
  CMOS引起的故障
  CMOS中的硬盘类型正确与否直接影响硬盘的正常使用。现在的机器都支持“IDE Au
to Detect”的功能,可自动检测硬盘的类型。当硬盘类型错误时,有时干脆无法启动系
统,有时能够启动,但会发生读写错误。比如CMOS中的硬盘类型小于实际的硬盘容量,
则硬盘后面的扇区将无法读写,如果是多分区状态则个别分区将丢失。还有一个重要的
故障原因,由于目前的IDE都支持逻辑参数类型,硬盘可采用“Normal,LBA,Large”等,
如果在一般的模式下安装了数据,而又在CMOS中改为其它的模式,则会发生硬盘的读写错
误故障,因为其映射关系已经改变,将无法读取原来的正确硬盘位置。
  主引导程序引起的启动故障
  主引导程序位于硬盘的主引导扇区,主要用于检测硬盘分区的正确性,并确定活动
分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘
引导,但从软驱或光驱启动之后可对硬盘进行读写。修复此故障的方法较为简单,使用
高版本DOS的FDISK最为方便,当带参数/mbr运行时,将直接更换(重写)硬盘的主引导程
序。实际上硬盘的主引导扇区正是此程序建立的,FDISK.EXE之中包含有完整的硬盘主引
导程序。虽然DOS版本不断更新,但硬盘的主引导程序一直没有变化,从DOS 3.x到Wind
os 95的DOS,只要找到一种DOS引导盘启动系统并运行此程序即可修复。
  分区表错误引发的启动故障
  分区表错误是硬盘的严重错误,不同的错误程度会造成不同的损失。如果是没有活
动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过FD
ISK重置活动分区进行修复。
  如果是某一分区类型错误,可造成某一分区的丢失。分区表的第四个字节为分区类
型值,正常的可引导的大于32MB的基本DOS分区值为06,而扩展的DOS分区值是05。很多
人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正
常。
  分区表中还有其它数据用于记录分区的起始或终止地址。这些数据的损坏将造成该
分区的混乱或丢失,可用的方法是用备份的分区表数据重新写回,或者从其它的相同类
型的并且分区状况相同的硬盘上获取分区表数据。
  恢复的工具可采用NU等工具软件,操作非常方便。当然也可采用DEBUG进行操作,但
操作繁琐并且具有一定的风险。
  分区有效标志错误的故障
  在硬盘主引导扇区中还存在一个重要的部分,那就是其最后的两个字节:“55aa”
,此字节为扇区的有效标志。当从硬盘、软盘或光盘启动时,将检测这两个字节,如果
存在则认为有硬盘存在,否则将不承认硬盘。此处可用于整个硬盘的加密技术,可采用
DEBUG方法进行恢复处理。另外,当DOS引导扇区无引导标志时,系统启动将显示为:“
Mmissing Operating System”。方便的方法是使用下面的DOS系统通用的修复方法。
  DOS引导系统引起的启动故障
  DOS引导系统主要由DOS引导扇区和DOS系统文件组成。系统文件主要包括IO.SYS、M
SDOS.SYS、COMMAND.COM,其中COMMAND.COM是DOS的外壳文件,可用其它的同类文件替换
,但缺省状态下是DOS启动的必备文件。在Windows 95携带的DOS系统中,MSDOS.SYS是一
个文本文件,是启动Windows必须的文件,但只启动DOS时可不用此文件。DOS引导出错时
,可从软盘或光盘引导系统后使用SYS C:命令传送系统,即可修复故障,包括引导扇区
及系统文件都可自动修复到正常状态。
  FAT表引起的读写故障
  FAT表记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址
。FAT表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT表,如果目
前使用的FAT表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT表的长度
及第二个FAT表的地址也是不固定的,所以修复时必须正确查找其正确位置,一些工具软
件如NU等本身具有这样的修复功能,使用也非常的方便。采用DEBUG也可实现这种操作,
即采用其m命令把第二个FAT表移到第一个表处即可。如果第二个FAT表也损坏了,则也无
法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK
或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是
文本文件则可从中提取出完整的或部分的文件内容。
  目录表损坏引起的引导故障
  目录表记录着硬盘中文件的文件名等数据,其中最重要的一项是该文件的起始簇号
。目录表由于没有自动备份功能,所以如果目录损坏将丢失大量的文件。一种减少损失
的方法也是采用CHKDSK或SCANDISK程序恢复的方法,从硬盘中搜索出*.CHK文件,由于目
录表损坏时仅是首簇号丢失,每一个*.CHK文件即是一个完整的文件,把其改为原来的名
字即可恢复大多数文件。
  误删除分区时数据的恢复
  当用FDISK删除了硬盘分区之后,表面上是硬盘中的数据已经完全消失,在未格式化
时进入硬盘会显示为无效驱动器。如果了解FDISK的工作原理,就会知道FDISK只是重新
改写了硬盘的主引导扇区(0面0道1扇区)中的内容,具体说就是删除了硬盘分区表信息,
而硬盘中的任何分区的数据均没有改变。可仿照上述的分区表错误的修复方法,即想办
法恢复分区表数据即可恢复原来的分区及数据。如果已经对分区格式化,在先恢复分区
后,可按下面的方法恢复分区数据。
  误格式化硬盘数据的恢复
  在DOS高版本状态下,FORMAT格式化操作在缺省状态下都建立了用于恢复格式化的磁
盘信息,实际上是把磁盘的DOS引导扇区、FAT分区表及目录表的所有内容复制到了磁盘
的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变。这样
通过运行UNFORMAT命令即可恢复。另外DOS还提供了一个MIROR命令用于记录当前磁盘的
信息,供格式化或删除之后的恢复使用,此方法也比较有效。

 
原创粉丝点击