磁盘数据结构笔记Word文档下载推荐.docx

上传人:b****5 文档编号:20609605 上传时间:2023-01-24 格式:DOCX 页数:14 大小:32.91KB
下载 相关 举报
磁盘数据结构笔记Word文档下载推荐.docx_第1页
第1页 / 共14页
磁盘数据结构笔记Word文档下载推荐.docx_第2页
第2页 / 共14页
磁盘数据结构笔记Word文档下载推荐.docx_第3页
第3页 / 共14页
磁盘数据结构笔记Word文档下载推荐.docx_第4页
第4页 / 共14页
磁盘数据结构笔记Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

磁盘数据结构笔记Word文档下载推荐.docx

《磁盘数据结构笔记Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《磁盘数据结构笔记Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

磁盘数据结构笔记Word文档下载推荐.docx

在MBR里放不多于三个主分区(通常一个),剩下的分区则由EBR扩展分区引导记录(与MBR结构相像的分区结构)里说明。

一个EBR不够用时,可以增加另一个EBR,如此像一根根链条一样地接下去。

5、DBR(DOSBootRecord),就是每个逻辑盘的最前的一个扇区里,用于引导和加载相应文件管理系统的一些系统代码。

也称作操作系统引导扇区(OBR)

MBR:

主引导记录(CHS:

0柱0磁头1扇区)

00010203040506070809ABCDEF

EB

5E

00

02

3F

FF

80

……………………………………………………………………………………………………………………………………………………………………………

46

42

01

07

FE

55

AA

分区表:

扇区倒数第五行,倒数第二个字节开始,64个字节

引导代码446字节(白字为PE启动标志):

分区表64个字节:

结束标志55AA

1

2

分区引导标志

起始

磁头号

3

4

5

6

7

8

9

10

11

12

13

14

15

16

扇区

柱面号

分区

类型符

结束

本分区之前使用的扇区数

本分区的总扇区数

引导标志:

80H表示活动分区;

00H表示非活动分区。

分区类型符:

00H表示该分区未用;

06H——FAT16基本分区;

05H——扩展分区;

0FH——(LBA模式)扩展分区

07H——NTFS分区;

83H—— 

Linux分区;

0BH——FAT32基本分区;

0CH——(LBA模式)FAT32分区

扇区数:

要倒过来计算(如分区表上3F000000,实际计算时为0000003F,转换成10进制63)

FAT32分区结构

隐藏扇区

(不在分区总数内)

保留扇区(DBR中0E-0F字节)

FAT1

FAT2

根目录FDT

数据区

其他

DBR

1-5扇区

DBR副本

其余

DBR24-27字节

紧跟着FAT2

物理0扇区

逻辑0扇区

逻辑6扇区

FAT32以“F8FFFF0F”开始,可搜索计算保留扇区及FAT扇区数

可通过搜索根目录下文件或文件夹名,字符选ASCII/Codepage

A

B

C

D

E

F

58

90

OEMID

每扇区字节数

每簇扇区数

保留扇区

FAT数

根目录项数

小扇区数

介质F8

总为0

每磁道扇区数

磁头数

当前分区前面的隐含扇区

20

分区大小扇区数

每FAT扇区数

扩展标志

系统版本

根目录在DATA区起始簇号

30

DBR备份扇区

保留

40

标签

分区序号

卷标

50

FAT32

引导程序开始

……

………………………………………………………………………………………………………………………………………………………………

1F0

JUMP指令及OEMID:

BPB(BIOSParameterBlock,BIOS参数块):

引导程序:

MagicNumber(结束标志字)

重建FAT32的DBR需要这么几个参数:

保留扇区数、FAT表个数(通常为2)、每FAT扇区数、根目录簇号(通常为2号簇)、每簇扇区数、分区前隐含扇区数及分区大小扇区数(这两项可在该分区的分区表项中找到)

步骤1.通过搜索位于扇区偏移0字节处的"

F8FFFF"

寻找FAT表..进而确定文件系统类型(FAT16/32)..

步骤2.寻找根目录,来计算出FAT的大小(FAT1被破坏可用此方法)..及保留扇区数..

步骤3.计算簇大小..利用两个子目录的起始扇区号差和他们的簇号差..就可以得到簇的大小..

每簇扇区数=(分区大小扇区数-保留扇区-FAT扇区数×

FAT表数)/(FAT扇区数×

512字节/4)

步骤4.从分区表项得到隐含扇区数与分区大小.

文件系统扇区:

DBR后面一个扇区

52

61

41

1E0

72

空闲簇数

下一个空闲簇簇号

FAT表项:

F8

F0

2号FAT项

3号FAT项

4号FAT项

6号FAT项

7号FAT项

1、FAT表项由4个字节构成,从0开始编号,每个表项映射1个簇(编号即是簇号),0号1号表项系统占用,用户数据从2号表项开始;

