当前位置: 首页 > >

硬盘数据恢复教程

发布时间:

硬盘数据恢复教程

作者:佚名

文章来源:itzero

点击数:

1048

更新时间:2005-3-9

并非本人的造诣至此,请勿联系笔者。

把握,并且不与投入时间成正比,不要寄予太大的希望。

他硬盘上做一个备份,然后修理备份。(用 ghost 不行)

的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR 区和 DATA 区。其

柱面 1 扇区,包括硬盘主引导记录 MBR(Main Boot Record)和分区表 DPT (Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及

统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以 80H 或 00H 为开始标志,以 55AAH 为结束标志,共 64 字节,位于本扇区的最末端。

作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句

导扇区,通常位于硬盘的 0 磁道 1 柱面 1 扇区(这是对于 DOS 来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区

BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个 OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的

OS 或者起源于 MSDOS 的 Win9x/Me 的 IO.SYS 和 MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB 参数块记录着本分区

、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR 由高级格式化程序产生(例如 DOS 的 Format.com)。

表,是 DOS/Win9x 系统的文件寻址系统,为了数据安全起见,FAT 一般做两个,第二 FAT 为第一 FAT 的备份, FAT 区紧接在 OBR 之后,其大小由本分区

t 的 DOS 及 Windows 采用我们所熟悉的 FAT12、FAT16 和 FAT32 格式,但除此以外并非没有其它格式的 FAT,像 Windows NT、OS/2、UNIX/Linux、

IR 紧接在第二 FAT 表之后,只有 FAT 还不能定位文件在磁盘中的位置,FAT 还必须和 DIR 配合才能准确定位文件的位置。DIR 记录着每个文件(目录)

IR 中的起始单元,结合 FAT 表就可以知道文件在磁盘的具体位置及大小了。在 DIR 区之后,才是真正意义上的数据存储区,即 DATA 区。

,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(

只是重写了 FAT 表而已,至于分区硬盘, 也只是修改了 MBR 和 OBR, 绝大部分的 DATA 区的数据并没有被改变, 这也是许多硬盘数据能够得以修复的原

DIY 老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使 MBR/FAT/DIR 全部坏了,我们也

存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……)。

:主分区、扩展分区和逻辑分区。

于硬盘的最前面一块区域中,构成逻辑 C 磁盘。在主分区中,不允许再建立其它逻辑磁盘。

成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了 64 个字节的存储空间,而每个分区的参数占据 16 个字节,故主引导扇区中总计可以存

区,则系统最多只允许 4 个逻辑磁盘。对于具体的应用,4 个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩

际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩

是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就

各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。

储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题……

括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是 0023。

然后再找到 FAT 的 0023 单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结

DIR 区中找到空区写入文件名、大小和创建时间等相应信息,然后在 Data 区找到闲置空间将文件保存,并将 Data 区的第一个簇写入 DIR 区,其余的动作

简单到只在目录区做了一点小改动——将目录区的文件的第一个字符改成了 E5 就表示将改文件删除了。

--------------------------

再建立分区和利用 Format 格式化逻辑磁盘(假设你格式化的时候并没有使用/U 这个无条件格式化参数)都没有将数据从 DATA 区直接删除,前者只是改变

有可能恢复……

,我们这里以 Win9x/DOS 的启动流程为例。

OST 是 Power On Self Test 的缩写,也就是加电自检的意思,微机执行内存 FFFF0H 处的程序(这里是一段固化的 ROM 程序),对系统的硬件(包括内存

当微机检查到硬件正常并与 CMOS 设置相符后,按照 CMOS 设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区记录(DPT)和主引导记

确读取分区记录和主引导记录后,如果主引导记录和分区表校验正确,则执行主引导记录并进一步读取 DOS 引导记录(位于每一个主分区的第一个扇区

系统的隐含文件 IO.SYS 入内存,加载基本的文件系统 FAT,这时候一般会出现 Starting Windows 9x...的标志,IO.SYS 将 MS.SYS 读入内存,并处理 Sy

文件装载完成,微机将执行系统隐含文件,并执行系统配置文件(Config.sys),加载 Config.sys 中定义的各种驱动程序。

m)。系统装载命令管理程序,以便对系统的各种操作命令进行协调管理(我们所使用的 Dir、Copy 等内部命令就是由 Command.com 提供的)。

)。微机将一步一步地执行批处理文件中的各条命令。

责将 Windows 下的各种驱动程序和启动执行文件加以执行,至此启动完毕。

址格式,位于 DBR 之后。

必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是 1 个扇区,硬盘每簇的扇区数与硬盘的总容量大

磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(



确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这

对于文件管理的重要性,所以为了安全起见,FAT 有一个备份,即在原 FAT 的后面再建一个同样的 FAT。初形成的 FAT 中所有项都标明为“未占用”,

坏簇”,以后存文件时就不会再使用这个簇了。FAT 的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。F

(即 BOOT 扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思

信息进行表示,也不真正存储文件内容。

若干个扇区合为一个簇,文件存取是以簇为单位的,哪怕这个文件只有 1 个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,每个表项占

了方便起见,以后所说的表项都是指 2 个字节的。

软盘,每次道 8 扇区 FEH 单面软盘,每磁道 8 扇区 FDH 双面软盘,每磁道 9 扇区 FCCH 单面软盘,每磁道 9 扇区 FC8H 硬盘

,因第一簇被系统占据,故此两字节为 FFFFH

,若为 FFFH 表此簇为坏的,DOS 已标记为不能用;0000H 表示此簇为空,可以用;FFF8H 表不能示该簇为文件的最后一簇;其余数字表示文件的下一

,同上。

,而应是该文件的下一个簇的簇号。.高字节在后,低字节在前是一种存储数字方式,读出时应对其进行调整。是如两字节 12H,34H,应调整为 3412H。

可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师”。

查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测 FAT 中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的 26-27 字节,如

表项中,如此直到文件结束,在最后一簇的表项里填上 FFF8H,形成单向链表。

该文件的表项第 0 个字节改为 E5H, 表此项已被删除, 并在文件分配表中把该文件占用的各簇的表项清 0, 并释放空间。 其文件的内容仍然在盘上, 并没有被

户最好不要去修改它,以免误操作带来严重的后果。

地址以下简称为?-?-?)

62

S Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从 0-1-1 开始计算)、FAT 扇区数、FAT 拷贝数、硬盘磁头总数、根目录表项最大值等

6 不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。

量变化

容量变化

组成,通常每个表项指向的簇包含 64 个扇区,即 32K 字节。

组成,通常每个表项指向的簇包含 8 个扇区,即 4K 字节。

,FAT16 为 06H,FAT32 为 0CH。

项长度(字节)-2

个表项长度

占用”标志组成:

0F

相同的拷贝:FAT1、FAT2

根目录区,又称为 ROOT 区:

2 个扇区(256 个表项)。如果支持长文件名,则每个表项

文件链接说明;后 32 个字节为文件属性说明,包括文件长

持长文件名,则每个表项为 32 个字节的属性说明。

盘的结束地址。

2

依靠工具。

一个文件都有一组 FAT 链指定其存放的簇地址。FAT 表的损坏意味着文件内容的丢失。庆幸的是 DOS 系统本身提供了两个 FAT 表,如果目前使用的 FA

第二个 FAT 表的地址也是不固定的,所以修复时必须正确查找其正确位置,一些工具软件如 NU 等本身具有这样的修复功能,使用也非常的方便。采用 D

可(不建议这样做)。如果第二个 FAT 表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用 CHKDSK 或 SC

如果是文本文件则可从中提取出完整的或部分的文件内容。

:File allocation table bad,drive A(文件分配表坏)的错误信息,导致程序不能正常运行。

:FAT1 和 FAT2。FAT1 用于日常工作,FAT2 备用。因此,在 FAT1 损坏时,可用 FAT2 表修补。

入缓冲区,用缓冲区的 FAT2 数据覆盖磁盘中的 FAT1。

行。

密 3.5"高密

则需将上述参数改为:

ysical beginning of a hard disk, editable using the Disk Editor.

(446 bytes) and four subsequent, identically structured

gnature 55AA completes a valid Master Boot Record.

1 扇区。

有效标志

64 个字节,表中可填入四个分区信息,每十六个字节为一个分区说明项,这 16 个字节含义详见表 2。

所在字节的最高二位,即柱面号为 10 位,扇区号 6 位。

:

rtition.

7 of sector)

7 of sector)

