硬盘数据恢复知识.docx

上传人:b****2 文档编号:2845247 上传时间:2023-05-04 格式:DOCX 页数:15 大小:26.88KB
下载 相关 举报
硬盘数据恢复知识.docx_第1页
第1页 / 共15页
硬盘数据恢复知识.docx_第2页
第2页 / 共15页
硬盘数据恢复知识.docx_第3页
第3页 / 共15页
硬盘数据恢复知识.docx_第4页
第4页 / 共15页
硬盘数据恢复知识.docx_第5页
第5页 / 共15页
硬盘数据恢复知识.docx_第6页
第6页 / 共15页
硬盘数据恢复知识.docx_第7页
第7页 / 共15页
硬盘数据恢复知识.docx_第8页
第8页 / 共15页
硬盘数据恢复知识.docx_第9页
第9页 / 共15页
硬盘数据恢复知识.docx_第10页
第10页 / 共15页
硬盘数据恢复知识.docx_第11页
第11页 / 共15页
硬盘数据恢复知识.docx_第12页
第12页 / 共15页
硬盘数据恢复知识.docx_第13页
第13页 / 共15页
硬盘数据恢复知识.docx_第14页
第14页 / 共15页
硬盘数据恢复知识.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

硬盘数据恢复知识.docx

《硬盘数据恢复知识.docx》由会员分享,可在线阅读,更多相关《硬盘数据恢复知识.docx(15页珍藏版)》请在冰点文库上搜索。

硬盘数据恢复知识.docx

硬盘数据恢复知识

硬盘数据恢复知识

1、系统工作机理的简单介绍

这一部分在原作中是最重要的一章,考虑到篇幅关系,进行了大量的删节。

①、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占一个扇区,在CYL0、SIDE0、SEC1,由代码区和数据区构成。

其中代码区是一端标准的程序,完成BIOS自举到OSBOOT之间的工作,为OS启动做最后的准备。

标准代码区可以由FDISK/MBR重建,但对于多系统引导的不标准MBR,将被这一操作破坏。

MBR的数据区记录了分区情况。

系统扇区:

CYL0、SIDE0、SEC1-CYL0、SIDE0、SEC63,共62个扇

区引导区又称BOOT区:

CYL0、SIDE1、SEC1这是我们过去称的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标记。

另一个就是结尾的55AA标记,用来表示主引导记录是一个有效的记录。

另外,各个分区自身的引导记录,也是以55AA结束,这是我们查找分区的标志。

我们后面在介绍如何主引导记录中,给出了一个完整的分区表的例子,大家可对照查看。

数据区中,用10H字节表示一个分区,最多可表示4个分区,分别从1BE、1CE、1DE、1EE开始,我们后面给出了分区表项对应地址的含义。

大家可以对应分析一下以下分区的情况。

800101000BFEBFFC3F00-00007E86BB00

①②③④⑤⑥

①:

激活标记,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软件可以在著名的NortonUtilities软件包中找到。

最新的DISKEDIT出现在NU4中。

NDD:

常见的FAT文件结构磁盘修复工具,就是著名的NORTON磁盘医生,可以自动修复分区丢失等情况,可以抢救软盘坏区中的数据,强制读出后搬移到其他空白扇区。

希望大家不要再使用NORTONFORDOS7或8的NDD,这个版本由于不支持大分区、FAT32、长文件名等技术,会给你带来大量的麻烦。

建议大家使用NortonUtilities4或更高版本中的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不兼容。

其整体水准低于前面列举的工具。

国外一些系统维护的工具目前已经达到了非常强大的程度。

NortonUtilities:

历史最悠久的系统维护工具。

不仅可以数据恢复,还可以系统加速和修补内存错误。

目前最新的版本是NU4.5FOR9X、NU2FORNT等。

Tiramint:

最为出色的灾难恢复工具之一,有NTFS、FAT32、FAT16、NOVELL4种版本。

生成急救软盘,可以对深度破坏的磁盘进行交叉恢复。

4、常用的基本操作

①读出主引导记录:

这是系统级数据恢复可能涉及最多的程序之一。

例:

DEBUG

-a100;从此处开始汇编

126C:

