FAT32文件物理结构、FCB字段和根目录管理
FAT文件结构讲解

FAT文件结构讲解FAT(File Allocation Table)是一个用于存储和管理文件在磁盘上的文件系统。
FAT文件系统最初是由Microsoft开发的,适用于DOS和Windows操作系统。
它采用了一种简单的文件结构,使用了FAT表来记录文件在磁盘上的分配情况。
在这篇文章中,我们将详细介绍FAT文件结构的内部工作原理。
引导记录是FAT文件系统的第一个扇区,它包含了文件系统的基本信息和启动引导程序。
引导记录的前11个字节称为“引导码”,用于识别文件系统类型。
接下来的53个字节包含了文件系统的信息,如磁盘大小、簇(Cluster)大小和FAT表的位置。
在FAT12和FAT16文件系统中,引导记录总共占据了62个字节。
FAT表的值表示了簇的状态。
常见的值有以下几种:-0x000:表示簇空闲,没有被分配给任何文件。
-0xFF0-0xFF6(或0xFFF0-0xFFF6):这些值表示保留的簇,用于存储文件系统的元数据。
-0xFF7(或0xFFF7):表示簇坏掉,无法使用。
-0x002-0xFEF(或0x002-0xFEFF):这些值表示簇已被文件分配,并且是有效的。
-0x001-0xFF8(或0x001-0xFFF8):这些值表示簇已被文件分配,但是是最后一个簇,文件结束。
FAT表将所有的簇连接到一起,形成一个链表。
为了遍历这个链表,我们从文件的开始簇(即文件的第一个簇)开始,查找下一个簇的位置,然后再查找下一个簇的位置,直到文件结束。
文件系统使用这个链表来查找文件的数据,因为文件的数据可能分布在磁盘的不同位置。
数据区是存储文件的实际数据的地方。
每个簇都有固定的大小,通常是512字节或4096字节。
文件系统将数据区划分为多个簇,每个簇可以存储一个文件或部分文件的数据。
当文件的大小超过一个簇的大小时,文件系统会从FAT表中查找下一个簇的位置,然后写入文件的下一个簇的数据。
为了提高磁盘访问的效率,FAT文件系统还引入了目录项(Directory Entry)来存储文件和文件夹的相关信息。
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 先说说硬盘【笔者按:这部分知识基本是笔者对《数据重现》一书(作者:马林)读书笔记的整理,要了解详更详细的细节,可参考该书或求助互联网。
(仅供参考)FAT文件系统的组织结构

硬盘 FAT32 文件系统的数据组织结构: MBR DBR DBR 副本 保留扇区 FAT1 FAT2 根目录 FDT 数据区 MBR 位于 0 柱,0 头,1 扇区 DBR 从逻辑 0 扇区开始 DBR 副本从逻辑 6 扇区开始 FAT1 从逻辑 32 扇区开始 硬盘的数据区结构与软盘相比较有两点主要区别: (1) 多了一个独立于操作系统的 MBR (2) 硬盘的 FAT1,FAT2 和根目录 FDT 的大小及起止扇区并不固定,它于逻辑盘的容量有 关。 虽然硬盘的 FAT1,FAT2 和根目录 FDT 表的大小与起始扇区号和逻辑盘的容量有关。但是,根 目录 FDT 的大小总为 32 个扇区。; 二、硬盘主引导记录(DBR)及其结构 硬盘的 0 柱面,0 磁头,1 扇区称为主引导扇区,FDISK 程序写到该扇区的内容称为主引导记录 (MBR)。该记录占用 512 个字节,它用于硬盘启动时将系统控制权转给用户指定的,并在分 区表中登记了某个操作系统分区。 主引导记录记录磁盘最重要的结构信息。主引导记录是硬磁盘作分区时建立的(Fdisk)。主 引导记录包括一小段执行代码(主引导代码)、磁盘特征和硬盘分区表。主引导记录(以及后 面介绍的引导扇区)结束的两个字节必须是引导自举标记 0x55AA。 磁盘特征位于 0x01B8, 指定磁盘操作系统。 软盘无主引导记录。软盘的第一个扇区是引导扇区。虽然每个硬盘包含一个主引导记录, 只 有其拥有活动主分区时才用主引导代码。 主引导代码实现下列功能: * 扫描分区表查找活动分区; * 寻找活动分区的起始扇区; * 将活动分区的引导扇区读到内存; * 执行引导扇区的运行代码。 * 如果主引导代码未完成这些功能, 系统显示下列错误信息: * Invalid partition table * Error loading operating system * Missing operating system 1. MBR 的读取 硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命 令来读取它。 2. MBR 的组成 一个扇区的硬盘主引导记录 MBR 由 4 个部分组成: (1)主引导程序(偏移地址 0000H ̄0088H),它负责从活动分区中装载并运行系统引导程 序。 (2)出错信息数据区偏移地址(0089 ̄00E1 为出错信息,10E2H ̄10BD 全为 0 字节) (3)分区表(DPT,Disk Partition Table).含 4 个分区项偏移地址 01BEH ̄01FDH,每个
硬盘物理结构和FAT文件结构分析

