FAT32文件系统详细介绍(专业)
FAT32文件系统详解

第八章FAT32文件系统详解Description:OS: Microsoft windows 7、Microsoft Professional xp sp3Software: winhex15.2 SR-10Hardware: Mega16、Kingston 2G sd cardAuthor: FGDTime: 200908088.1 Microsoft比尔·盖茨于2008年6月27日退休了,他在微软同事的心目中是一个什么形象呢?这个当属与他一起共同执掌了微软28年之久的CEO鲍尔默最有话语权了。
“他是一个比较内向的小伙子,不太爱说话,但浑身充满了活力,尤其是一到晚上就活跃起来。
当时的情况是,经常在我早上醒来时,他才准备睡觉。
”鲍尔默在最近接受《华尔街日报》采访时,如此形容比尔·盖茨。
鲍尔默说的对,也许只有活力才是成功的最关键因素,这是比尔·盖茨留给大家最好的礼物!1. Life is unfair, you want to adapt it.2. The world will not take your self-esteem, but for the self-satisfaction before you have success.3. Just returned from the school come out when you can not earn 60,000 U.S. dollars a month, but will not become any company vice president, also owned a car until you have won the hand of those that day.4. If you think school teachers is too harsh, then you have to think back to the boss.5. Selling hamburger and not detrimental to your dignity. Your grandparents had a different understanding to sell hamburger, they called it "opportunity".6. If you get into difficulties, it is not the fault of your parents, you should not be the responsibility onto others, and to learn to learn from it.7. Before you were born, your parents do not like so boring. They look into this today because these years have been for you to pay bills, to your laundry. So, in talking to parents, or whatever cleaning your own house?8. You may no longer host school hours and poor health themselves, but life is not the case. In some schools had not "fail" concept, the school will continue to give you the opportunity for you to progress, but real life is not like that.9. Unlike in the life out of school after a semester of the same school hours, nor that the summer. No boss to help you find some self-and you must rely on its own to complete.10. Many of the scenes on television is not real life. In real life, people must do their buried in his work, not like TV where my daily dwell in the case of coffee Lane.11. Treat your aversion to the people, because there days you will work for sucha person.8.2 先说说硬盘【笔者按:这部分知识基本是笔者对《数据重现》一书(作者:马林)读书笔记的整理,要了解详更详细的细节,可参考该书或求助互联网。
FAT32文件系统详细介绍

FAT32文件系统详细介绍初识FAT32文件系统Abstract: File System is used to manage files software and data ,it is part of the operating system.FAT32 file system is a kind of format that it manage disk files. And the corresponding other file system format such as NTFS,EXT2 etc.Key words: File System; FAT32 File System; Disk摘要: 文件系统是用于管理文件的软件和数据的统称,它是操作系统的一部分。
FAT32文件系统是一种管理磁盘文件的一种格式。
还有相应的其他文件系统格式比如NTFS,EXT2等。
关键词: 文件系统;FAT32文件系统;磁盘1 硬盘结构1.1 硬盘物理结构[1]图1 硬盘的内部结构硬盘基本上由两大部分组成:控制电路板和盘体。
1.控制电路板控制电路板由接口,DSP处理器,ROM,缓存,磁头驱动电路和盘片电机驱动电路等等组成。
2.盘体盘体由盘腔,上盖,盘片电机,盘片,磁头,音圈和其他辅助组件组成。
一般硬盘的接口分为几种,有IDE接口(Integrated Drive Electronics),SCSI接口(Small Computer System Interface),SATA接口(Serial-ATA)(目前是主流),SAS接口,IEEE1394接口。
硬盘存储数据是根据电、磁转换原理实现的。
硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。
详解FAT32文件系统