0100movax,201;读操作一个扇区

126C:

0103movbx,300;送入地址300

126C:

0106movcx,1;0面1扇

126C:

0109movdx,80;80H为硬盘,头为0

126C:

010Cint13

126C:

010Eint3

126C:

010F

-g=100;执行

AX=0050BX=0300CX=0001DX=0080SP=FFEEBP=0000SI=0000DI=0000

DS=126CES=126CSS=126CCS=126CIP=010ENVUPEIPLNZNAPONC

这里用了I/O中断13,涉及的寄存器含义为

ah,操作方式,02H为读,03H为写

al,送扇区数

bx,送准备装入扇区的内存偏移地址

cx送从哪一道哪一扇区开始,我们一般依靠改换CX来读写不同逻辑盘某个逻辑扇区。

dx,送盘符和头数

INT3是断点中断,使程序运行到此停止。

②显示引导区内容:

我们把扇区读到某个内存地址并不是目的。

而是为了看到他的内容,在DEBUG中D命令可以方便的查看内存单元的内容。

续前例,如果我们要看到主引导区的内容的话,既然装载到300。

-d300l200就可以查看了,一个引导区的映象类似如下,可以直观的看到我们前面所提到的代码区和数据区。

是否正常请大家自行分析一下

126C:

030033C08ED0BC007CFB-5007501FFCBE1B7C3.....|.P.P....|

126C:

0310BF1B065057B9E501-F3A4CBBEBE07B104...PW...........

126C:

0320382C7C09751583C6-10E2F5CD188B148B8,|.u...........

126C:

0330EE83C61049741638-2C74F6BE10074EAC....It.8,t....N.

126C:

03403C0074FABB0700B4-0ECD10EBF2894625<.t...........F%

126C:

0350968A4604B4063C0E-7411B40B3C0C7405..F...<.t...<.t.

126C:

03603AC4752B40C64625-067524BBAA5550B4:

.u+@.F%.u$..UP.

126C:

037041CD1358721681FB-55AA7510F6C10174A..Xr...U.u....t

126C:

03800B8AE0885624C706-A106EB1E886604BF....V$.......f..

126C:

03900A00B801028BDC33-C983FF057F038B4E.......3.......N

126C:

03A025034E02CD137229-BE4607813EFE7D55%.N...r).F..>.}U

126C:

03B0AA745A83EF057FDA-85F67583BE2707EB.tZ.......u..''..

126C:

03C08A98915299034608-13560AE812005AEB...R..F..V....Z.

126C:

03D0D54F74E433C0CD13-EBB8000000000000.Ot.3...........

126C:

03E05633F65656525006-5351BE1000568BF4V3.VVRP.SQ...V..

126C:

03F05052B800428A5624-CD135A588D641072PR..B.V$..ZX.d.r

126C:

04000A4075014280C702-E2F7F85EC3EB7449.@u.B......^..tI

126C:

04106E76616C69642070-6172746974696F6Envalidpartition

126C:

0420207461626C650045-72726F72206C6F61table.Errorloa

126C:

043064696E67206F7065-726174696E672073dingoperatings

126C:

0440797374656D004D69-7373696E67206F70ystem.Missingop

126C:

045065726174696E6720-73797374656D0000eratingsystem..

126C:

04600000000000000000-0000000000000000................

126C:

04700000000000000000-0000000000000000................

126C:

04800000008BFC1E578B-F5CB000000000000......W.........

126C:

04900000000000000000-0000000000000000................

126C:

04A00000000000000000-0000000000000000................

126C:

04B00000000000000000-0000000000008001................

126C:

04C001000BFEBFFC3F00-00007E86BB000000......?

...~.....

126C:

04D081FD0FFEFFFFBD86-BB00E0A975000000............u...

126C:

04E00000000000000000-0000000000000000................

126C:

04F00000000000000000-00000000000055AA..............U.

③反汇编主引导区内容:

判定MBR的代码区是否正常,对于数据区的基本情况,我们可以通过直观观察得出,但对于存在引导型病毒,或者引导区出现异常代码的情况,我们可能需要分析MBR中代码区的指令。

这一般要对已经读入内存的引导区进行反汇编。

