FAT文件系统.doc

FAT文件系统.doc

ID:48475784

大小:1.23 MB

页数:32页

时间:2020-02-04

FAT文件系统.doc_第1页
FAT文件系统.doc_第2页
FAT文件系统.doc_第3页
FAT文件系统.doc_第4页
FAT文件系统.doc_第5页
资源描述:

《FAT文件系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、标签:FAT文件系统FAT文件系统学习MBR:MasterBootRecord(主引导记录)DBR:DOSBootRecord(DOS引导记录,位于分区引导扇区)DPT:DiskPartitionTable(磁盘分区表)BPB:BIOSParameterBlock(BIOS参数块)FAT:FileAllocationTable(文件分配表)Sector:扇区Cluster:簇一、硬盘组织结构下面是一个包含4个分区的硬盘结构示意图,其中分为3个基本分区和一个扩展分区。二、FAT文件系统结构FAT文件系统是由按照如下顺序排列的几个部分组成的:l

2、0–ReservedRegionl1–FATRegionl2–RootDirectoryRegion(FAT32没有这部分)l3–FileandDirectoryDataRegionFAT系统的数据存储采用小端(LittleEndian)方式,注意到这一点很重要,在使用大端(BigEndian)的系统中,读取多字节数据的时候必须要经过转换,否则,读取到的数据是不正确的。三、主引导扇区硬盘主引导扇区=硬盘主引导记录(MBR)+硬盘分区表(DPT)MBR:扇区内偏移地址0~0x1BDDPT:扇区内偏移地址0x1BE~0x1FD,其中又分为4个分

3、区表:第一个分区表:0x1BE~0x1CD第二个分区表:0x1CE~0x1DD第三个分区表:0x1DE~0x1ED第四个分区表:0x1EE~0x1FD每个分区表的信息如下表所示:主引导扇区上面是从一张SD卡读到的主引导扇区信息。可以看出,MBR区域数据全部为0,这张SD卡只有一个分区,这个分区前的扇区数为0x0000003F,所以这个分区的开始位置就是扇区0x0000003F,总扇区数为0x000F1EC1(990913个扇区)。四、分区引导扇区DBR也常常称为启动扇区DBR(DosBootRecorder),Microsoft称它为0扇区

4、(0thsector),通过前面的介绍我们知道,称它为0扇区其实是不正确的,这样容易让人误解它为磁盘的最前面一个扇区,称它为0扇区只是表明它是FAT中扇区的参考点而已。MBR将CPU寻址地址转移给DBR,因此DBR的前3个字节必须是合法的可执行的X86的跳转指令,负责跳过接下来的几个不可执行的字节BPB和扩展BPB。图2:DBR该扇区中包含有我们关注的一个重要数据结构BPB(BIOSParameterBlock)。以下表格内容翻译自Microsoft的《MicrosoftExtensibleFirmwareInitiativeFAT32Fi

5、leSystemSpecification—version1.03》,其中包含BPB各项的描述。NOTE:在以下的叙述中,名字以BPB_开头的属于BPB部分,以BS开头的属于启动扇区(BootSector)部分,实际上并不属于BPB。offset(byte)长度(byte)描述BS_jmpBoot0x003跳转指令,指向启动代码BS_OEMName0x038建议值为“MSWIN4.1”。有些厂商的FAT驱动可能会检测此项,所以设为“MSWIN4.1”可以尽量避免兼容性的问题BPB_BytsPerSec0x0b2每扇区的字节数,取值只能是以下

6、几种:512,1024,2048或是4096。设为512会取得最好的兼容性,目前有很多FAT代码都是硬性规定每扇区的字节数为512,而不是实际的检测此值。但微软的操作系统能够很好支持1024,2048或是4096BPB_SecPerClus0x0d1每簇的扇区数,其值必须是2的整数次方(该整数必须>=0),同时还要保证每簇的字节数不能超过32K,也就是1024*32字节BPB_RsvdSecCnt0x0e2保留扇区的数目,此域不能为0,FAT12/FAT16必须为1,FAT32的典型值取为32,,微软的系统支持任何非0值BPB_NumFAT

7、s0x101分区中FAT表的份数,,任何FAT格式都建议为2BPB_RootEntCnt0x112对于FAT12和FAT16此域表示根目录中最多可容纳的目录的个数(每项长度为32bytes),对于FAT32,此项必须为0。对于FAT12和FAT16,此数乘以32必为BPB_BytesPerSec的偶数倍,为了达到更好的兼容性,FAT12和FAT16都应该取值为512BPB_ToSec160x132早期版本中16bit的总扇区,这里总扇区数包括FAT卷上四个基本分区的全部扇区,此域可以为0,若此域为0,那么BPB_ToSec32必须为0,对于

8、FAT32,此域必为0。对于FAT12/FAT16,此域填写总扇区数,如果该值小于0x10000的话,BPB_ToSec32必须为0BPB_Media0x151对于“固定”(不可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。