硬盘物理结构和FAT文件结构分析一、硬盘的物理结构:硬盘存储数据是根据电、磁转换原理实现的。
硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
硬 盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。
当系统向硬盘写入数据时,磁头中 “写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指 定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。
因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量 提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。
这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速 度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。
二、硬盘的逻辑结构硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。
如果有N个盘片。
就有2N个面,对应2N个磁头(Heads),从0、1、 2开始编号。
每个盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。
)每个盘片的划分规则通常是一样的。
这样每个盘片的半径均为固定值R的同心圆再逻 辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2……每个盘片上的每个磁道又被划分为几十个扇区(Sector), 通常的容量是512byte,并按照一定规则编号为1、2、3……形成Cylinders×Heads×Sector个扇区。
这三个参数即是硬盘的物理参 数。
我们下面的很多实践需要深刻理解这三个参数的意义。
三、磁盘引导原理3.1 MBR(master boot record)扇区计算机在按下power键以后,开始执行主板bios程序。
读FAT32中的文件

读FAT32中的文件1.引言FAT32文件系统是微软比较成功的一个文件系统,虽然现在有被NFS代替的趋势,但由于广泛的认知性及易实现性,在嵌入式、便携产品上还广泛适用(几乎所有的基于windows 平台上的都是FAT32)。
FAT32文件系统将逻辑盘的空间划分为三部分,依次是引导区(BOOT区)、文件分配表区(FAT区)、数据区(DATA区)。
引导区和文件分配表区又合称为系统区。
FA T32 文件系统DBR(引导扇区),FAT,FDT,DATA这四个基本结构:1.DBR:DBR记录了当前FA T32 磁盘的一些基本信息,在通常情况下,DBR位于磁盘分区的0号逻辑扇区在附件中有幅DBR的图形信息,里面详细说明了在DBR中我们能获取到哪些主要信息,当然,还有很多信息希望读者自己去查阅详2 FDT:FDT区简单的说就是记录的目录(文件夹)的信息,里面记录了当前目录下所有的文件(包括当前目录下的文件夹名)的信息,说通俗一点就是记录了当前目录下的所有文件的文件名,我们定位文件,必须要定位到该文件所在目录的FDT区的位置。
3 FA T:FA T区在FA T32文件系统中有2个:FA T1与FA T2,FA T2是FA T1的备份,所以我们只需要获取FA T1的位置,FA T区所在的扇区号我们可以由DBR获取,那FA T区究竟是什么呢?首先,我们知道磁盘是由扇区组成的,若干的扇区组成一簇,当一个目录的FDT 区需要占据多个簇的时候,FA T区记录了多个簇的连接信息,具体可以详细去查阅有关资料。
4 DA TA:DA TA区是由FDT区定位的,上面说过FDT区记录了某个目录下文件的信息,若这个信息记录的是文件而非文件夹(目录),则这个信息的一部分记录了这个文件的DA TA 区的位置,顾名思义,DA TA区储存了文件的内容,当一个簇无法记录一个完整的文件内容时,就要用到FA T区进行簇连。
2.提出问题2.1FA T32文件系统的结构,主引导记录(MBR)、引导扇区、FA T表、FDT表的结构。
U盘FAT32文件系统

U盘FAT32⽂件系统⼀、FAT⽂件系统分为四个部分参考别⼈的博客1. 保留扇区(引导区)最开始的位置,第⼀个保留扇区是引导区。
包括基本的⽂件系统信息,⽐如它的类型和其它指向其它扇区的指针。
通常包括操作系统启动调⽤代码。
保留扇区的总数记录在引导扇区中的⼀个参数中。
2. FAT区(⽂件分配表)包含两份⽂件分配表,分区信息的映射表,指⽰簇是如何存储的。
3. 根⽬录区在根⽬录中存储⽂件和⽬录信息的⽬录表。
4. 数据区域实际⽂件和⽬录数据存储的区域。
需要注意的是每个簇只能被⼀个⽂件占有。
主引导记录(主引导扇区),读设备时最开始读这个分区。
1. MBR(master boot record)MBR ⼜称作主引导记录占⽤ Boot Sector 的前 446 个字节 ( 0 to 0x1BD ), 存放系统主引导程序 (它负责从活动分区中装载并运⾏系统引导程序).2. DPT 即主分区表占⽤ 64 个字节 (0x1BE to 0x1FD),记录了磁盘的基本分区信息,主分区表分为四个分区项,,每项 16 字节,分别记录了每个主分区的信息(因此最多可以有四个主分区).3. Boot Record ID 即引导区标记占⽤两个字节 (0x1FE and 0x1FF), 对于合法引导区,它等于 0xAA55,这是判别引导区是否合法的标志。
⼆、主引导扇区(MBR)的具体结构如下图所⽰:OffsetDescription Size000h Executable Code (Boots Computer)446 Bytes1BEh1st Partition Entry (See Next Table)16 Bytes1CEh2nd Partition Entry16 Bytes1DEh3rd Partition Entry16 Bytes1EEh4th Partition Entry16 Bytes1FEh Executable Marker (55h AAh) 2 BytesUSB hound 得到的数据512 IN fa 31 c0 8e d8 8e c0 8e d0 bc 00 7c fb fc 89 e6 .1.............. 55.1.0(2)bf 00 06 b9 00 01 f3 a5 ea dc 06 00 00 10 00 01 ................ 55.1.1600 00 7c 00 00 00 00 00 00 00 00 00 00 80 3f 00 ..............?. 55.1.32ff 00 b4 03 1e 0e 1f 3a 16 10 00 74 06 1f ea 36 .......:...t...6 55.1.48e7 00 f0 3d fb 54 75 05 8c d8 fb eb 1d 80 fc 08 ...=.Tu......... 55.1.6475 1b e8 81 00 8a 36 13 00 fe ce 8b 0e 15 00 86 u.....6......... 55.1.80cd c0 e1 06 0a 0e 11 00 31 c0 f8 eb 65 80 fc 02 ........1...e... 55.1.9672 cb 80 fc 04 77 c6 60 80 cc 40 50 be 00 00 c7 r....w.`..@P.... 55.1.11204 10 00 30 e4 89 44 02 89 5c 04 8c 44 06 66 31 ...0..D..\..D.f1 55.1.128c0 66 89 44 0c 88 f0 f6 26 11 00 88 cf 88 eb c0 .f.D....&....... 55.1.144ef 06 81 e1 3f 00 01 c8 48 89 c7 a1 13 00 f7 26 ....?...H......& 55.1.16011 00 f7 e3 01 f8 81 d2 00 00 89 44 08 89 54 0a ...........D..T. 55.1.17658 30 c0 8a 16 10 00 e8 0c 00 88 26 03 00 61 a1 X0.........&..a. 55.1.19202 00 1f ca 02 00 9c ff 1e 22 00 c3 80 fa 8f 7f ........."...... 55.1.20804 88 16 2d 06 be 87 07 e8 8d 00 be be 07 31 c0 ...-..........1. 55.1.224b9 04 00 f6 04 80 74 03 40 89 f5 81 c6 10 00 e2 ......t.@....... 55.1.240f2 48 74 02 cd 18 bf 05 00 be 1d 06 c7 44 02 01 .Ht..........D.. 55.1.25600 66 8b 46 08 66 89 44 08 b8 00 42 8a 16 2d 06 .f.F.f.D...B..-. 55.1.272cd 13 73 0d 4f 74 49 30 e4 8a 16 2d 06 cd 13 eb ..s.OtI0...-.... 55.1.288d8 a1 fe 7d 3d 55 aa 75 37 fa 66 a1 4c 00 66 a3 ....=U.u7.f.L.f. 55.1.3043f 06 be 13 04 8b 04 48 89 04 c1 e0 06 8e c0 31 ?......H.......1 55.1.320ff be 1d 06 b9 60 00 fc f3 a5 c7 06 4c 00 17 00 .....`......L... 55.1.336a3 4e 00 fb 8a 16 2d 06 89 ee fa ea 00 7c 00 00 .N....-......... 55.1.352be aa 07 e8 02 00 eb fe ac 20 c0 74 09 b4 0e bb ......... .t.... 55.1.36807 00 cd 10 eb f2 c3 53 74 61 72 74 20 62 6f 6f .......Start boo 55.1.38474 69 6e 67 20 66 72 6f 6d 20 55 53 42 20 64 65 ting from USB de 55.1.40076 69 63 65 2e 2e 2e 0d 0a 00 42 6f 6f 74 20 66 vice......Boot f 55.1.41661 69 6c 65 64 00 00 00 ea eb d4 ca 00 00 00 00 ailed........... 55.1.432 第⼀分区硬盘分区表 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 55.1.448 第⼆分区00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 55.1.464 第三分区00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 04 ................ 55.1.480 第四分区05 00 0b fe ff b3 00 01 00 0080 8c e8 00 55 aa ..............U. 55.1.496过256扇区后是这个分区 *512byte=7.2G硬盘分区表地址字节数描述00~001可引导标志0x00不可引导,0x80可引导01~033分区起始CHS地址04~041分区类型05~073分区结束CHS地址08~0B4分区起始LBA地址0C~0F4分区⼤⼩扇区数分区起始CHS地址(U盘可以直接根据扇区,簇来寻址。
FAT32中文版分析+补充
FAT32中文版分析+补充概述起先所有的FAT文件系统都是为IBM PC机器而设计的,这说明了一个重要的问题:FAT文件系统在磁盘上的数据是用“小端”(Little Endian)结构存储的。
我们使用4个8-bit的字节——起始字节为byte[0],结束字节为byte[3]——来存储一个32-bit的FAT项(FAT entry)。
然后分别给这32位编号为00-31。
这对于那些使用“大端”(big-endian)存储结构的机器就显得尤为重要,因为在磁盘存取数据之前,必须先完成Big-Endian到Little-Endian之间的转换。
每个FAT文件系统都由4部分组成,这些基本区域按如下顺序排列。
0——保留区(Reserved Region);1——FAT区(FAT Region);2——根目录区(Root Directory Region,FAT32卷没有此域);3——文件和目录数据区(File and Directory Region)启动扇区与BPBBPB(BIOS Parameter Block)是FAT文件系统中第一个很重要的数据区,它位于该FAT卷的第一个扇区,同时也属于FAT文件系统基本区域的保留区。
这个扇区又叫做“启动扇区”、“保留扇区”、“0扇区”,众多的说法都说明一个相同的问题:该扇区是FAT卷的第一个扇区。
这是FAT文件系统中第一个让人感到迷惑的地方,对于MS-DOS 1.x的版本,启动扇区中并没有BPB这么一个东西,FAT文件系统的最早期版本只有两种不同的格式:使用于单面或双面的360K 5寸软盘。
这两种格式是通过FAT的第一个字节(FAT[0]的低8位)来区分的。
在MS-DOS 2.x以后,启动扇区里增加了BPB用于区分磁盘介质,同时不再支持老的磁盘介质区分方式(用FAT的第一个字节来区分),所有的FAT文件系统卷必须在启动扇区中包含BPB。
这又是一个迷惑人的地方,BPB具体是什么样的?在MS-DOS2.x的定义中,每个FAT卷的扇区数不能多于65536(每个扇区512字节的话最多32MB——2^16×2^9=32MB),这一个限定是由于定义“总扇区数”的变量本身是一个16-bit的数据类型。
[新版]FAT32根目录查寻几种方法
关于FAT32目录项的内容郑州数据恢复讲解1.FAT32根目录查找方法:(注:1.字符集选择FA T32,使用“ASCII/Code page”存储文本字符NTFS,使用“Unicode”存储文本字符每个目录项大小为32字节,所以我们只需要位于可以被32整除的偏移处的,因此偏移设置为“?MOD 32 = 0 ”2.绿的为时间,红的为大小,14-15H为高位簇,1A-1B为低位簇,1C-1F为文件字节大小,浅蓝为长文件名特性标志,紫为文件属性,可用“数据解释器”DOS DA TE TIME查看)A搜索卷名一般分区的卷名,在FA T32中,都放在根目录的第一目录项“本地磁盘”卷名“新加卷”卷名B搜索“回收站”目录项在文件系统刚建立时,是没回收站目录的,只有做过数据删除时才有该目录。
并且在第一次分配给根目录的2号簇装潢目录顶前没有进行过删除操作,那么该目录就会建立在分配给根目录后续簇空间中,面这个簇可以是未分配的任何一个簇,在这种情况下,我们搜索到的就是不是根目录的起始簇了。
“回收站”目录名C搜索删除的文件目录,“E5”开头D搜索已知用户的文件名附.搜索子文件夹“。
”表示当前目录“。
”表示上级目录长文件名目录项建立了个以“abcdefghijklmnopqrstuvwxyz1234567890”命名的文件夹建立以“abcdefghijklmnopqrstuvwxyz1234567890”记事本短文件目录名关于FAT32表刚格式化过的,没文件夹的盘(注:占用了,0,1,2簇,默认的已用,其中2号簇为根目录已占用)有文件的FAT32(注:这个文件从3号簇开始的,内容指向4号簇,表示下一簇内容为4号簇)FAT项定位FA T表中每一项代表相应的一个簇,在WINHEX中可定位一个簇在FA T表中的位置,现定位到2号簇FA T表的位置。
计算FAT大小1.通常FAT1起始于30-40号扇区的位置,就是DBR中的保留扇区数。
解读FAT32文件系统(二)
解读FAT32文件系统(二)接着我们来看看FAT32文件系统特有的长文件名。
结构如下图:为研究方便,先在我的1G的u盘建一个长文件名的文本文件。
如图:文本文件的内容还是:0123456789十个字节,简单明了。
然后用Winhex打开我们的u盘看看根目录区有什么奇迹出现了。
如下图:这样4组32字节数据才表示了一个文件名,是不是很复杂了。
每一个32字节的数据就叫这个文件的子目录项。
按照Microsoft的白皮书,我们来看看这些数字的含义。
与短文件名中文件名的编码不同,长文件名文件的文件名采用的是Unicode 编码,这样一个32字节的目录项里可以存13个字节的文件名字符。
看上图,在字节地址0x001f5480到0x001f5490这32个字节子目录项里,只存了abcdefghijklm这13个字符。
刚好是我建的26个字符文件名的一半。
那放不下的文件名字符就安排在下一个32个字节里面。
于是我们可以在0x001f5460到0x001f5470可以看到nopqrstuvwxyz。
文件的扩展名即txt安排在0x001f5440到0x001f5450。
大家发现没有,按字节地址顺序从0x001f5440到0x001f5490,文件名的排列顺序是txt_nopqrstuvwxyz_abcdefghijklm(注意:为了方便大家看,我加了红色标识的下划线,实际存放中不存在)。
这就是书上说的长文件名按倒序来排列文件名字。
这种排列方式符合小端格式原则,即高字节地址存放高为字节。
既然安排文件名是有前后顺序的。
这样长文件名目录项的开头一个字节专门放这个排列顺序。
看图:我标了红圈圈的位置,这个就是长文件名子目录项排列顺序的编号。
按递推的关系存文件扩展名的0x001f5440到0x001f5450应该是0x03打头才对,我们看到的却是0x43。
这是一个规定就是长文件名子目录项最后一组32字节的顺序是本组数据序号(这里是0x03)和0x40(这个40是长文件名专有)做个与运算的结果,0x03|0x40就是我们看到的0x43了。
FAT32文件系统详细介绍
通过使用DiskEditor对硬盘的分析,现对硬盘的MBR区及FAT32文件系统做一个详细的介绍。
新硬盘->低格后变化:所有扇区中的字节数据填充为0x00低格后->分区后变化:写硬盘的MBR(主引导扇区)区分区后->格式华变化:写硬盘的FAT(文件分配表)区MBR区介绍:起始位置:0柱面0磁头1扇区(硬盘的第一个扇区)结束位置:0柱面0磁头1扇区大小:512(硬盘每个扇区的所占用的字节数)个字节000102030405060708090a0b0c0d0e0f 000000000000000000000000-0000000000000000 000000100000000000000000-0000000000000000………………………………-……………………000001b00000000000000000-0000000000008001 000001c001000c ff ff fe3f00-0000fc8a38010000 000001d00000000000000000-0000000000000000 000001e00000000000000000-0000000000000000 000001f00000000000000000-00000000000055aa000~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(固定值:55aa)现以第一个分区的入口参数为例:80分区状态(80H表示为激活分区,00H表示为非激活分区)01分区的开始磁头0100分区的开始柱面和扇区(0~5位为扇区号、8~15位为柱面号的低8位,6~7位为柱面号的高两位)0c分区的类型(0c表示为FAT32,用LBA方式)ff分区的结束磁头ff fe分区的结束柱面和扇区(表示同开始磁头)3f000000从MBR到第一个分区扇区的扇区个数(一般为硬盘扇区的最大值)fc8a3801分区的总扇区数(可以计算扇区的总大小)FAT区介绍:起始位置:0柱面1磁头0扇区结束位置:根据硬盘参数不同有所不同大小:硬盘的总簇数×4字节FAT区中的BOOT:起始位置:0柱面1磁头0扇区结束位置:0柱面1磁头0扇区大小:512字节000102030405060708090a0b0c0d0e0f 00000000eb58904d5357494e-342e310002082000 000000100200000000f80000-3f00ff003f000000 00000020fc8a3801fc4d0000-0000000002000000 000000300100060000000000-0000000000000000 00000040800029ab0b641500-0000000000000000 000000500000464154333220-2020xx xx xx xx xx xx 00000060xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx …………………………-……………………000001f0xx xx xx xx xx xx xx xx-xx xx xx xx xx xx55aa000~059(60字节)各个参数(参数解释见下面)000~059(420字节)executable code(初始值固定)000~059(2字节)boot record signature(固定值:55aa)现解释各个参数的含义:eb5890跳转代码(固定值:eb5890)4d5357494e342e31OEM名字(固定值:表示MSWIN4.1)0002每扇区的字节数(512)08每簇的扇区数2000保留的扇区数(通常固定为32)02FAT表的个数(通常有2个)0000未使用(固定为0)0000未使用(固定为0)f8介质类型(硬盘为f8)0000未使用(固定为0)3f00每磁道的最大扇区数(硬盘的参数)ff00最大磁头数(硬盘的参数)3f000000分区中隐藏的扇区数(初始化时写入每磁道的最大扇区数)fc8a3801分区中的扇区总数(自己根据硬盘参数计算)fc4d0000每个FAT表占用的扇区数0000Flags(Bits0-4Indiate Active FAT Copy)(Bit7Indicates whether FAT mirroring is enabled or disable<clear is enabled>)(if FAT mirroring isdisabled,the FAT information is only written to the copy indicated by bits0-4)0000FAT32驱动版本(固定值:0000)02000000根目录区的开始簇号(0001两个簇号不使用)0100文件系统信息(后面有相关的说明)扇区所在位置的扇区号(此扇区号为相对位置)0600备份引导扇区所在位置的扇区号(此扇区号为相对位置)000000000000000000000000保留80分区的逻辑驱动号(第一个分区固定为80)00未使用29扩展标识(固定值:29)ab0b6415分区的串号(工控机硬盘为7400e6f0)0000000000000000000000分区的名称(工控机硬盘为4e4f204e414d4520 202020意思为“NO NAME”)4641543332202020FAT名称(固定值:表示“FAT32”)executable code:具体含义不明(应该是用来引导用的代码)FAT区中的文件系统信息区:起始位置:0柱面1磁头1扇区结束位置:0柱面1磁头1扇区大小:512字节000102030405060708090a0b0c0d0e0f 000000005252614100000000-0000000000000000 000000100000000000000000-0000000000000000…………………………-……………………000001e00000000072724161-75901d0044050000 000001f00000000000000000-00000000000055aa000~0031e4~1fd(30字节)各个参数(参数解释见下面)004~1e3(480字节)未知(固定值:00)000~059(2字节)boot record signature(固定值:55aa)现解释各个参数的含义:52526141标识(First Signature)72724161标识(Signture of FSInfo sector)75901d00剩余的簇数(如果设置为ff ff ff ff,表示未知)(工控机硬盘为fc941800)44050000最近一次被分配的簇号(工控机硬盘为02000000)000000000000000000000000保留0000未知FAT区中的未知数据区起始位置:0柱面1磁头2扇区结束位置:0柱面1磁头2扇区大小:512字节000102030405060708090a0b0c0d0e0f 00000000fa660f b64610668b-4e2466f7e1660346 000000101c660f b7560e6603-c233c9668946fc66 00000020c746f8ff ff ff ff fa-668b462c6683f802 000000300f82cf fc663d f8ff-ff0f0f83c5fc660f 00000040a4c210fb5250fa66-c1e010660f ac d010 000000506683e802660f b65e-0d8b f366f7e36603 0000006046fc660f a4c210fb-bb00078b fb b90100 00000070e8be fc0f82aa fc38-2d741e b10b56be d8 000000807d f3a65e741903f9-83c7153b fb72e84e 0000009075d6585a e8660072-ab83c404e964fc83 000000a0------d203c013d2e81800-fa26668b016625ff 00000110------0f a4c210fb8b df b9-0100e8b4fb5a0f82 000001809f fb fb8b da c30000-0000000000000000 000001900000000000000000-0000000000000000 000001a00000000000000000-0000000000000000 000001b00000000000000000-0000000000000000 000001c00000000000000000-0000000000000000 000001d00000000000000000-0000000000000000 000001e00000000000000000-0000000000000000 000001f00000000000000000-00000000000055aaFAT表介绍:起始位置:0柱面1磁道1扇区+保留扇区数+(每个FAT表占用的扇区数×2)结束位置:根据分区情况确定大小:根据分区情况确定000102030405060708090a0b0c0d0e0f 00000000f8ff ff0f ff ff ff ff ff ff ff0f ff ff ff0f 00000010a6000000ff ff ff0f ff ff ff0f ff ff ff0f ……ff ff ff0f ff ff ff0f ff ff ff0f ff ff ff0f 000001f0ff ff ff0f ff ff ff0f ff ff ff0f ff ff ff0f说明:每簇的使用情况用32位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入特定值;已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为FFFFFF0FH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在FAT表中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FCB或索引节点的字段设置及含义,目录管理内容
表15 FAT32长文件目录项32个字节的表示定义 字节偏 移 (16进 制) 字 节 数 7 6 属 性 字 节 位 意 义
定义
保留未用 1表示长文件最 后一个目录项 保留未用
5 4 3 2 1 0
0x0
1
顺序号数值
0x1~0x A 0xB 0xC 0xD 0xE~0x 19 0x1A~ 0x1B 0x1C~ 0x1F
• 根目录区域 • 它是在根目录中存储文件和目录信息的目录表。 在FAT32下它可以存在分区中的任何位置,但是 在早期的版本中它永远紧随FAT区域之后。 • 数据区域 • 这是实际的文件和目录数据存储的区域,它占据 了分区的绝大部分。通过简单地在FAT中添加文 件链接的个数可以任意增加文件大小和子目录个 数(只要有空簇存在)。然而需要注意的是每个 簇只能被一个文件占有,这样的话如果在32KB大 小的簇中有一个1KB大小的文件,那么31KB的空 间就浪费掉了。
字数超过限制!!
呃。。子目录管理的内容被
河蟹
了
ห้องสมุดไป่ตู้
10 1 1 1 12
长文件名unicode码① 长文件名目录项标志,取值0FH 系统保留 校验值(根据短文件名计算得出) 长文件名unicode码②
2
文件起始簇号(目前常置0)
4
长文件名unicode码③
解释
BPB(BIOS 关闭 Parameter Block) (BIOS参数块),描述 逻辑盘结构组成,包 含隐藏扇区数目(从 0-1-1开始计算)、 FAT扇区数、FAT拷贝 数、硬盘磁头总数、 根目录表项最大值等 。
FAT32采用的文件物理结构
文件物理结构
DBR(DOS BOOT RECORD,DOS引 导记录),在每个 逻辑盘的最边前的 一个扇区里。
DPT(Disk Partition Table,磁盘分区表)
MBR(Master Boot Record,主引导记录) :为计算机启动后从可 启动介质上首先装入内 存并且执行的代码,通 常用来解释分区结构。
一个FAT文件系统包括四个不同的部分
• 保留扇区 • 位于最开始的位置。第一个保留扇区是引导区(分区启动 记录)。它包括一个称为基本输入输出参数块的区域(包 括一些基本的文件系统信息尤其是它的类型和其它指向其 它扇区的指针),通常包括操作系统的启动调用代码。保 留扇区的总数记录在引导扇区中的一个参数中。引导扇区 中的重要信息可以被DOS和OS/2中称为驱动器参数块的 操作系统结构访问。 • FAT区域 • 它包含有两份文件分配表,这是出于系统冗余考虑,尽管 它很少使用,即使是磁盘修复工具也很少使用它。它是分 区信息的映射表,指示簇是如何存储的。