2、如果文件占用多个簇,则第一个表项记录下一个表项的编号(即簇号),若文件结束了“0FFFFFFF”表示,“00000000”表示对应簇未使用;

3、定位FAT:

MBR分区表得到分区的起始扇区;

分区的DBR的BPB参数得到保留扇区(偏移0E-0F)、FAT表个数(偏移10)、FAT表大小(偏移24-27);

FAT1=分区起始扇区+DBR保留扇区,FAT2=FAT1+FAT表大小

4、也可搜索0号表项值“F8FFFF0F”定位FAT扇区

数据区:

由根目录+子目录+文件内容

5、数据区以簇为单位存储,根目录一般在2号簇,定位根目录=数据区起始扇区+每簇扇区数*2

6、根目录下的文件和目录都放在根目录区中,子目录下的文件和目录都放在子目录区中;

7、目录项分四类:

卷标目录项,“.”和“..”目录项,短文件目录项(8.3格式),长文件目录项

8、每个目录项占32个字节,记录着一个目录或文件(也可能多个目录项记录一个文件或目录);

文件主名

扩展名

属性

创建时分秒

创建年月日

访问年月日

起始簇号高位

修改时分秒

修改年月日

起始簇号低位

文件大小(字节)

时分秒和年月日的算法:

十进制值=时

十进制值=分

十进制值*2=秒

十进制值+1980=年

十进制值=月

十进制值=日

文件属性字节:

00-读写01-只读02-隐藏04-系统08-卷标10-子目录20-存档

NTFS分区结构

(不在扇区总数内)

元文件$BOOT

元文件$MFTMirr

根目录

元文件$FMT

剩余扇区

备份DBR

启动代码

$MFT备份,仅4条MFT记录

INDX

所有文件FMT记录,FMT占2扇区

BOOT占2簇

XP:

NTLDR

Win7:

bootmgr

占1簇

4E

54

53

NTFS未使用为0

隐含扇区数

分区扇区总数

$MFT的起始簇号(LCN)

$MFTMirr的起始簇号(LCN)

每MFT记录的大小(簇数)

每索引的大小(簇数)

检验和

…………………………………………………………………………………………………………………………………………………………………

重建NTFS的DBR需要的参数:

簇大小、隐含扇区数、分区扇区数、$MFT起始簇号、$MFTMirr起始簇号

步骤1.通过搜索$MFTMirr,利用80属性的起始VCN及分配大小来计算出簇大小(每簇的扇区数=$MFT分配大小÷

所占簇数÷

512)

步骤2.通过分区表得到隐含扇区数...分区大小(MBR表分区大小=DBR分区大小+1)

步骤3.通过$MFTMirr中的$MFT..Runlist得出$MFT的起始簇号

步骤4.通过$MFTMirr中的$MFTMirr..Runlist得出$MFTMirr的起始簇号

步骤5.如果分区表破坏,可以通过查找元文件$Bitmap,根据$Bitmap所占空间计算总扇区数(NTFS分区所占扇区=$Bitmap文件大小×

8位/字节×

每簇扇区数);

通过$MFTMirr所在扇区、对应簇号,计算出DBR(逻辑0簇)所在扇区(也就是隐藏扇区数)。

关于MFT的重点概念:

1、NTFS文件系统用文件来记录所有信息,文件由属性组成,对应一条MFT记录(文件记录块),一个文件记录块固定大小为1K,占两个扇区;

所有文件的MFT记录都有一个文件来管理(就是$MFT),也就是0号MFT记录所指向的文件。

2、元数据文件:

记录一些非常重要的文件系统数据,包括用于文件定位和恢复的数据结构、引导程序数据以及整个卷的分配位图等信息。

元文件不能直接访问的,MFT将开头的16个文件记录块保留用于这些元数据文件。

3、每个文件都有一条MFT记录,MFT记录由记录头和属性组成,一个文件可以有多个属性(属性头+属性),属性分常驻属性(ResidentAttr)和非常驻属性(NoResidentAttr);

当文件的属性内容>

700字节时,使用非常驻属性,将属性内容外挂到磁盘的其他位置,这些位置由数据运行runs片来描述。

4、不同属性相同的地方在于属性头,即要么常驻属性头要么非常驻属性头,不同属性的属性内容各不相同,在磁盘上的分布结构也不同,作用也不同。

MFT记录头

FILE

更新序列号偏移

固定列表大小

日志文件序列号LSN

序列号SN

硬连接数

第一个属性偏移

标志字节

文件记录实时大小(字节)

文件记录分配大小(字节)

基本文件记录中的文件索引号

下一个自由ID

0000

本MFT记录号

边界

MFT的使用标记

MFT30文件属性(属性头+属性体,6.5行)