详解FAT32⽂件系统详解FAT32⽂件系统硬盘是⽤来存储数据的,为了使⽤和管理⽅便,这些数据以⽂件的形式存储在硬盘上。
任何操作系统都有⾃⼰的⽂件管理系统,不同的⽂件系统⼜有各⾃不同的逻辑组织⽅式。
例如:常见的⽂件系统有FAT,NTFS,EXT,UFS,HFS+等等。
下⾯就来学习⼀下基于Windows的FAT32⽂件系统。
FAT32⽂件系统由DBR及其保留扇区,FAT1,FAT2和DATA四个部分组成,其机构如下图:这些结构是在分区被格式化时创建出来的,含义解释如下:DBR及其保留扇区:DBR的含义是DOS引导记录,也称为操作系统引导记录,在DBR之后往往会有⼀些保留扇区。
FAT1:FAT的含义是⽂件分配表,FAT32⼀般有两份FAT,FAT1是第⼀份,也是主FAT。
FAT2:FAT2是FAT32的第⼆份⽂件分配表,也是FAT1的备份。
DATA:DATA也就是数据区,是FAT32⽂件系统的主要区域,其中包含⽬录区域。
⼀、分析FAT32⽂件系统的DBRFAT32⽂件系统的DBR有5部分组成,分别为跳转指令,OEM代号,BPB,引导程序和结束标志。
如下图是我U 盘上⼀个完整的FAT32⽂件系统的DBR。
E8 58 90 :(跳转指令) 本⾝占2字节它将程序执⾏流程跳转到引导程序处。
“EB 58 90″清楚地指明了OS引导代码的偏移位置。
jump 58H加上跳转指令所需的位移量,即开始于0x5A。
4D 53 57 49 4E 34 2E 31 :(OEM代号) 这部分占8字节,其内容由创建该⽂件系统的OEM⼚商具体安排。
跳转指令之后是8字节长的OEM ID,它是⼀个字符串, OEM ID标识了格式化该分区的操作系统的名称和版本号。
为了保留与MS-DOS的兼容性,通常Windows 2000格式化该盘是在FAT16和FAT32磁盘上的该字段中记录了“MSDOS 5.0”,在NTFS磁盘上(关于ntfs,另述),Windows 2000记录的是“NTFS”。
FAT32文件系统

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结构模块图 请参照下图
第二章 FAT32文件系统
2.1 FAT32文件系统结构总揽 FAT32文件系统是从微软Windows 95系统的OSR2版本开 始使用的,它能够支持大于32MB小于32GB的分区。虽然 第三方的格式化程序可以把超过32GB的分区格式化为 FAT32,但微软自身的系统不允许将大于32GB的分区格 式化为FAT32文件系统。 FAT32文件系统由DBR及其保留扇区,FAT1,FAT2, DATA区 四个部分组成。
具体结构如下图:
• 长文件名FDT项结构图
具体内容如下:
• 每一个长文件名登记项有26个字节记录长文件名称,表示 13个Unicode格式的文件名(每个文件名字符需要2个字节)。 顺序字节低5位指明长文件名登记项序号,第6位置“1”表 明本登记项是最后一个,“顺序号”数据结构如下:
• (“顺序号”字节含义图)
fat32简述

本文来自网络整理。
FAT32是个非常有功劳的文件系统,Microsoft成功地设计并运用了它,直到今天NTFS铺天盖地袭来的时候,FAT32依然占据着Microsoft Windows文件系统中重要的地位。
FAT32最早是出于FAT16不支持大分区、单位簇容量大以致空间急剧浪费等缺点设计的。
实际应用中,FAT32 还是成功的。
FAT32与FAT16的原理基本上是相同的,下图标出了FAT32分区的基本构成。
FAT32分区的基本构成FAT32在格式化的过程中就根据分区的特点构建好了它的DBR,其中BPB参数是很重要的,可以回过头来看一下表4和表5。
首先FAT32保留扇区的数目默认为32个,而不是FAT16的仅仅一个。
这样的好处是有助于磁盘DBR指令的长度扩展,而且可以为DBR扇区留有备份空间。
上面我们已经提到,构建在FAT32上的win98或win2000、winXP,其操作系统引导代码并非只占一个扇区了。
留有多余的保留扇区就可以很好的拓展OS引导代码。
在BPB中也记录了DBR扇区的备份扇区编号。
备份扇区可以让我们在磁盘遭到意外破坏时恢复DBR。
FAT32的文件分配表的数据结构依然和FAT16相同,所不同的是,FAT32将记录簇链的二进制位数扩展到了32位,故而这种文件系统称为FAT32。
32位二进制位的簇链决定了FAT表最大可以寻址2T个簇。
这样即使簇的大小为1扇区,理论上仍然能够寻址1TB范围内的分区。
但实际中FAT32是不能寻址这样大的空间的,随着分区空间大小的增加,FAT表的记录数会变得臃肿不堪,严重影响系统的性能。
所以在实际中通常不格式化超过32GB的FAT32分区。
WIN2000及之上的OS已经不直接支持对超过32GB的分区格式化成FAT32,但WIN98依然可以格式化大到127GB的FAT32分区,但这样没必要也不推荐。
同时FAT32也有小的限制,FAT32卷必须至少有65527个簇,所以对于小的分区,仍然需要使用FAT16或FAT12。
Fat32详解有图有真相

只是画出了MBR,DBR,FAT,根目录,目录项之间的关系图。
具体的每一个结构在网上搜索其结构就可以,网上多的是。
注意:1.MBR位于硬盘的0号扇区,硬盘开始的512字节。
2.MBR第08-0B字节小端格式指明该分区的起始扇区数,指明DBR所在的位置。
3. MBR第0C-0F字节小端格式指明分区的大小的空间就是从DBR开始。
如图标记的红色部分:第08-0B字节的00116f00指明DBR从00116f00个扇区开始,即从地址22de0000开始如图为DBR所在位置:4.DBR 中定义了DBR区域所占扇区数、FAT表个数、FAT所占扇区数。
5.FAT表数据存储格式如下图:6. DBR的第0b-0c指明了扇区大小,0d指明了每一个簇占用的扇区数。
0e-0f指明了保留扇区数,保留扇区数就是上图中保留区的总大小。
10-10是fat表个数,24-27是每个FAT占用的小扇区数。
如图:7.从而可以获取到根目录的起始位置:DBR的起始地址+保留扇区数*512+FAT表个数*FAT占用的扇区数*512 =根目录的起始地址,可以计算出保留区和FAT表占用的扇区数加上DBR的起始扇区数就可以得出根目录的起始扇区数。
使用winhex可以直接定位到要去的扇区数。
通过上面的计算可以定位到根目录起始地址是23448000。
如图根目录:8.根目录中记录了目录项包括文件的目录项和文件夹的目录项,每一个目录项占用32个字节。
文件的目录项记录了文件的属性和文件存放的起始簇号。
如果根目录中存放的目录项是文件夹目录项则指明了该文件夹存放的起始簇号只是该起始簇号中存放的也是一个目录项指明了存放的文件和文件夹属性。
以此类推。
9.FAT表中4个字节为一个表项对应从0号开始的簇号,目录项中定义了文件存放的起始簇号,在FAT表中找到对应的簇号后就知道文件存放的下一个簇号是多少。
FAT32

数据区是被用来存放用户数据的,位于FAT2后,同样被划分成簇,从2开始编号,即2号簇起始位置即是数据 区的真正起始位置。
(1)根目录
通常情况下根目录位于2号簇,但是原则上FAT32文件系统中的根目录可以位于数据区的任意位置。根目录区 保存根目录下的各文件的目录项,每个目录项占用32字节。FAT32文件系统中,根目录作为数据区的一部分,采 用与子目录相似的管理方式,这一点与FAT12、FAT16明显不同,如FAT16文件系统的根目录区(ROOT区)是固定 区域、固定大小的,占用从FAT区之后紧接着的32个扇区,最多保存512个目录项(其根目录保存的文件数受限的 原因在此),作为系统区的一部分。
磁盘结构
文件分配表区
引导区
数据区
FAT32文件系统的第一个扇区就是引导扇区,其内存放了一个文件系统的很多具体信息,例如FAT表个数、每 个FAT表的大小(扇区数目)、每扇区内的字节数目、每簇中所包含的扇区数目、被保留的扇区数目、文件系统 大小(扇区数目)、根目录的起始簇号及一些其它的附加信息。引导区(BOOT区)从第一扇区(逻辑扇区号0) 开始使用了三个扇区,保存了该逻辑盘每扇区字节数,每簇对应的扇区数等等重要参数和引导记录。之后还留有 若干保留扇区,其中有一至三扇区的备份,
文件分配表区(FAT区)是FAT文件系统管理磁盘空间和文件的最重要区域,它保存逻辑盘数据区各簇使用情 况信息,采用位示图法来表示,文件所占用的存储空间及空闲空间的管理都是通过FAT实现的。FAT区共保存了两 个相同的文件分配表,便于第一个损坏时,还有第二个可用。FAT表的大小由该逻辑盘数据区共有多少簇所决定, 取整数个扇区。数据区中每簇的使用情况通过查找其在FAT表中相应位置的填充值可知晓。FAT32表中每簇占用四 个字节(32位)表示,开头的8个字节(0H-07H字节)用来存放该盘介质类型编号了,因此有效簇号从02H开始使 用。02H簇的使用情况由08H-0BH字节组成的32位二进制数指示出来,03H簇的使用情况由0CH一0FH字节组成的32 位二进制数指示出来,依此类推。未被分配使用和已回收的簇相应位置写零,坏簇相应位置填入特定值 0FFFFFF7H标识,已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为 0FFFFFFFH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用 的各簇构成一个簇链,保存在FAT32表中。
FAT32文件系统知识

