硬盘数据恢复教程Word下载.docx
《硬盘数据恢复教程Word下载.docx》由会员分享,可在线阅读,更多相关《硬盘数据恢复教程Word下载.docx(62页珍藏版)》请在冰豆网上搜索。
![硬盘数据恢复教程Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/1/06028272-06e0-40f0-86b3-eef622a94d6f/06028272-06e0-40f0-86b3-eef622a94d6f1.gif)
称为BPB(BIOSParameterBlock)的本分区参数记录表。
其实每个逻辑分区都有一个OBR,
其参数视分区的大小、操作系统的类别而有所不同。
引导程序的主要任务是判断本分区根目
录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的Win9x/Me
的IO.SYS和MSDOS.SYS)。
如是,就把第一个文件读入内存,并把控制权交予该文件。
BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目
录大小、FAT个数、分配单元(AllocationUnit,以前也称之为簇)的大小等重要参数。
OBR
由高级格式化程序产生(例如DOS的F)。
文件分配表
FAT(FileAllocationTable)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数
据安全起见,FAT一般做两个,第二FAT为第一FAT的备份,FAT区紧接在OBR之后,其
大小由本分区的大小及文件分配单元的大小决定。
关于FAT的格式历来有很多选择,
Microsoft的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以
外并非没有其它格式的FAT,像WindowsNT、OS/2、UNIX/Linux、Novell等都有自己的文
2
件管理方式。
目录区
DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位
文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。
DIR记录着每个
文件(目录)的起始单元(这是最重要的)、文件的属性等。
定位文件位置时,操作系统根
据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。
在DIR区
之后,才是真正意义上的数据存储区,即DATA区。
数据区
DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也
只能是一些枯燥的二进制代码,没有任何意义。
在这里有一点要说明的是,我们通常所说的
格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,
只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA
区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。
但即便如此,如
MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……
需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使
MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要
找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,
那就是你没有覆盖这个文件……)。
硬盘分区方式
我们平时说到的分区概念,不外乎三种:
主分区、扩展分区和逻辑分区。
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。
在主分区中,不允许再建立其它逻辑磁盘。
扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。
由于硬盘仅仅
为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中
总计可以存储4个分区的数据。
操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是
分区,则系统最多只允许4个逻辑磁盘。
对于具体的应用,4个逻辑磁盘往往不能满足实际
需求。
为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的
指针,这种指针结构将形成一个单向链表。
这样在主引导扇区中除了主分区外,仅需要存储
一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也
就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。
无论系统中建
立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁
盘。
需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接
的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。
数据存储原理
既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍
一下数据的删除和硬盘的格式化相关问题……
文件的读取
操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件
在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。
操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件
结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直
到遇到文件结束标志。
3
文件的写入
当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时
间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR
区,其余的动作和上边的读取动作差不多。
文件的删除
Win9x的文件删除工作却是很简单的,简单到只在目录区做了一点小改动——将目录区
的文件的第一个字符改成了E5就表示将改文件删除了。
附录:
--------------------------------------------------------------------------------
Fdisk和Format的一点小说明
和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设
你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,
前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘
完全有可能恢复……
系统启动流程
各种不同的操作系统启动流程不尽相同,我们这里以Win9x/DOS的启动流程为例。
第一阶段:
系统加电自检POST过程。
POST是PowerOnSelfTest的缩写,也就是加电
自检的意思,微机执行内存FFFF0H处的程序(这里是一段固化的ROM程序),对系统的
硬件(包括内存)进行检查。
第二阶段:
读取分区记录和引导记录。
当微机检查到硬件正常并与CMOS设置相符后,
按照CMOS设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区记录(DPT)
和主引导记录(MBR)。
第三阶段:
读取DOS引导记录。
微机正确读取分区记录和主引导记录后,如果主引导记
录和分区表校验正确,则执行主引导记录并进一步读取DOS引导记录(位于每一个主分区
的第一个扇区),然后执行该DOS引导记录。
第四阶段:
装载系统隐含文件。
将DOS系统的隐含文件IO.SYS入内存,加载基本的文
件系统FAT,这时候一般会出现StartingWindows9x...的标志,IO.SYS将MS.SYS读入内存,
并处理System.dat和User.dat文件,加载磁盘压缩程序。
第五阶段:
实DOS模式配置。
系统隐含文件装载完成,微机将执行系统隐含文件,并执
行系统配置文件(Config.sys),加载Config.sys中定义的各种驱动程序。
第六阶段:
调入命令解释程序(C)。
系统装载命令管理程序,以便对系统的各种
操作命令进行协调管理(我们所使用的Dir、Copy等内部命令就是由C提供的)。
第七阶段:
执行批处理文件(Autoexec.bat)。
微机将一步一步地执行批处理文件中的各条
命令。
第八阶段:
加载W。
W负责将Windows下的各种驱动程序和启动执行文件
加以执行,至此启动完毕。
4
●硬盘数据恢复,二分区表的推算
MasterBootRecord
TheMasterBootRecordislocatedatthephysicalbeginningofaharddisk,editableusingthe
DiskEditor.Itconsistsofamasterbootstraploadercode(446bytes)andfoursubsequent,
identicallystructuredpartitionrecords.Finally,thehexadecimalsignature55AAcompletesavalid
MasterBootRecord.
硬盘的主引导记录在硬盘的0磁头0柱面1扇区。
主引导记录由三部分组成:
(1)主引导程序;
(2)四个分区表;
(3)主引导记录有效标志字。
详见表1。
[表1主引导记录结构]
位置内容
0000H-00D9H主引导记录代码区
00DAH-01BDH空闲区
01BEH-01CDH分区1结构信息
01CEH-01DDH分区2结构信息
01DEH-01EDH分区3结构信息
01EEH-01FDH分区4结构信息
01FEH-01FFH55AAH主引导记录有效标志
说明:
A,分区表自偏移1BEH处开始,分区表共64个字节,表中可填入四个分区信息,每十六
个字节为一个分区说明项,这16个字节含义详见表2。
B,必须注意:
扇区号的高二位占用柱面号所在字节的最高二位,即柱面号为10位,扇区
号6位。
Theformatofapartitionrecordisasfollows:
OffsetSizeDescription
08bitAvalueof80designatesanactivepartition.
18bitPartitionstarthead
28bitPartitionstartsector(bits0-5)
38bitPartitionstarttrack(bits8,9inbits6,7ofsector)
48bitOperatingsystemindicator
58bitPartitionendhead
5
68bitPartitionendsector(bits0-5)
78bitPartitionendtrack(bits8,9inbits6,7ofsector)
832bitSectorsprecedingpartition
C32bitLengthofpartitioninsectors
Operatingsystemindicators:
(hexadecimal,incompletelist)
00Emptypartition-tableentry
01DOSFAT12
04DOSFAT16(upto32MB)
05DOS3.3+extendedpartition
06DOS3.31+FAT16(over32MB)
07OS/2HPFS,WindowsNTNTFS,AdvancedUnix
08OS/2v1.0-1.3,AIXbootablepartition,SplitDrive
09AIXdatapartition
0AOS/2BootManager
0BWindows95+FAT32
0CWindows95+FAT32(usingLBA-modeINT13extensions)
0EDOSFAT16(over32MB,usingINT13extensions)
0FExtendedpartition(usingINT13extensions)
17HiddenNTFSpartition
1BHiddenWindows95FAT32partition
1CHiddenWindows95FAT32partition(usingLBA-modeINT13extensions)
1EHiddenLBAVFATpartition
42Dynamicdiskvolume
50OnTrackDiskManager,read-onlypartition
51OnTrackDiskManager,read/writepartition
81Linux
82LinuxSwappartition,Solaris(Unix)
83Linuxnativefilesystem(ext2fs/xiafs)
85LinuxEXT
86FAT16volume/stripeset(WindowsNT)
87HPFSfault-tolerantmirroredpartition,NTFSvolume/stripeset
BESolarisbootpartition
C0DR-DOS/NovellDOSsecuredpartition
C6CorruptedFAT16volume/stripeset(WindowsNT)
C7CorruptedNTFSvolume/stripeset
F2DOS3.3+secondarypartition
[表2分区结构信息]
偏移长度含义
6
00H1活动分区指示符,该值为80H表示为可自举分区(仅有一个),该值为00H表示
其余分区。
01H1分区起始磁头号。
02H1低6位是分区开始的扇区,高2位是分区开始的柱面的头两位。
03H1分区开始的起始柱面号的低8位。
04H1系统标志,该值为01H表示采用12位FAT格式的DOS分区,该值04H表示
采用16位FAT格式的DOS分区,该值为05H表示为扩展DOS分区,为06H
表示为DOS系统。
05H1分区终止头号
06H1低6位为分区结束的扇区号,头2位为结束柱面号的前2位。
07H1分区结束柱面号的低8位。
08H4本分区前的扇区数,低位字节在前。
0CH4本分区总的扇区数,低位字节在前。
重要公式:
02H为X,03H为Y。
柱面=(X>
>
6)*16^2+Y;
以我的硬盘为例:
有九个可用分区,二个不可用分区;
两个PrimaryNTFS分区,第二个为active;
七个Extened分区,第五个为NTFS其他为FAT32.
.
主分区表数据:
位置cylinder0,head0,sector1
偏
移
0123456789ABCDEF
033C08ED0BC007CFB5007501FFCBE1B7C
1BF1B065057B9E501F3A4CBBEBE07B104
2382C7C09751583C610E2F5CD188B148B
3EE83C610497416382C74F6BE10074EAC
43C0074FABB0700B40ECD10EBF2894625
5968A4604B4063C0E7411B40B3C0C7405
63AC4752B40C64625067524BBAA5550B4
741CD1358721681FB55AA7510F6C10174
80B8AE0885624C706A106EB1E886604BF
90A00B801028BDC33C983FF057F038B4E
A25034E02CD137229BE5907813EFE7D55
BAA745A83EF057FDA85F67583BE2E07EB
C8A9891529903460813560AE812005AEB
DD54F74E433C0CD13EBB8000080244500
E5633F6565652500653
1B……0000
1C014607FE7F1EC6281100993135008000
1D413007FE7FB230854A00C31C20000000
1E41B30FFEFFFFF3A16A0008FEF7010000
1F000000000000000000000000000055AA
7
主分区表分析:
Masterbootstraploadercode
0000H-00D9H
33C08ED0BC007CFB50。
。
主引导记录代码,表示住分区表
01BEH-01CDH分区1结构信息
multi(0)disk(0)rdisk(0)partition(0)
知该分区BootSector位于:
起始磁
头为0头,起始柱面为70D,起始
扇区为1扇区。
01CEH-01DDH分区2结构信息
multi(0)disk(0)rdisk(0)partition
(1)
活动分区指示符为80H,表示该
分区为可自举分区。
系统标志为07表示OS/2HPFS,
WindowsNTNTFS,AdvancedUnix
系统。
起始磁头为0头,起始柱面为
304D,起始扇区为1扇区。
01DEH-01EDH分区3结构信息
Extendedpartition
系统标志字节为0F,说明是扩展
分区Extendedpartition(usingINT
13extensions)。
从扩展分区说明项知下一个分
区表位于:
起始磁头为0头,起始
柱面为435D,起始扇区为1扇区。
8
01EEH-01FDH分区4结构信息
分区说明项数据均为00H没有定
义。
01FEH-01FFH55AAH主引导
记录有效标志
扩展分区一分区表数据:
位置cylinder435D,head0,sector1
000000000000000000000000000000000
1B0000
1C41B30BFEFF083F00000097D553000000
1DC10905FEFFFFD6D55300D6D553000000
1E00000000000000000000000000000000
扩展分区表分析:
multi(0)disk(0)rdisk(0)partition(3)
知该分区位于:
起始磁头为1头,
起始柱面为435D,起始扇区为1
扇区(分区表占用磁头0)。
系统标志字0BH表示Windows
95+FAT32
9
系统标志字节为05H,说明是扩
展DOS分区。
于是知下一个分区
表位于:
起始磁头为0头,起始柱
面为777D,起始扇区为1扇区。
PartitionTableEntry#3数据均为00H没有定义。
PartitionTableEntry#4数据均为00H没有定义。
其他扩展分区同理。
-----------------------------------------------------