ncomplete list)

ced Unix

litDrive

INT 13 extensions)

extensions)

ons)

ing LBA-mode INT 13 extensions)

on

on

TFS volume/stripe set

dows NT)

表示为可自举分区(仅有一个),该值为 00H 表示其余分区。

2 位是分区开始的柱面的头两位。

位。

采用 12 位 FAT 格式的 DOS 分区,该值 04H 表示采用 16 位 FAT 格式的 DOS 分区,该值为 05H 表示为扩展 DOS 分区,为 06H 表示为 DOS 系统。

头 2 位为结束柱面号的前 2 位。

在 前。

节在前。

Y;



为 FAT32.

or1

C BE 1B 7C

BE 07 B1 04 8B 14 8B 07 4E AC

F2 89 46 25

C 0C 74 05

A 55 50 B4 C1 01 74

8 66 04 BF

F 03 8B 4E FE 7D 55

BE 2E 07 EB

00 5A EB

0 24 45 00

5 00 80 00

20 00 00 00

F7 01 00 00

00 55 AA

H 33 C0 8E D0 BC 00 7C FB 50 。。。主引导记录代码,表示住分区表

0)disk(0)rdisk(0)partition(0)知该分区 Boot Sector 位于:起始磁头为 0 头,起始柱面为 70D,起始扇区为 1 扇区。

