FAT32文件系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.5 FDT与FAT的作用和意义
• 1 FDT的作用 从FDT的结构中分析可知,它主要用于保存文件和目录 的基本信息,包括长文件名登记项。其作用体现在下列 几个方面。 • (1)管理文件 FDT目录项结构信息中,包含了一个文件常见的属性: 文件名,扩展名,建立时间,建立日期,首簇号,文件 长度等重要的基本信息。 • (2)管理目录 为了易于使用和管理,文件系统被设计成树形结构。所 谓的树形结构,就是文件系统只有一个总的入口,
第二章 FAT32文件系统
2.1 FAT32文件系统结构总揽 FAT32文件系统是从微软Windows 95系统的OSR2版本开 始使用的,它能够支持大于32MB小于32GB的分区。虽然 第三方的格式化程序可以把超过32GB的分区格式化为 FAT32,但微软自身的系统不允许将大于32GB的分区格 式化为FAT32文件系统。 FAT32文件系统由DBR及其保留扇区,FAT1,FAT2, DATA区 四个部分组成。
FAT32文件系统结构实例图
2.2 FAT32文件系统DBR
• 2.2.1 DBR的概念和组成 • 什么是DBR? DBR(DOS Boot Record),含义是DOS引导记录, 也称为操作系统引导记录 • FAT32文件系统的DBR(即操作系统引导记录)大体 可以分为5个部分,分别为:跳转指令,OEM代号, BPB(BIOS Parameter Block,BIOS参数块),引导程 序,结束标志(55AA)。 FAT32文件系统DBR结构模块图 请参照下图
• 2 OEM代号 这部分占8字节,其内容由创建该文件系统的OEM厂商 具体安排。当前DBR中的OEM代号为“MSDOS5.0”, 说明这个FAT32分区是由微软的Windows 2000以上的 操作系统格式化创建的。 • 3 BPB(BIOS Parameter Block) FAT32的BPB从DBR的第12(0BH偏移处)个字节开始, 占有79个字节,记录了有关该文件系统的重要信息,具 体内容如下:
2.2.2 DBR和MBR的异同比较
• 1 DBR和MBR的相同点 (1)所占空间大小相同: DBR与MBR占用相同大小的存储空间,均为1个扇区 (即512字节)。 (2)结束标志相同: DBR和MBR的结束标志都是“55 AA”。
• 2 DBR和MBR的不同点 • (1)功能不同 MBR的主要功能是存放硬盘分区信息和引导系统时检查 分区。 DBR则存放的是分区文件系统参数,同时,设置为活动 分区的DBR将从MBR引导程序接过引导控制权,以装载 操作系统。 • (2) 作用范围和性质不同 MBR和虚拟MBR控制着整个硬盘的所有分区信息, 作用范围是全局性的,其性质是基础性的。而DBR 则存放着有硬盘分区的文件系统参数,作用范围是局 部性的,其性质属于应用性的。通常MBR或1个虚拟 MBR可以定义1~4个不等的分区,而1个DBR只能定义1 个分区的文件系统。
2.4.4 子目录文件管理
• FAT32文件系统下,子目录的结构和根目录的结构是 相同的,唯一有点区别的是子目录目录项中有两个特 殊的目录项(前两个目录项),这两个目录项是子目 录具备的独有特征,也是判断和区分根目录的根本要 素。这个两个特殊的目录项分别是“.”和“..”,其中目 录项“.”表示本目录,“..”表示父目录。如果一个目 录没有这两个特殊目录项,很显然就是根目录。子目 录通过这两个特殊的目录项就形成了目录与目录之间 的双向链表指针的关系,从而就形成了FAT32文件系 统下,文件目录的树形结构关系和遍历关系。
2.3 FAT的概念与结构
• 1 FAT的概念 FAT(File Allocation Table)即文件系统中的文件分配表, 实际上就是一张记录文件存储位置的表格,文件存储位 置用簇号来表示。文件的首簇号存放在FDT(File Directory Table)文件目录表登记项中,后续簇号存放 于FAT。FAT本身由高级格式化程序建立。 • 2 FAT结构 在FAT32文件系统中,一个FAT项是由4个字节(32位)构 成的,由此可以推断出FAT16文件系统中,一个FAT项 是由2个字节(16位)构成的。
• 1 跳转指令 跳转指令本身占用2个字节,它将程序执行流程跳转到 引导程序处,比如当前DBR中的“EB 58”,就是代表汇 编语言的“JMP 58”。需要注意该指令本身占用2字节, 计算跳转目标地址时以该指令的下一个字节为基准,所 以实际执行的下一条指令应该位于5A。紧接着跳转指令 的是一条空指令NOP(90H)。
2.4.2 长文件名目录项
• 所谓的短文件名就是在DOS环境下采用的微软8.3 文件名格式,文件名称的长度不能超过8个字节, 为了克服这个缺陷, FAT32 文件系统启用了长文 件名的结构方式。简单的说,长文件名由一个短 文件名登记项和若干个长文件名登记项组成。长 文件名登记项按倒序方式排列在短文件名登记项 前.
• • • • • •
由FAT32文件系统DBR可以得出下面几项重要内容。 1 每簇多少扇区(本实例:16个扇区) 2 保留扇区数 (本案例:34个扇区) 3 每个FAT表占用的扇区数(本案例:15987个扇区) 4 根目录的第一簇簇号(本案例:第2簇) 备注说明:FAT32文件系统,数据区是从第2簇开始 的,第0簇和第1簇只是概念的意义,实际上没有分配 对应的磁盘空间,因此第2簇是从第[ 34(保留扇区 包括DBR)+15987×2(两个FAT表占用的空间) =]32008 扇区开始的,然后用Winhex对应的跳转扇 区工具跳转到对应的扇区中。跳转后找到相应文件的 FDT记录项。
• (3)管理长文件名 • (4) FDT登记项第11个字节置为0FH时,表示该项为 长文件名登记项。每一个长文件名登记项可以表示13 个双字节内码形式的字符,这些登记项按倒序方式排 列在文件的短文件登记项之前。 • (5) 2 FAT的作用 • (6) FAT以簇号的方式记录文件占用空间的情况。一 个簇号对应一块数据区空间,一个文件可以申请分配 一个或多个簇号。簇号在FAT中可以连续存放,也可 以非连续存放,这取决于数据空闲区域是否含有碎片 ( 空闲区域和已占有区域相互交错 ) 。 FAT 巧妙地运用 簇号与簇号存放在FAT的偏移地址之间的关系,解决 了簇链的表示问题。 FAT32 分区 FAT 地址关系为:下 一簇号地址=当前簇号×4。FAT与FDT联系的纽带就 是FDT登记项中的首簇号。
2.4.3 根目录文件管理
• FAT32文件系统对于根目录下文件的管理,统一在数 据区(DATA)中的根目录区为这些文件创建目录项, 并由FAT表为文件的内容分配簇存放数据。而根目录 区的首簇由格式化程序指派,并把指派的簇号记录在 DBR的BPB中,如果根目录下文件数目过多,这些文 件的目录项在根目录区的首簇存放不下,FAT表就会 为根目录分配新的簇来存放根目录下的文件以及文件 夹的目录项。文件夹可以理解为一种特殊的文件,文 件夹的FDT项和文件的FDT项结构相同。
具体结构如下图:
• 长文件名FDT项结构图
具体内容如下:
• 每一个长文件名登记项有26个字节记录长文件名称,表示 13个Unicode格式的文件名(每个文件名字符需要2个字节)。 顺序字节低5位指明长文件名登记项序号,第6位置“1”表 明本登记项是最后一个,“顺序号”数据结构如下:
• (“顺序号”字节含义图)
这个总的入口就是根目录,在根目录下有文件和子目录。 子目录下用户可以创建更多的文件和下一层子目录,以 此类推,形成一个类似于树形结构的系统。 FDT正是通过其第11字节的设定值(将第五位置0), 使其变成子目录的登记项,再配合第20,21和第26, 27首簇号,确定该目录的入口地址,从而完成从根目录 到下一层子目录的遍历。同时,子目录下的FDT登记项 中,有一个特殊的目录登记项(文件名为“..”)即 2E 2E,第11个字节属性值是10H(目录),首簇号值则 指向上一层目录的入口地址。这样FDT目录登记项为文 件系统提供了从子目录向根目录回溯的功能。因此, FDT使得FAT32文件系统具备了在根目录和子目录间双 向访问的能力。
2.4 FDT的概念与结构
• FDT(File Directory Table)文件目录表 是由若干个32个字节表项构成,登记 着分区上的目录,文件和子目录信息。 这些信息包括文件和目录的名称,创 建时间,属性,大小,首簇号。
2.4.1 短文件名目录项
• 下图为短文件名FDT的结构。 (短文件名FDT项结构图)
FAT32文件系统结构图
关于DBR FAT1 FAT2 DATA的概念详解
• 1 DBR及其保留扇区。DBR的全称为DOS Boot Record,含义是DOS引导记录,也称为操作系统引导 记录,在DBR之后往往有一些保留扇区,在这些保留 扇区中,有一个重要的扇区,一般为第六个扇区(相 对于DBR的起始位置),具体位置要参阅DBR中所描 述的位置,这个扇区就是DBR的备份。 • 2 FAT1。FAT的全称为File Allocation Table,含义是文 件分配表,FAT32一般有两份FAT,FAT1是第一份, 也是主FAT。 • 3 FAT2。FAT2是FAT32的第二份文件分配表,也就 是FAT1的备份,称为备份FAT。 • 4 DATA。DATA也就是数据区,是FAT32文件系统的 主要区域,其中包含了目录区。
• 4 引导程序 FAT32的DBR引导程序占用420字节(5AH~1FDH),在Windows98 之前的系统之下,这段代码负责完成DOS三个系统文件的装入, 在Windows 2000之后的系统中,其负责完成将系统文件NTLDR 装入,对于一个没有安装操作系统的分区来讲,这段程序没有任 何作用。 • 5 结束标志 DBR的结束标志与MBR,EBR的结束标志都相同,为“55 AA”。 • 以上五个部分共占用512字节,正好是一个扇区,因此成它为 DOS引导扇区。该部分的内容中除了第5部分结束标志是固定不变 之外,其余4个部分都是不完全确定的,都因操作系统版本的不同 而不同,也因硬盘的逻辑盘参数的变化而变化。
FAT32文件系统DBR结构模块图wk.baidu.com
FAT32文件系统DBR详细结构图
FAT32文件系统的DBR解析
• FAT32文件系统的DBR(即操作系统引导记录)大体 可以分为5个部分,分别为:跳转指令,OEM代号, BPB(BIOS Parameter Block,BIOS参数块),引导程序, 结束标志(55AA)。
FAT表项结构图
• 第一 记录磁盘类型 FAT前2个簇为保留簇,不分配给文件使用。FAT第0个字 节表示磁介质类型,与BPB(BIOS Parameter Block)偏 移量15H(磁介质描述符)处的值相同,硬盘用F8H表示。 • 第二 记录文件占用的各簇簇号 以FAT32分区为例,一个文件创建好后,在FAT表里有一 系列的表项值与其对应,一个FAT表项值表明文件占用的 一个簇号并指明下一个簇号的位置。文件的起始簇号存放 在该文件FDT(File Directory Table)的第20,21字节和 第26,27字节。具体来说就是FAT表项值表示一个簇号, 其值乘以4就是下一个表项位置,如此往复从而构成一个 簇链,公式如下: 下一个簇号=【当前簇号×4+FAT表起始地址】取值 直到出现FF FF FF 0F 为止,表示结束。 • 第三 记录可用簇和坏簇 FAT中用00 00 00 00表示空簇(未使用的硬盘空间),用 F7 FF FF FF 表示坏簇。
• (7) 3 FDT与FAT的意义 • (8) 由以上分析可知,管理文件和目录是由 FDT , FAT 共同合作来完成的。 FDT存放文件和目录的基本 信息, FAT 则管理存储空间的分配,二者通过 FDT的 首簇号相关联。 • (9)在FAT32文件系统下,手工寻找遍历一个文件的 内容(使用硬盘底层软件Winhex)来阐述DBR,FDT 与FAT之间的相互作用和意义。 • 遍历文本文“test .txt”。 • 第一步 首先定位到分区的DBR,也就是分区的首扇 区,套用Winhex对应的模版。 • Winhex自带的FAT32文件系统DBR模版 见下图