属性长度(包含本头部)

属性标志

属性名长度

属性名偏移

标志

属性ID标志

属性体大小

属性头大小

索引

父目录记录号

序列号

文件创建时间

文件修改时间

MFT更改时间

最后一次访问时间

文件分配大小

文件实际大小

文件标志

用于EAS和重解析

60

文件名长度

命名空间

以Unicode方式标识的文件名

MFT80数据流属性(目录的话A0)

80H 

属性 

$DATA 

容纳文件数据(未命名数据流),文件的大小一般指是未命名数据流的大小,没有长度限制,当它为常驻时,数据长度最小。

它的结构为属性头加上数据流,如果数据流太大,则标记为非常驻,以运行的方式索引到外部。

例如找一个MP3文件,从它的MFT 

项中0x80属性中可以看到它一定是非常驻,它的运行所指向的一系列簇就是音乐文件数据流

簇流的起始虚拟簇号(VCN)总从0开始

簇流的结束虚拟簇号(VCN)

簇流列表的偏移

压缩单位大小

为属性内容分配的空间大小字节数

属性内容实际占用的大小字节数

属性内容初始大小字节数

簇流列表(runlist)

属性标志:

00-长驻属性01-非常驻属性

标志(0C-0D):

0001-压缩文件4000-加密文件8000-系统文件

偏移:

相对于本属性头

簇流列表3140009601:

31后面字节0x40是簇流片段占用的簇数,后面3个字节0X019600是相对起始簇号

MFT结束标志:

FFFFFF

索引记录结构

I

N

X

更新序号偏移

更新序号的大小与排列

该索引缓冲在索引分配中的索引VCN

索引入口的偏移(相对于0x18)

索引入口的大小(相对于0x18)

索引入口的分配大小(相对于0x18)

更新序列号

更新序列排列(2S-2字节)

exFAT分区结构

(不在分区扇区总数内)

FAT

数据区(簇单位)

其他隐藏扇区

DBR24-27字节计算FAT扇区数(长度)

位图文件

大写转换表

分区表或DBR40-47字节

逻辑

0-11扇区

12-23扇区

搜索偏移0“F8FFFF0F”确定FAT表起始扇区;

搜索“FFFF”确定起始位置,2号簇

搜索“00000100”,固定5836B,占1簇

紧接大写转换表文件,一般5号簇

逻辑0-11扇区:

0引导扇区,1-8扩展引导扇区,9OEM信息记录,10保留,11引导校验扇区;

备份12-23扇区对应0-11扇区。

76

OEMID

隐藏扇区数

FAT起始扇区号

FAT扇区数

首簇起始扇区号

分区总簇数

根目录起始簇号

卷ID

文件系统版本

卷标志

介质描述

70

己用比例

引导代码开始

0.每扇区字节数:

假设此处值为N,则扇区大小字节数为2的N次方,通常9

1.隐藏扇区数:

可以从分区表中查看,如果分区表破坏请按重建分区表操作

2.扇区总数:

可以从分区表查看

3.FAT起始扇区数:

通过搜索FAT表的头标志“F8FFFF0F”所在扇区-分区开始扇区号(相对于DBR,不包含隐藏扇区)

4.首簇起始扇区号:

虽然只有一个FAT,但该处值并不一定等于FAT表起始扇区+FAT大小扇区数,FAT表分配的空间与簇起始扇区之间可能会有未使用的扇区;

簇位图文件一般占用数据区的第一个簇,所以首簇起始扇区号的计算通过找簇位图文件的开始位置,搜索“FFFF”找到簇位图文件的起始扇区-分区开始扇区

5.每簇扇区数:

假设此处为N,则簇大小为2的N次方簇。

位图文件之后就是大写转换表文件,大写转换表文件的内容是固定的,前4个字节是“00000100”,通过搜索这4个字节就能找到大写转换表文件的开始扇区,与簇位图文件起始扇区相减得到簇位图文件大小,再通过分析FAT表可知簇位图文件占用簇的个数,相除可得到每簇扇区数

6.根目录起始簇号:

簇位图文件总是开始于数据区的2号簇,通过分析FAT表可知簇位图文件占用簇的个数,簇位图文件之后是大写转换表文件,固定5836个字节,结合每簇扇区数可知大写转换表文件占用的簇的个数,而大写转换表文件之后就是根目录的开始

7.分区总簇数:

前面已经知道首簇起始扇区号,每簇扇区数;

用数据区的总扇区数除以每簇扇区数,就是分区的总簇数了

8.FAT扇区数:

用分区的总簇数来计算FAT扇区数。

(分区总簇数+2)*4/512(取大于这个值的簇大小的整数倍,簇位图前保留0号、1号簇)

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

当前位置:首页 > 法律文书 > 调解书

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

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