(0)disk(0)rdisk(0)partition(1)活动分区指示符为 80H,表示该分区为可自举分区。系统标志为 07 表示 OS/2 HPFS, Windows NT NTFS, Advanced Unix 系统。

区。

ded partition 系统标志字节为 0F,说明是扩展分区 Extended partition (using INT 13 extensions)。从扩展分区说明项知下一个分区表位于:起始磁头为 0 头

明项数据均为 00H 没有定义。

效标志

D, head 0,sector1

0 00 00

53 00 00 00

5 53 00 00 00

00 00 00

00 55 AA

(0)disk(0)rdisk(0)partition(3)知该分区位于:起始磁头为 1 头,起始柱面为 435D,起始扇区为 1 扇区(分区表占用磁头 0)。系统标志字 0BH 表示 Windo

志字节为 05H,说明是扩展 DOS 分区。于是知下一个分区表位于:起始磁头为 0 头,起始柱面为 777D,起始扇区为 1 扇区。

有定义。

有定义。

---------------------------------------------------------------

的开关,隐含于 MS DOS 3.30,延至 MS DOS 8.0(Windows ME)。实践中,有籍以修复主引导信息,重点在主引导程序。

操作单一,仅向主引导扇区位移 0-1BDH 写入当前系统固有的主引导程序,安全可靠。

模块(分区表、检验标志),以及随后的 DOS 引导信息、文件分配表、根目录,省事许多。检出检验标志非 AA55h,写主引导程序、初始化分区表及登录

DOS 分区的方式登录分区表。分区表初始化(可能幸存的分区表被清除)的后果不难想象; 目前硬盘大都设置有其它分区,即使在高版本 DOS 环境中运作,

信息、文件分配表及根目录,高版本 FDISK /MBR 命令适用于修复仅设基本 DOS 分区的硬盘分区表及检验标志受损,或主引导信息全毁。

需查明检验标志是否 AA55h,酌情处理,切忌盲动。

必健在。

artition Information,列出分区信息,进一步证实检验标志正常; 若现 No partitition defined,检验标志每变异,而分区表或许尚健在。

如下:

isk=1~9) Logical sector=1+sectors_per_FAT(Floppydisk=10~18) Logical sector=1+sectors_per_FAT*2(Floppy disk=19~32) Logical sector=1+sectors_per_FAT*2+