反汇编用指令U

续前例:

-u300l15D;反汇编主引导扇区代码区内容

126C:

030033C0XORAX,AX

126C:

03028ED0MOVSS,AX

…………

126C:

045C65DB65

126C:

045D6DDB6D

④写内存单元,在我们的前例中,主分区类型是0B是FAT32的,假定这个类型实际是NTFS的,我们该如何修改呢?

由于主分区类型的偏移是4C3H,我们可以用E命令写到内存单元中,从附表中查得NTFS的类型为07。

因此-e4c37再比如说,假定我们想把无效的分区表清零,那么,我们应当用另一个命令F,这个命令可以用填充一个内存地址范围。

清零分区表的操作就是-f4be4ff00,以下两个操作也比较常见。

重置80标记,-e4be80

重置55AA标记,-f4ff4fe55aa

不要忘记了,此时仅仅是改动了内存中的数据,并未写到硬盘上。

因此需要用int13中断把改写的结果,写回硬盘。

续前例,

-a100

126C:

0100movax,301;写操作一个扇区

-g=100;执行

其实,我们相当于修改了刚才输入的读主引导扇区程序,使程序变为。

126C:

0100movax,301;写操作一个扇区

126C:

0103movbx,300;从内存地址300

126C:

0106movcx,1;0面1扇

126C:

0109movdx,80;80H为硬盘,头为0

126C:

010Cint13

126C:

010Eint3;断点

⑤绝对磁盘内容的读出与写入

类似操作在FAT32结构硬盘被CIH破坏的修复中比较常见,我们后面将讲到恢复的基本思路就是用第二FAT表覆盖第一FAT表。

那么无疑要读出第二FAT表的内容,再回写到第一FAT表的位置上。

一般的来说,大量连续扇区的读出写入DISKEDIT进行非常方便,如果用DEBUG做则要写一段子程序,不过程序的主要技巧就是利用int25绝对磁盘读中断读出的内容,而用int26绝对磁盘写做内容写入。

4、数据可恢复的前提

有人觉得这个题目说法比较奇特,但数据恢复,作为一个数据再现的过程,一定要解决两个问题,第一是从哪里恢复的问题,第二是怎么恢复的问题。

解决了这两个问题,我们事实上就把握了数据恢复的全部思想脉络。

而这一部分就是从哪里恢复的问题。

①、有效而及时的备份中是数据恢复最可靠的来源,在许多人倡导备份到秒的今天,恐怕不会有人怀疑这点。

而有些备份机制则是系统内建的,比如两份FAT表。

②、数据的实际有效性的判定是关键,对我们来说,硬盘无法自举、文件找不到、文件打不开等现象,其实并不与数据丢失画等号。

因为此时往往数据只是从操作系统的角度是一种逻辑丢失,而从物理扇区意义上,它仍然存在或部分存在。

最明显的就是文件删除的例子,事实上,这只是把文件首字节,改为0E而已。

而此时文件体依然存在。

③、数据损坏过程的可逆性分析:

对数据的改变无非两种,取代和变换,前者是不可逆的,而后者则是可逆的。

我们以杀毒为例,对于大多文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想的杀毒过程就是感染的逆过程。

这种分析也常见与重要信息被隐藏搬移或者被加密的情况,但分析将比较复杂。

④、数据本身是否是标准信息:

有些信息实际是通用或局部通用的,你无须考虑如何从本机抢救。

只要相同或相近的系统版本就可以了,比如BOOT区、隐含扇区、WINDOWS的DLL文件等等。

典型的例子如分区表的代码区,这是一段标准代码,事实上,它就放在你的FDISK程序里面,你可以用DEBUG把他提取出来。

⑤、数据本身是否可以由其他信息统计再生:

有些信息尽管丢失了,也没有备份。

但它实际可以从其他数据中间接求得。

最典型的就是主分区表中的分区信息,即使你把他清零也不必害怕,因为你可以从你几个分区中计算再生。

⑥、破坏的完成程度:

事实上,FDISK、FORMAT都不会彻底破坏数据,一般只有低格和扇区覆盖操作才会彻底破坏数据。

但有时,破坏过程或者误操作过程会因人工终止、死机等原因不能完成。

最明显的就是CIH病毒的例子,由于CIH是以1024字节为单位覆盖扇区,这当然是不可逆过程,于是我们最初都认为,破坏是很难恢复的,除非人工终止。

事实上,当病毒覆盖某些扇区时会与9X系统发生冲突,从而造成死机,使数据得到了保护。

1、硬件或介质问题的情况

①、硬盘坏:

硬盘自检不到的情况一般是硬件故障,又可分为主版的硬盘控制器(包括IDE口)故障和硬盘本身的故障。

如果问题在主板上,那么数据应当没有影响。

如果出在硬盘上,也不是一定不能修复。

硬盘可能的故障又可能在控制电路、电机和磁头以及盘片。

如果是控制电路的问题,一般修好它,就可以读出数据。

但如果电机、磁头和盘片故障,即使修理也要返回原厂,数据恢复基本没有可操作性。

②、软盘坏:

当软盘数据损坏时,可以有几种处理,一种是用NDD修复,他会强制读出你坏区中的东西,MOVE到空白扇区中,这就意味着如果你的磁盘很满操作是没法进行的。

你也可以用HDCOPY2.0以上版本READ软盘,他也会进行强读,使读入缓冲区的数据是完好的,你再写入一张好磁盘就可以了。

当然这些方式,要看盘坏的程度。

如果0磁道坏,数据也并非无法抢救,早先可以通过扇区读的方式,把后面的数据读出,不过一般来说,你依然可以HDCOPY来实验。

2、系统问题的情况

①、在硬盘崩溃的情况下,我们经常要和一些提示信息打交道。

我们要了解他典型提示信息的含义,注意这些原因仅仅分析逻辑损坏而不是硬盘物理坏道的情况。

提示信息

可能原因

参考处理

InvalidPartitionTable

分区信息中1BE、1CE、1DE处不符合只有一个80而其他两处为0用工具设定,操作在前面已经讲了。

ErrorLoadingOperatingSystem

主引导程序读BOOT区5次没成功。

重建BOOT区

MissingOperatingSystemDOS

引导区的55AA标记丢失

用工具设定,把前面读写主引导区程序的DX=80改为180即可

Non-SystemDiskorDiskError

BOOT区中的系统文件名与根目录中的前两个文件不同

SYS命令重新传递系统,

DiskBootFailure

读系统文件错误SYS命令重新传递系统,

InvalidDriverSpecifcationg

如果试图切换到一个确实存在的逻辑分区出现以下信息,说明主分区表的分区记录被破坏了。

根据各分区情况重建分区表,或者用自动修复工具修复。

注意分区丢失是最常见的故障之一,此时不要紧张,一般的说此时数据并没有问题,如果你不了解处理的方法。

你可以选择我前面介绍的自动修复分区工具进行处理,他们大多只改写主分区表的数据区,不会影响你的其他数据。

特别提醒大家,这些工具有的不支持8.4G硬盘,有的与BIOS对硬盘的识别有关系。

如果你在一台机器上不行,可以换台BIOS不同的机器实验一下。

Badormissingcommandinterpreter

这是说找不到COMMAND.com,或者COMMAND文件坏了。

如果你COPY过去COMMAND文件还是如此,一般来说是感染了某种病毒。

InvalidmediatypereadingdriveX,Abort,Retry,Fail?

该盘没有高级格式化,或BOOT区中I/O参数表被破坏。

这里情况较多,手工处理比较复杂,特别指出,此时DISKEDIT可能无法运行,建议用工具修复。

IncorrectDOSVersion

可能是文件版本不统一,对9X来说,有9595osr/2,98,98oem/2等版本,重新SYS时,不要弄错了。

用正确版本的启动盘重新SYS系统

另外说明一下,对于比较老的机器还有1071和notfoundrombasic、ROMBASICOK等提示,在目前机器中以消失。

另外,当代码区完全被破坏的情况下,系统关于无系统的提示是来自BIOS的,这条提示与BIOS的种类有关。

另外,FDISK/MBR对代码区的重建是我们经常采用的。

再介绍一种比较极端的情况,就是硬盘自检正常,而用软盘和硬盘都无法正

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2