数据恢复基本知识讲义.docx

上传人:b****8 文档编号:10331928 上传时间:2023-02-10 格式:DOCX 页数:29 大小:507.67KB
下载 相关 举报
数据恢复基本知识讲义.docx_第1页
第1页 / 共29页
数据恢复基本知识讲义.docx_第2页
第2页 / 共29页
数据恢复基本知识讲义.docx_第3页
第3页 / 共29页
数据恢复基本知识讲义.docx_第4页
第4页 / 共29页
数据恢复基本知识讲义.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

数据恢复基本知识讲义.docx

《数据恢复基本知识讲义.docx》由会员分享,可在线阅读,更多相关《数据恢复基本知识讲义.docx(29页珍藏版)》请在冰豆网上搜索。

数据恢复基本知识讲义.docx

数据恢复基本知识讲义

数据恢复的基本知识

一、基本概念

1、数据

这里我们所说的数据,只指计算机数据,后面不再专门指出。

首先,“数据”是一个广义的概念,不仅包括计算机文件系统或数据库系统中存储的各种数据、正文、图形、图像、声音等形式的多媒体数据文件、软件或各种文档资料,也包括存放或管理这些信息的硬件信息,如计算机硬件及其网络地址、网络结构、网络服务等。

尽管在许多文献中都大量引用“数据”与“信息”两个术语,但却没有一个被公认的数据与信息的定义。

本书中对“数据”与“信息”不加以区分,视为同义。

2、数据恢复

那么什么是数据恢复呢?

简单地说,数据恢复就是把遭受破坏、或由硬件缺陷导致不可访问或不可获得、或由于误操作等各种原因导致丢失的数据还原成正常数据,即恢复至它本来的“面目”。

数据恢复不仅对已丢失的文件进行恢复,还可以恢复物理损伤的磁盘数据,也可以恢复不同操作系统的数据。

二、硬盘结构

1、硬盘的物理结构

图1

2、硬盘的数据组织

1)盘片:

硬盘的每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都利用上,即都装上磁头可以存储数据,成为有效盘片,也有极个别的硬盘其盘面数为单数。

每一个这样的有效盘面都有一个盘面号,按顺序从上而下自“0”开始依次编号。

在硬盘系统中,盘面号又叫磁头号,就是因为每一个有效盘面都有一个对应的读写磁头。

硬盘的盘片组在2~14片不等,通常有2~3个盘片,故盘面号(磁头号)为0~3或0~5。

2)磁道:

磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。

磁道从外向内自0开始顺序编号。

硬盘的每一个盘面有300~1024个磁道,新式大容量硬盘每面的磁道数更多,如图2-24所示。

信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧,由于径向长度不一样,这些圆弧的角速度一样,而线速度不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈划过的圆弧长度大。

每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据是作为一个单元同时读出或写入的。

一个标准的3.5英寸硬盘盘面通常有几百到几千条磁道。

这些磁道是看不见的,它们只是盘面上以特殊形式磁化了的一些磁化区。

这些磁道是在磁盘格式化时就规划好了的。

3)柱面:

所有盘面上的同一磁道构成一个圆柱,通常称作柱面(Cylinder),每个圆柱上的磁头,由上而下从“0”开始编号。

数据的读写是按柱面进行的,即磁头在读写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读写完毕后才移动磁头转移到下一柱面,即数据的读/写是按柱面来进行的,而不是按盘面来进行的。

也就是说,一个磁道已写满数据,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个柱面。

4)扇区:

操作系统是以扇区(Sector)形式将信息存储在硬盘上的。

每个扇区包括512字节的数据和一些其他信息。

一个扇区有两个主要部分:

即存储数据地点的标识符和存储数据的数据段。

三、寻址方式

1、C/H/S寻址方式

C:

柱面号(最大10位);H:

磁头号(最大6位);S:

扇区号(最大6位),其中扇区数从1编号,其它从0编号,用三个参数唯一定位。

2、LBA寻址方式

LBA寻址方式下从0开始给扇区线性编号,一直编到整块硬盘的最后一个扇区。

显然线性地址是物理扇区的逻辑地址。

3、C/H/S和LBA之间的转换

1)读写规则

要了解从C/H/S到LBA线性地址的转换规则。

由于系统在写入数据时是按照从柱面到柱面的方式,在上一个柱面写满数据后才移动磁头到下一个柱面,并从下一柱面的第一个磁头的第一个扇区开始写入,从而使磁盘性能最优,所以,在对物理扇区进行线性编址时,也按照这种方式进行。

即把第一柱面(0柱)第一磁头(0面)的第一扇区(1扇区)编为逻辑“0”扇区,把第一柱面(0柱)第一磁头(0面)的第二扇区(2扇区)编为逻辑“1”扇区,直至第一柱面(0柱)第一磁头(0面)的第63扇区(63扇区)编为逻辑“62”扇区,然后转到第一柱面(0柱)第二磁头(1面)的第一扇区(1扇区),接着上一面编为逻辑“63”扇区,0柱面所有扇区编号完毕后转到1柱面的0磁头1扇区,依次往下进行,直至把所有的扇区都编上号。

2)从C/H/S到LBA

通过对编号规则的介绍,很容易看出C/H/S与LBA地址的对应关系。

用C表示当前柱面号,H表示当前磁头号,S表示当前扇区号,CS表示起始柱面号,HS表示起始磁头号,SS表示起始扇区号,PS表示每磁道有多少个扇区,PH表示每柱面有多少个磁道,则有:

LBA=(C–CS)﹡PH﹡PS+(H–HS)﹡PS+(S–SS)  

(1)      

一般情况下,CS=0,HS=0,SS=1,PS=63,PH=255,LBA计算如下:

C/H/S=0/0/1,代入

(1)式中可得LBA=0

C/H/S=0/0/63,代入

(1)式中可得LBA=62

C/H/S=0/1/1,代入

(1)式中可得LBA=63

C/H/S=220/156/18,代入

(1)式中可得LBA=3544145

3)从LBA到C/H/S

先介绍两种运算DIV和MOD(这里指对正整数的操作)。

DIV称做整除运算,即被除数除以除数所得商的整数部分。

比如,5DIV2=2,33DIV5=6;MOD运算则是取商的余数。

比如,5MOD2=1,33MOD5=3。

DIV和MOD是一对搭档,一个取整数部分,一个取余数部分。

各变量仍按上述假设进行,则有:

C=LBA DIV(PH﹡PS)+CS

H=(LBADIVPS)MODPH +HS  

(2)

S=LBAMODPS +SS

如果不运用MOD运算符,只运用DIV运算符,也可按式(3)进行转换,两者的结果相同,只是运算的复杂度不同。

C=LBA DIV(PH﹡PS)+CS

H=LBADIVPS–(C–CS)﹡PH+HS  (3)

S=LBA–(C–CS)﹡PH﹡PS–(H–HS)﹡PS+SS

按照这个规律,则有:

LBA=0,相应地,C/H/S=0/0/1

LBA=62,相应地,C/H/S=0/0/63

LBA=63,相应地,C/H/S=0/1/1

LBA=3544145,相应地,C/H/S=220/156/18

四、引导扇区(MBR)

MBR,即主引导记录区,位于整个硬盘的0磁道0柱面1扇区。

在总共512字节的主引导扇区中,MBR的引导程序占用其中的前446个字节(偏移0~偏移1BDH),随后的64个字节(偏移1BEH~偏移1FDH)为DPT(DiskPartitionTable,硬盘分区表),最后的两个字节“55 AA”(偏移1FEH~偏移1FFH)是分区有效结束标志。

由它们共同构成硬盘主引导记录,也称主引导扇区。

图2(MBR)

其中,硬盘分区表中的每16个字节被称为分区表项,一个分区表项管理一个分区。

在分区表项内:

第1个字节为80的表示被激活,为00的表示未被激活。

第2个字节为C/H/S模式下起始磁头号。

第3个字节为C/H/S模式下起始扇区号。

第4个字节为C/H/S模式下起始柱面号。

第6个字节为C/H/S模式下结束磁头号。

第7个字节为C/H/S模式下结束扇区号。

第8个字节为C/H/S模式下结束柱面号。

其中,第3、4个字节结合,扇区号为6位,柱面号为10位(占用第3个字节的高两位)。

第5个字节为分区类型:

若值为01表示是FAT12格式;若值为04表示是小于32M的FAT16格式;若值为06表示是大于32M的FAT16格式;若值为0B或0C表示是FAT32格式;若值为07表示是NTFS格式;若此分区表项为扩展分区,则第5个字节的值应为05或0F,05为小于8.4G,0F为大于8.4G。

从第9个字节开始为LBA寻址方式下的管理。

第9~12字节为当前分区的起始扇区号。

第12~16字节为当前分区的大小(分区所包含的扇区数)。

五、扩展分区(EBR)

如何在一个硬盘中来划分扩展分区呢?

1)在第一个扇区(引导扇区)中的第一个分区表项上填写主分区信息。

2)在第二个分区表项上的第5个字节上填写05或0F,则证明此分区为一个扩展分区,此时这个分区为主扩展分区。

如果在这个扩展分区上在划分扩展分区的话,则找到这个扩展分区的第一个扇区(EBR),重复上述两个步骤,所得到的是次扩展分区,以此类推。

图3(EBR)

下面是一块硬盘的数据组织结构:

图4

六、操作系统引导记录区(DBR)

进入一个分区的内部,第一个扇区就是DBR(DOSBootRecord)。

它包括一个引导程序和一个被称为BPB(BIOSParameterBlock)的本分区参数记录表。

引导程序的主要任务是,当MBR将系统控制权交给它时,判断本分区根目录前两个文件是不是操作系统的引导文件。

BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元大小等重要参数。

第1、2字节如果为EB58则表示跳转58个字节,则跳到5A。

从5A开始到55 AA之间为引导数据。

从3到A为厂家和格式化版本。

从B到59为BPB参数:

B~C为每扇区的字节数。

D为每簇的扇区数。

E~F为DBR所保留的扇区数。

10为FAT表的个数。

15为媒体描述符(F8为硬盘)。

18和19为每磁道扇区数。

20~23为记录本分区的大小。

24~27记录FAT表的大小(可确定根目录的位置)。

2C~2F记录根目录的起始簇号。

30为文件信息系统所在的扇区。

32为DBR的备份的扇区号。

33~34保留。

40为BIOS下记录媒体方式(80表示硬盘)。

42为扩展引导标志(是固定值28或29)。

52~56为版本号。

图5(C盘的DBR,FAT格式)

图5为用WINHEX打开整个硬盘后通过MBR经过扇区计算后得到的C盘DBR地址。

图6(C盘的DBR,FAT格式)

图6为用WINHEX直接打开C盘后显示的DBR,两个图是一样。

七、FAT文件系统

1、格式化

1)低级格式化

①测试硬盘介质;

②为硬盘划分磁道;

③为硬盘的每个磁道按指定的交叉因子间隔安排扇区;

④将扇区ID放置到每个磁道上,完成对扇区的设置;

⑤对磁盘表面进行测试,对已损坏的磁道和扇区做“坏”标记;

⑥给硬盘中的每个扇区写入某一ASCII码字符。

2)高级格式化

①从各个逻辑盘指定的柱面开始,对扇区进行逻辑编号(分区内的编号)。

②在基本分区上建立DOS引导记录(DBR),若命令中带有参数“/S”则装入DOS的三个系统文件。

③在各个逻辑盘建立文件分配表(FAT)。

④建立根目录对应的文件目录表(FDT)及数据区。

对于FAT16和FAT32文件系统(NTFS采用不同的文件管理技术,另做介绍),硬盘上的数据按照其不同的特点和作用大致可分为5部分:

MBR区、DBR区、FAT区、DIR区和DATA区。

其中,MBR由分区软件创建,而DBR区、FAT区、DIR区和DATA区由高级格式化程序创建。

文件系统写入数据时只是改写相应的FAT区、DIR区和DATA区。

2、FAT32文件系统

1)FAT32文件系统将逻辑盘的空间划分为三个部分,依次是引导区(BOOT区)、文件分配表区(FAT区)和数据区(DATA区)。

引导区和文件分配表区又合称为系统区。

2)引导区从第一扇区开始,使用三个扇区(实际只使用了第一个扇区,但第二和第三个扇区也写入了“55AA”标志),保存有该逻辑盘每扇区字节数,每簇对应扇区数等重要参数和引导记录。

之后还留有若干个保留扇区,两者共占用32个扇区。

而FATl6文件系统的引导区一般只占用一个扇区,没有保留扇区。

3)文件分配表区保存有两个相同的文件分配表,因为文件所占用的存储空间(簇链)及空闲空间的管理都通过FAT来实现,FAT是如此的重要,所以系统保存两个以便第一个损坏时,还有第二个备用。

文件系统对数据区的存储空间是按簇进行划分和管理的,簇是空间分配和回收的基本单位,即一个文件总是占用若干个整数簇,文件所使用的最后一簇剩余的空间不再使用。

4)FAT32系统一簇对应8个逻辑相邻的扇区,理论上,这种用法所能管理的逻辑盘容量上限为16TB(16384GB),容量大于16TB时,可以用一簇对应16个扇区,依此类推。

但是,对于容量小于512MB的盘,采用FAT32虽然一簇为8个扇区,比使用FATl6一簇16个扇区,簇有所减小,但FAT32的FAT表较大,占用空间较多,总数据区被减少,两者相抵,实际并不能增加有效存储空间,所以微软建议对小于512MB的逻辑盘不宜使用FAT32。

5)根目录区(ROOT区)不再是固定区域、固定大小,可看做是数据区的一部分。

因为根目录已改为根目录文件,采用与子目录文件相同的管理方式,一般情况下从第二簇开始使用,大小视需要增加,因此根目录下的文件数目不再受最多512个的限制。

FATl6文件系统的根目录区(ROOT区)是固定区域、固定大小,占用FAT区之后紧接着的32个扇区,最多保存512个目录项,是系统区的一部分。

6)目录区中的文件目录项变化较多。

一个目录项仍占用32字节,可以是文件目录项、子目录项、卷标项(仅根目录有)、已删除目录项、长文件名目录项等。

目录项中原来在DOS下保留未用的10个字节都有了新的定义,全部32个字节的定义如下。

第0~7字节,文件名。

第8~10字节,文件扩展名。

第11字节,文件属性,按二进制位定义,最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、卷标位、子目录位、归档位,当只读位、隐藏位、系统位、卷标位全为1,其他位全为0,即11字节为“0FH”时表示该项为长文件名记录项。

第12~13字节,仅长文件名目录项有效,用来存储其对应的短文件名目录项的文件名字节校验和。

第13~15字节,24位二进制文件建立时间,其中高5位为小时,次6位为分钟,再次5位的倍数为秒,最后8位为单位精确到10毫秒的创建秒数。

第16~17字节,16位二进制文件建立日期,其中高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。

第18~19字节,16位二进制文件最新访问日期,定义同16~17字节。

第20~21字节,起始簇号的高16位。

第22~23字节,16位二进制文件最新修改时间,其中高5位为小时,次6位为分钟,后5位的倍数为秒数。

第24~25字节,16位二进制文件最新修改日期,定义同16~17字节。

第26~27字节,起始簇号的低16位。

第28~31字节,32位文件字节长度。

其中12~19字节为以后陆续定义。

所有字节的意义如下:

图7

下面图8是文件目录项的起始扇区,也是DATA区的起始位置,它的寻找方式是:

先通过MBR中的分区表项中的第9~12字节的值确定DBR的位置(本案例值为0000003F,换算成十进制为63)。

然后跳到第63扇区找到DBR,先看第10个字节的值(本案例值为02,说明有两个FAT表),再看第E~F字节的值(其值为DBR的保留扇区数,此案例值为0026,换算成十进制为38),再看第24~27字节的值(其值为记录FAT表的大小,此案例值为0000270D,换算成十进制为9997)。

这样,DATA区的起始位置是:

MBR的保留扇区数+DBR的保留扇区数+FAT表的大小×2=63+38+9997×2=20095,因此,DATA区的起始位置是第20095扇区。

图8(FDT)

下面图9是FAT表的起始位置:

图9(FAT)

下面图10是FAT表中每个簇号可取的表项值及其含义:

图10

下面图11展示了各个区域的逻辑关系:

图11

八、NTFS文件系统

NTFS是在1993年随着WindowsNT的第一个版本推出而面世的,是一个性能优良的文件系统。

NTFS基于可恢复文件结构而设计,它可使用户数据文件不会有丢失或毁坏的危险,适用于一些要求安全性高、而且在磁盘上存储远远大于FAT文件系统所能处理的巨型文件等场合。

与FAT相同,NTFS也使用“簇”作为最小的分配单位。

簇的大小,也称为簇因子,由NTFS格式化程序确定。

NTFS支持的簇大小为512,1024,2048和4096个字节。

NTFS只与簇有关,与物理扇区的大小无关。

1、NTFS中的DBR

第B~C字节:

每扇区字节数。

第D字节:

每簇占几个扇区。

第24~27字节:

固定值80008000。

第28~2F字节:

分区大小。

第30~37字节:

$MFT文件起始簇号。

第38~3F字节:

镜像$MFT文件起始簇号。

说明:

DBR的备份不再这个分区内,格式化时留一个扇区备份。

图12(D盘的DBR,NTFS格式)

 

2、$MFT文件

在NTFS中,磁盘上的任何事物都为文件。

在文件中存储一切使得文件系统很容易定位和维护数据。

文件通过主文件表(MFT)来确定其在磁盘上的存储位置。

主文件表是一个与文件相对应的数据库,有一系列文件记录组成——卷中每一个文件都有一个文件记录(对于大型文件还有可能多个记录与之相对应)。

主文件表自身也有它自己的文件记录。

MFT中的文件记录大小一般是固定的,是1KB。

文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号。

MFT仅供系统本身组织、架构文件系统使用,这在NTFS中成为元数据(Matadata,使存储在卷上支持文件系统格式管理的数据。

它不能被应用程序访问,只能为系统提供服务)。

其中最基本的前16个记录是操作系统使用的非常重要的元数据文件。

这些元数据文件的名字都以“$”开始,所以是隐藏文件。

序号

元文件

功能

0

$MFT

主文件表本身

1

$MFTMirr

主文件表的部分镜像

2

$LogFile

日志文件

3

$Volume

卷文件

4

$AttrDef

属性定义列表

5

$Root

根目录

6

$Bitmap

位图文件

7

$Boot

引导文件

8

$BadClus

坏簇文件

9

$Secure

安全文件

10

$UpCase

大写文件

11

$Extendmetadatadirectory

扩展元数据目录

12

$Extend\$Reparse

重解析点文件

13

$Extend\$UsnJrnl

变更日志文件

14

$Extend\$Quota

配额管理文件

15

$Extend\$ObjId

对象ID文件

16~23

 

保留

23+

 

用户文件和目录

 

 

 

我们先把图12中第30~37字节的值(00000000000C0000)换算成十进制的值为786432,因为是簇号所以要乘以8,786432×8=6291456,跳到6291456扇区,这是$MFT文件的起始扇区。

图13(MFT)

图14(MFT续)

1)头四个字节46494C45(固定)为一个文件记录的起始标志。

一个文件记录管理一个文件,占用1k空间(2个扇区)。

2)第14~15个字节记录第1个属性起始的偏移(位置),属性前面为文件记录头。

3)在一个属性内部

第1~4个字节:

属性的ID,如果

ID=10为标准信息属性

=30为文件名属性

=80为数据属性

=B0为位图属性

4)数据属性

第17~24个字节:

起始VCN(虚拟簇号)。

第33~34个字节:

RUNlist起始位置。

(DATARUN:

连续簇)

第41~48个字节:

文件属性体的分配大小。

第49~56个字节:

文件属性体的实际大小(字节数)。

第57~64个字节:

文件属性体的初始大小。

对RUNList的说明:

①在RUNList的起始位置,第1个字节高位和地位相加,如第1个字节为11则后面连续2位为1个RUN。

第2个字节为文件所占连续簇的个数。

第3个字节为文件的起始簇号。

②如第1个字节为31则后面连续4位为1个RUN。

第2个字节为文件所占连续簇的个数。

第3~5个字节为文件的起始簇号。

③再往后如果是00,则证明此文件为1个RUN,不是00接下来为第2个RUN…

 

附录:

NTFS常用属性表

文件记录可能的属性

类型

操作系统

名称

0x10

 

标准信息

0x20

 

属性列表

0x30

 

文件名

0x40

NT

卷版本

0x40

2K

对象ID

0x50

 

安全描述符

0x60

 

卷名

0x70

 

卷信息

0x80

 

数据

0x90

 

索引根

0xA0

 

索引分配

0xB0

 

位图

0xC0

NT

符号连接

0xC0

2K

重解析点

0xD0

 

扩展信息

0xE0

 

扩展

0xF0

NT

特权设置

0x100

2K

日志流

 

 

 

MFT文件记录头部结构布局

偏移

长度

描述

0X0

4

固定值,一定是“FILE”

0X4

2

更新序列号的偏移

0X6

2

更新序列号与更新数组以字为单位大小(S)

0X8

8

日志文件序列号(每次记录被修改,都将导致该序列号加1)

0X10

2

序列号(用于记录本文件记录被重复使用的次数,每次文件删除时加1,跳过0值,如果为0,则保持为0)

0X12

2

硬连接数,只出现在基本文件记录中,目录所含项数要使用到它

0X14

2

第一个属性流的偏移地址

0X16

2

标志字节,1表示记录使用中,2表示该记录为目录

0X18

4

文件记录实际大小(填充到8字节,即以8字节为边界)

0X1C

4

文件记录分配大小(填充到8字节,即以8字节为边界)

0X20

8

所对应的基本文件记录的文件参考号(扩展文件记录中使用,基本文件记录中为0,在基本文件记录的属性列表0X20属性存储中扩展文件记录的相关信息)

0X28

2

下一个自由ID号,当增加新的属性时,将该值分配给新属性,然后该值增加,如果MFT记录重新使用,则将它置0,第一个实例总是0

0X2A

2

边界,WINDOWSXP中使用,也就是本记录使用的两个扇区的最后两个字节的值

0X2c

4

WINDOWSXP中使用,本MFT记录号

 

2

更新序列号

 

2S-2

更新序列数组

 

 

 

标准属性的属性头结构

偏移

大小

描述

0x00

4

0X10

属性类型(10,标准属性)

0x04

4

0X60

总长度(包括头部本身)

0x08

1

0x00

非常驻标志(1表示非常驻)

0x09

1

0x00

属性名的名称长度

0x0A

2

0x18

属性名的名称偏移

0x0C

2

0x00

标志(似乎已经不再使用,统一放在文件属性中)

0x0E

2

 

属性ID(此处的属性ID不是指与0X10同级别的属性,应该是指下一级属性,如多数据流,每个数据流属性都有一个属性ID,但都是数据流属性0X80)

0x10

4

L

属性体长度(L)

0x14

2

0x18

属性内容起始偏移

0x16

1

 

索引标志

0x17

1

0x00

填充

0x18

L

 

从此处开始,共L字节为属性

 

 

 

 

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

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1