ory Data area(where files and subdirectories are stored)

gical sector =0032h+ 2*sectors_per_FAT

s Copy of record Reserve sectors FAT1 FAT2 Data area(where files and all bdirectories are stored)

。换算关系为:

ter Block 里得到的。

ck)+1;

od total_heads;

total_heads);

er+sector_of_file_area_offset;

rack+sector*sector_per_track*heads;

度(字节)-2

项长度

三部分:

表,描述逻辑盘结构组成,包含隐藏扇区数目(从 0-1-1 开始计算)、FAT 扇区数、FAT 拷贝数、硬盘磁头总数、根目录表项最大值等。FAT32 系统中,

的描述区域。

BPB:

扇区地址以下简称为?-?-?)

62

2

量变化

容量变化

成,通常每个表项指向的簇包含 64 个扇区,即 32K 字节。 逻辑盘容量最大为 2047MB。

成,通常每个表项指向的簇包含 8 个扇区,即 4K 字节。逻辑盘容量最小为 512MB。

FAT16 为 06H,FAT32 为 0CH。

址格式,位于 DBR 之后。

必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是 1 个扇区,硬盘每簇的扇区数与硬盘的总容量大

磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(



确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这

对于文件管理的重要性,所以为了安全起见,FAT 有一个备份,即在原 FAT 的后面再建一个同样的 FAT。初形成的 FAT 中所有项都标明为“未占用”,

坏簇”,以后存文件时就不会再使用这个簇了。FAT 的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。F

(即 BOOT 扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思

信息进行表示,也不真正存储文件内容。

若干个扇区合为一个簇,文件存取是以簇为单位的,哪怕这个文件只有 1 个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,每个表项占

了方便起见,以后所说的表项都是指 2 个字节的。

用”标志组成:

相同的拷贝:FAT1、FAT2

软盘,每次道 8 扇区 FEH 单面软盘,每磁道 8 扇区 FDH 双面软盘,每磁道 9 扇区 FCCH 单面软盘,每磁道 9 扇区 FC8H 硬盘

,因第一簇被系统占据,故此两字节为 FFFFH

,若为 FFFH 表此簇为坏的,DOS 已标记为不能用;0000H 表示此簇为空,可以用;FFF8H 表不能示该簇为文件的最后一簇;其余数字表示文件的下一

,同上。

,而应是该文件的下一个簇的簇号。.高字节在后,低字节在前是一种存储数字方式,读出时应对其进行调整。是如两字节 12H,34H,应调整为 3412H。

可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师”。

查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测 FAT 中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的 26-27 字节,如

表项中,如此直到文件结束,在最后一簇的表项里填上 FFF8H,形成单向链表。

该文件的表项第 0 个字节改为 E5H, 表此项已被删除, 并在文件分配表中把该文件占用的各簇的表项清 0, 并释放空间。 其文件的内容仍然在盘上, 并没有被

户最好不要去修改它,以免误操作带来严重的后果。

F FF 0F 00 00

00 00

00 00 00 00

F FF 0F

FF 0F

00 00

00 00

0 00

根目录区,又称为 ROOT 区:

2 个扇区(256 个表项)。如果支持长文件名,则每个表项为 64 个字节,其中,前 32 个字节为长文件链接说明;后 32 个字节为文件属性说明,包括文件

的属性说明。

16 储存根目录并把子目录放到数据区。

时长度字节为 0,表示文件的目录项指出数据地址。

C 7C

0 00 00

DB 40

2 13 00

00 00

00 00

除,被删除文件仍旧能够找到开始簇,数据恢复就依靠这一特点。

一个扇区,直到逻辑盘的结束地址。

能从磁盘里把信息读出。

经讲完。

数据的对应关系或直接找到数据,现在已经有完善的磁盘编辑器帮助我们做到这一点,使工作大大简化了。

复被删除文件,比如 RECOVERNT,估计是依靠 Win2000 的文件使用记录。这种方法在冲启动之前恢复文件的可能性很大。

的。




友情链接: