版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FAT16文件系统格式详细说明 硬盘上的数据按朝气不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。我们来分别介绍一下: (1)MBR区(主引导扇区) MBR(Main Boot Record),按其字面上的理解即为主引导记录区,位于整个硬盘的0磁道0柱面1扇区。不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节(偏移0-偏移1BDH),另外的64个字节(偏移1BEH-偏移1FDH)交给了DPT(Disk Partition Table硬盘分区表)(见下表),最后两个字节"55,AA"(偏移1FEH- 偏移1FFH)是
2、分区的结束标志。这个整体构成了硬盘的主引导扇区。 主引导记录中包含了硬盘的一系列参数和一段引导程序。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序。MBR是由分区程序(如F)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而实现多系统共存。 偏移 长度 所表达的意义 0 字节 分区状态:如0->非活动分区 80-> 活动分区 1 字节 该分区起始头(HEAD) 2 字 该分区起始扇区和起始柱面 4 字节 该分区类型:如82-> Linux Native分区 83->
3、Linux Swap 分区 5 字节 该分区终止头(HEAD) 6 字 该分区终止扇区和终止柱面 8 双字 该分区起始绝对分区 C 双字 该分区扇区数 下面,我们以一个实例让大家更直观地来了解主引导记录: 例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00 在这里我们可以看到,最前面的"80"是一个分区的激活标志,表示系统可引导;"01 01 00"表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;"0B"表示分区的系统类型是FAT32,其他比较常用的有04(FAT16
4、)、07(NTFS);"FE BF FC"表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;"3F 00 00 00"表示首扇区的相对扇区号为63;"7E 86 BB 00"表示总扇区数为12289622。 (2)DBR区 DBR(Dos Boot Record)是操作系统引导记录区的意思。它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它
5、时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以DOS为例,即是Io.sys和Msdos.sys)。如果确定存在,就把其读入内存,并把控制权 交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元的大小等重要参数。 (3)FAT区 在DBR之后的是我们比较熟悉的FAT(File Allocation Table文件分配表)区。在解释文件分配表的概念之前,我们先来谈谈簇(cluster)的概念。文件占用磁盘空间时,基本单位不是字节而是簇。簇的大小与磁盘的规格有关,一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总
6、容量大小有关,可能是4、8、16、32、64 通过上文我们已经知道,同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。硬盘上的文件常常要进行创建、删除、增长、缩短等操作。这样操作做的越多,盘上的文件就可能被分得越零碎(每段至少是1簇)。但是,由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。不过,这种以簇为单位的存储法也是有其缺陷的。这主要表现在对空间的利用上。每个文件的最后一簇都有可能有未被完全利用的空间(称为尾簇空间)。一般来说,当文件个数比较多时
7、,平均每个文件要浪费半个簇的空间。 推荐精选好了,我们言归正传,为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。 由于FAT对于文件管理的重要性,所以FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为"未占用",但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为"坏簇",以后存文件时就不会再使用这个簇了。FAT的项
8、数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见和为读者所熟悉的是FAT16和FAT32,其中FAT16是指文件分配表使用16位数字,由于16位分配表最多能管理65536(即2的16次方)个簇,也就是所规定的一个硬盘分区。 由于每个簇的存储空间最大只有32KB,所以在使用FAT16管理硬盘时,每个分区的最大存储容量只有(65536×32 KB)即2048MB,也就是我们常说的2G。现在的硬盘容量是越来越大,由于FAT16对硬盘分区的容量限制,所以当硬盘容量超过2G之后,用户只能将硬盘划分成多个2G的分区后才能正常使用,为
9、此微软公司从Windows 95 OSR2版本开始使用FAT32标准,即使用32位的文件分配表来管理硬盘文件,这样系统就能为文件分配多达4294967296(即2的32次方)个簇,所以在簇同样为32KB时每个分区容量最大可达65G以上。此外使用FAT32管理硬盘时,每个逻辑盘中的簇长度也比使用FAT16标准管理的同等容量逻辑盘小很多。由于文件存储在硬盘上占用的磁盘空间以簇为最小单位,所以某一文件即使只有几十个字节也必须占用整个簇,因此逻辑盘的簇单位容量越小越能合理利用存储空间。所以FAT32更适于大硬盘。 (4)DIR区(根目录区) DIR(Directory)是根目录区,紧接着第二FAT表(
10、即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。 (5)数据(DATA)区 数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的大部分数据空间。 FAT16 文件系统 The boot sector A boot sector can be found in the first sector of every logical disk. On a floppy disk, the logical disk takes up all of the p
11、hysical disk and the boot sector lives in the first physical sector. On a hard disk, a boot sector lives at the start of each partition. An example boot sec 0000 EB 3E 90 4D 53 57 49 4E-34 2E 30 00 02 20 01 00 .>.MSWIN4.0. . 0010 02 40 03 00 00 F8 FF 00-3F 00 40 00 3F 00 00 00 .?.?. 0020 41 DE 1F
12、 00 80 00 29 37-4B 84 32 46 55 4A 49 54 A.)7K.2FUJIT 0030 53 55 31 32 32 34 46 41-54 31 36 20 20 20 F1 7D SU1224FAT16 . 0040 FA 33 C9 8E D1 BC FC 7B-16 07 BD 78 00 C5 76 00 .3.x.v. 0050 1E 56 16 55 BF 22 05 89-7E 00 89 4E 02 B1 0B FC .V.U.".N. 0060 F3 A4 06 1F BD 00 7C C6-45 FE 0F 8B 46 18 88 4
13、5 |.EF.E 0070 F9 FB 38 66 24 7C 04 CD-13 72 3C 8A 46 10 98 F7 .8f$|r<.F 0080 66 16 03 46 1C 13 56 1E-03 46 0E 13 D1 50 52 89 f.F.V.FPR. 推荐精选0090 46 FC 89 56 FE B8 20 00-8B 76 11 F7 E6 8B 5E 0B F.V. .v. 00A0 03 C3 48 F7 F3 01 46 FC-11 4E FE 5A 58 BB 00 07 .HF.N.ZX 00B0 8B FB B1 01 E8 94 00 72-47 3
14、8 2D 74 19 B1 0B 56 .rG8-tV 00C0 8B 76 3E F3 A6 5E 74 4A-4E 74 0B 03 F9 83 C7 15 .v>.tJNt 00D0 3B FB 72 E5 EB D7 2B C9-B8 D8 7D 87 46 3E 3C D8 .r+.F><. 00E0 75 99 BE 80 7D AC 98 03-F0 AC 84 C0 74 17 3C FF u.t.<. 00F0 74 09 B4 0E BB 07 00 CD-10 EB EE BE 83 7D EB E5 t. 0100 BE 81 7D EB E0
15、33 C0 CD-16 5E 1F 8F 04 8F 44 02 .3.D. 0110 CD 19 BE 82 7D 8B 7D 0F-83 FF 02 72 C8 8B C7 48 .rH 0120 48 8A 4E 0D F7 E1 03 46-FC 13 56 FE BB 00 07 53 H.N.F.V.S 0130 B1 04 E8 16 00 5B 72 C8-81 3F 4D 5A 75 A7 81 BF .r.?Mzu 0140 00 02 42 4A 75 9F EA 00-02 70 00 50 52 51 91 92 .Bju.p.PRQ. 0150 33 D2 F7 7
16、6 18 91 F7 76-18 42 87 CA F7 76 1A 8A 3.vv.Bv. 0160 F2 8A 56 24 8A E8 D0 CC-D0 CC 0A CC B8 01 02 CD .V$. 0170 13 59 5A 58 72 09 40 75-01 42 03 5E 0B E2 CC C3 .YZXr.u.B. 0180 03 18 01 27 0D 0A 49 6E-76 61 6C 69 64 20 73 79 .Invalid sy 0190 73 74 65 6D 20 64 69 73-6B FF 0D 0A 44 69 73 6B stem diskDisk
17、 01A0 20 49 2F 4F 20 65 72 72-6F 72 FF 0D 0A 52 65 70 I/O errorRep 01B0 6C 61 63 65 20 74 68 65-20 64 69 73 6B 2C 20 61 lace the disk, a 01C0 6E 64 20 74 68 65 6E 20-70 72 65 73 73 20 61 6E nd then press an 01D0 79 20 6B 65 79 0D 0A 00-49 4F 20 20 20 20 20 20 y keyIO 01E0 53 59 53 4D 53 44 4F 53-20
18、20 20 53 59 53 80 01 SYSMSDOS SYS. 01F0 00 57 49 4E 42 4F 4F 54-20 53 59 53 00 00 55 AA .WINBOOT SYS.U. Structure of the boot sector offset size meaning 00 3 jumpinstruction 03 8 system name 0b 33 BIOS parameter block 3e c0 bootstrap code fe 2 sector signature Structure of the BIOS paramter block (B
19、PB) offset length meaning 00 0x2 logical bytes per sector 02 0x1 sectors per cluster 03 0x2 number of reserved sectors starting from 0 05 0x1 number of FATs 06 0x2 number of root dir entries 08 0x2 total sectors. 0 if ofs 15h used 0a 0x1 media descriptor 0b 0x2 number of sectors per FAT 0d 0x2 numbe
20、r of logical sectors per track 0f 0x2 number of logical heads 11 0x4 number of hidden sectors 15 0x4 total sectors 19 0x1 physical drive number 推荐精选1a 0x1 reserved 1b 0x1 signature byte for extended boot record 1c 0x4 serial number 20 0xb label 2b 0x8 FAT type values for the example boot sector offs
21、et length meaning 00 0x2 logical bytes per sector 02 0x1 sectors per cluster 03 0x2 number of reserved sectors starting from 0 05 0x1 number of FATs 06 0x2 number of root dir entries 08 0x2 total sectors. 0 if ofs 15h used 0a 0x1 media descriptor 0b 0x2 number of sectors per FAT 0d 0x2 number of log
22、ical sectors per track 0f 0x2 number of logical heads 11 0x4 number of hidden sectors 15 0x4 total sectors 19 0x1 physical drive number 1a 0x1 reserved 1b 0x1 signature byte for extended boot record 1c 0x4 serial number 20 0xb label 2b 0x8 FAT type Check the C source code to define the FAT boot sect
23、or. Structure of a FAT disk disk address length contents 0 1 MBR 1 PhysSectPerTrck - 1 Undefined PhysSectPerTrck 1 Boot sector PhysSectPerTrck+1 NumFATs*NumSectPerFAT FATs BookKeep-SectRootDir SectRootDir Root directory BookKeep LogcDiskSize-BookKeep Data space SectRootDir = RootDirSize / 16 BookKee
24、p = PhysSectPerTrck + 1 + NumFATs * NumSectPerFAT + SectRootDir FAT The FAT is an array of up to 65,536 16-bit unsigned integers. The first 2 and last 16 entries in the FAT are reserved. All other elements are of type: index into the FAT array. Each of the non-reserved FAT entries correspond to a cl
25、uster on the disk. FAT index Meaning as index Meaning as value 0x0000 reserved cluster is available 0x0001 reserved undefined 推荐精选0x0002-0xffef data cluster next cluster in chain is at this index 0xfff0-0xfff6 reserved undefined 0xfff7 reserved bad cluster 0xfff8-0xffff reserved end of the current c
26、luster chain FAT entries 0x0000 and 0x0001 contain other information, usually 0xfff8 and 0xffff respectively. The fragment below is from the start of a FAT FFF8 FFFF 0000 0004 FFFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 The fragment above shows a file using clusters 0x0003 &
27、 0x0004. Folders A folder is a data structure stored on the disk. The root folder is stored before the data area. Other folders are stored in the data area in the same way as files; These folders may grow in size, shrink in size and be stored non-contiguously in the same way as files. The structure
28、of all folders is as an array of folder entries. The end of the folder is marked by a folder entry starting with a 00h byte. Folder entry structure offset length contents 0x00 0x8 name 0x08 0x3 extension 0x0b 0x1 flags 0x0c 0xa reserved 0x16 0x2 time 0x18 0x2 date 0x1a 0x2 first cluter 0x1c 0x4 size
29、 The date field is in DOS date format, and the time field is in DOS time. 第1309篇:范谈Flash文件系统(一) 发布时间:2006年3月18日 点击次数:1282 来源: 作者: 详细内容: 【摘 要】本文主要简单介绍Flash文件系统,文中涉及Flash存储器基本特征,以及怎样利用Flash文件系统实现对Flash存储器的较好的操作管理功能。 【关键字】Flash存储器 Flash文件系统 。Flash存储器Flash文件系统,顾名思义就是采用Flash作为外存储器实现的文件系统。因此,Flash文件系统地实现就
30、必须考虑Flash存储器的特点。Flash存储器由于具有存储容量大、掉电数据不丢失以及可多次擦写等许多优点,正逐步取代其它半导体存储器件而广泛应用于移动电话、PDA以及数码相机等移动电子产品中。其作为存储数据和应用程序的存储体,可以将大量数据方便、快捷地移动和交换。推荐精选Flash内部分为多个存储单元块(block),每个存储单元块又由多个页(page)组成。存储单元块是可擦除的最小单位,页是写入数据的最小单位。Flash存储器读取数据与一般的存储器类似,可以实现随机读取,读出的速度也很快。而Flash存储器的写操作则和一般的存储器有所不同,Flash的写操作必须先按存储块擦除(写入0xff
31、到要擦除的存储单元块中),再按页顺序写入。由于Flash存储器擦除耗时较长,所以Flash存储器写入的时间主要在于Flash存储器内部的擦除操作等。Flash存储器第一块一定是有效块,而其它块可能会在使用前就是坏块或者在使用过程中变成坏块(invalid block)。Flash存储器对内部坏块的判定是,根据其每一个单元存储块中的第3区中的第6 Cloumn内容是否为0xff来定。虽然Flash存储器内容会有坏块,但是由于每一块的内部结构都是相互独立的,所以只要对其状态加以识别,坏块并不影响系统对有效块的操作。第1310篇:范谈Flash文件系统(二) 发布时间:2006年3月18日 点击次数
32、:1523 来源: 作者: 详细内容: .Flash文件系统有了Flash存储器,相应的应该有对应的系统来管理,于是有了Flash文件系统的出现。和常规的文件系统类似,我认为Flash文件系统地提出,至少需要实现以下几个特点:1. 统一管理Flash存储器存储空间,实施存储空间的分配与回收2. 实现文件的按名存取,使用方便,直观3. 向用户提供一个方便使用的接口(提供对文件系统操作命令,以及提供对文件的操作命令4. 优化存储速度和空间利用屏蔽物理因素的影响,如对于坏损单元,采用透明的坏损管理 u Flash文件系统具体如何设计一般来说,整个文件系统应该分为两个层次:最一层,直接和物理硬件接触,
33、管理Flash物理存储器;第二层,在基层之上,实现文件管理,如实现FAT。 u Flash文件系统设计中的注意事项推荐精选2.1第一层(1)物理地址到逻辑地址的映射为了在Flash物理地址和FAT操作的逻辑地址之间建立一个好的映射关系,须对Flash的存储空间在逻辑上进行了重新定义。结合Flash特点,将每个存储单元块内部分成若干物理扇区。具体实现时,每个物理扇区可以分为 基本的数据区 和 其它信息保留区(如安全性)。 确定好扇区的结构和大小之后,物理地址到逻辑地址的映射也就确定了。 (2)可靠性设计一个完善的文件系统需要有良好的可靠性。 笼统的讲,可靠性的实现,需要存储器信息的支持,扇区的信
34、息保留区就可以利用起来。(3)坏块管理由于Flash内部会有坏块,因此Flash存储管理系统需要对Flash进行坏块管理。一般坏块的管理分以下两种情况: 初始坏块处理。Flash存储器在使用前可能会有坏块,而且这些坏块是随机分布的。所以,Flash文件管理系统在系统执行读写操作之前先建立一个坏块表,然后对Flash存储器进行初始化扫描以发现坏块,并将坏块标记为不可用,加入到坏块表中。 操作过程中坏块处理。在擦除或者编程过程中发生错误时,Flash文件管理系统将该块中其它页的数据重新拷贝到一个新的空块中,然后再将该块标记为坏块,加入到坏块表中。在这个处理过程中,由于对Flash的擦除或者编程操作都会使得Flash存储单元块的内容改变,所以Fla
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度养殖场投资风险评估与管理合同3篇
- 二零二五年度宠物运输车辆改装及维护合同4篇
- 二零二五年度城市绿化承建合同标的生态公园建设4篇
- 大数据在知识服务中的应用-深度研究
- 异构数据源集成-深度研究
- 二零二五年度农产品大宗采购品牌推广合同4篇
- 坡屋面施工方案
- 化学农药对果园生态系统的影响分析-深度研究
- 二零二五年度城市基础设施建设项目质量连带责任保证合同3篇
- 2025年度门店承包合同范本:电子产品销售代理授权书4篇
- 建筑结构课程设计成果
- 班级建设方案中等职业学校班主任能力大赛
- 纤维增强复合材料 单向增强材料Ⅰ型-Ⅱ 型混合层间断裂韧性的测定 编制说明
- 习近平法治思想概论教学课件绪论
- 宠物会展策划设计方案
- 孤残儿童护理员(四级)试题
- 梁湘润《子平基础概要》简体版
- 医院急诊医学小讲课课件:急诊呼吸衰竭的处理
- 肠梗阻导管在临床中的使用及护理课件
- 小学英语单词汇总大全打印
- 卫生健康系统安全生产隐患全面排查
评论
0/150
提交评论