FAT文件手动遍历实例
“FAT表分析”unicode字符转换为“46 00 41 00 54 00 68 88 06 52 90 67”
FAT文件手动遍历实例
分析目录表得出
FAT表分析.AVI 文件起始簇号高两位为00 00低两位为03 00 则该文件起 始簇号为 3号簇大小为174652928字节。结束簇号为42642
(4)DBR保留扇区数+2倍的每FAT扇区数 (5)通过文件名定位目标文件目录项 (6)查找文件起始簇号,跳转到FAT1中查找FAT项 (7)确定文件所在簇,跳转该簇查看数据(计算公式=DBR保留扇区+2倍的每FAT 扇区数+(簇号-2)*每簇扇区数)
FAT32文件系统目录项分析
子目录管理
1.根目录文件定位“Biblioteka 5 AA”。与MBR、EBR 相同。
FAT32文件系统FAT表分析
1 8 7 6 5
FAT表 结构特点
1.FAT文件系统有两个FAT表
2 3 4
2.FAT1跟在DBR之后 3.FAT表是由FAT表项构成的 4.每一个FAT表项都有一个固定编号 5.FAT表前两个FAT表项有专门用途 6.分区的数据区中每一个簇都会映射唯一FAT项 7.FAT项值表明簇的三种状态
谢谢欣赏!
XIE XIE XIN SHANG!
IT专业教学资源
FAT2查找
(1)定位本分区DBR位置 (2)读取DBR的BPB中0E~0F位置参数(DBR保留扇区数) (3)读取DBR的BPB中24~27位置参数(每FAT扇区数)
FAT32文件系统FAT项分析
前4个FAT表项解析
0号FAT项描述介质类型
1号FAT项坏簇标志
2号FAT项结束标志
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过使用DiskEditor对硬盘的分析,现对硬盘的MBR区及FAT32文件系统做一个详细的介绍。
新硬盘->低格后变化:所有扇区中的字节数据填充为0x00
低格后->分区后变化:写硬盘的MBR(主引导扇区)区
分区后->格式华变化:写硬盘的FAT(文件分配表)区
MBR区介绍:
起始位置:0柱面0磁头1扇区(硬盘的第一个扇区)
结束位置:0柱面0磁头1扇区
大小:512(硬盘每个扇区的所占用的字节数)个字节
000 ~ 1bd (446字节)executable code(我们不使用,固定填写0x00)
1be ~ 1cd (16字节)1st partition entry(参数解释见下面)
1ce ~ 1dd (16字节)2st partition entry(同第一个分区)
1de ~ 1ed (16字节)3st partition entry(同第一个分区)
1ee ~ 1fd (16字节)4st partition entry(同第一个分区)
1fe ~ 1ff (2字节)boot record signature(固定值:55 aa)
现以第一个分区的入口参数为例:
80 分区状态(80H表示为激活分区,00H表示为非激活分区)
01 分区的开始磁头
01 00 分区的开始柱面和扇区(0 ~ 5位为扇区号、8 ~ 15位为柱面号的低8位,6 ~ 7
位为柱面号的高两位)
0c 分区的类型(0c表示为FAT32,用LBA方式)
ff 分区的结束磁头
ff fe 分区的结束柱面和扇区(表示同开始磁头)
3f 00 00 00 从MBR到第一个分区扇区的扇区个数(一般为硬盘扇区的最大值)fc 8a 38 01 分区的总扇区数(可以计算扇区的总大小)
FAT区介绍:
起始位置:0柱面1磁头0扇区
结束位置:根据硬盘参数不同有所不同
大小:硬盘的总簇数×4字节
FAT区中的BOOT:
起始位置:0柱面1磁头0扇区
结束位置:0柱面1磁头0扇区
大小:512字节
000 ~ 059 (60字节)各个参数(参数解释见下面)
000 ~ 059 (420字节)executable code(初始值固定)
000 ~ 059 (2字节)boot record signature(固定值:55 aa)
现解释各个参数的含义:
eb 58 90 跳转代码(固定值:eb 58 90)
4d 53 57 49 4e 34 2e 31 OEM名字(固定值:表示MSWIN4.1)
00 02 每扇区的字节数(512)
08 每簇的扇区数
20 00 保留的扇区数(通常固定为32)
02 FAT表的个数(通常有2个)
00 00 未使用(固定为0)
00 00 未使用(固定为0)
f8 介质类型(硬盘为f8)
00 00 未使用(固定为0)
3f 00 每磁道的最大扇区数(硬盘的参数)
ff 00 最大磁头数(硬盘的参数)
3f 00 00 00 分区中隐藏的扇区数(初始化时写入每磁道的最大扇区数)
fc 8a 38 01 分区中的扇区总数(自己根据硬盘参数计算)
fc 4d 00 00 每个FAT表占用的扇区数
00 00 Flags(Bits 0-4 Indiate Active FAT Copy)(Bit 7 Indicates whether FAT
mirroring is enabled or disable <clear is enabled>)(if FAT mirroring is
disabled, the FAT information is only written to the copy indicated by bits 0-4)
00 00 FAT32驱动版本(固定值:00 00)
02 00 00 00 根目录区的开始簇号(00 01 两个簇号不使用)
01 00 文件系统信息(后面有相关的说明)扇区所在位置的扇区号(此扇区号为
相对位置)
06 00 备份引导扇区所在位置的扇区号(此扇区号为相对位置)
00 00 00 00 00 00 00 00 00 00 00 00 保留
80 分区的逻辑驱动号(第一个分区固定为80,之后依次为81…ntfs分区固定
为F6)
00 未使用
29 扩展标识(固定值:29)
ab 0b 64 15 分区的串号(工控机硬盘为74 00 e6 f0)
00 00 00 00 00 00 00 00 00 00 00 分区的名称(工控机硬盘为4e 4f 20 4e 41 4d 45 20
20 20 20意思为“NO NAME”)
46 41 54 33 32 20 20 20 FAT名称(固定值:表示“FAT32”)
说明:
隐藏扇区是MBR 到FAT BOOT 之间的扇区。
保留扇区是FAT BOOT 到文件分配表(FAT)之间保留的扇区
executable code:
具体含义不明(应该是用来引导用的代码)
FAT区中的文件系统信息区:
起始位置:0柱面1磁头1扇区
结束位置:0柱面1磁头1扇区
大小:512字节
000 ~ 003 1e4 ~ 1fd (30字节)各个参数(参数解释见下面)
004 ~ 1e3 (480字节)未知(固定值:00)
000 ~ 059 (2字节)boot record signature(固定值:55 aa)
现解释各个参数的含义:
52 52 61 41 标识(First Signature)
72 72 41 61 标识(Signture of FSInfo sector)
75 90 1d 00 剩余的簇数(如果设置为ff ff ff ff,表示未知)(工控机硬盘为fc 94 18
00)windows显示c盘的剩余空间,是剩余簇+2个保留簇的大小。
44 05 00 00 最近一次被分配的簇号(工控机硬盘为02 00 00 00)
00 00 00 00 00 00 00 00 00 00 00 00 保留
00 00 未知
剩余的簇数说明:虽然windows显示盘的剩余空间,是剩余簇+2个保留簇的大小。
但实际上保留簇号并没有占用磁盘空间,也就是说,02号簇,才代表了数据区的第一个簇,一般都是根目录的位置。
保留簇所代表的磁盘空间取消了,或者说,数据区将会多出来2个簇的空间。
FAT区中的未知数据区
起始位置:0柱面1磁头2扇区
结束位置:0柱面1磁头2扇区
大小:512字节
FAT表介绍:
起始位置:0柱面1磁道1扇区+保留扇区数+(每个FAT表占用的扇区数×2)
结束位置:根据分区情况确定
大小:根据分区情况确定
说明:
每簇的使用情况用32位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入特定值;已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为FFFFFF0FH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在FAT表中。
0000000H、00000001H两簇号不使用,其对应的两个DWORD位置(FAT表开头的8个字节)用来存放该盘介质类型编号。
FAT表的大小就由该逻辑盘数据区共有多少簇所决定,取整数个扇区
DA TA区介绍:
起始位置:0柱面1磁道1扇区+保留扇区数+(每个FAT表占用的扇区数×2)
结束位置:根据分区情况确定
大小:根据分区情况确定
000 ~ 01f (32字节)根目录区中的WIN98子目录(参数解释见下面)
1e0 ~ 1ff (32字节)根目录区中的SYSTEM.1st文件(参数解释同上)
现解释各个参数的含义:
57 49 4e 39 38 20 20 20 文件名(WIN98)
20 20 20 文件扩展名(无)
10 文件属性(最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、
卷标位、子目录位、归档位)
00 仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校
验和等
00 00 00 24位二进制的文件建立时间,其中的高5位为小时,次6位为分钟
00 00 16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,
次4位为月份,后5位为月内日期
1b 2f 16位二进制的文件最新访问日期,定义同上
00 00 起始簇号的高16位
e8 60 16位二进制的文件最新修改时间,其中的高5位为小时,次6位为分钟,后5位的二倍为秒数
1b 2f 16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期
03 00 起始簇号的低16位
00 00 00 00 32位的文件字节长度(对于子目录,此项为0)
图示硬盘分区结构:
MBR(硬盘主引导分区)
+
+
DA
以上数据都是超的硬盘中数据,针对不同的硬盘参数和使用,我们应该修改相应的数据。