您好,欢迎访问三七文档
FAT文件系统总结罗流毅xluoly@msn.com目录一、硬盘组织结构.....................................................................................................................-1-二、FAT文件系统结构..............................................................................................................-2-三、主引导扇区.........................................................................................................................-3-四、分区引导扇区.....................................................................................................................-6-五、FAT类型识别....................................................................................................................-10-六、FAT各部分位置的计算....................................................................................................-11-七、FAT表结构........................................................................................................................-12-八、目录结构...........................................................................................................................-13-九、长文件名...........................................................................................................................-18-参考资料...........................................................................................................................................-20-FAT文件系统总结:MasterBootRecord(主引导记录)DBR:DOSBootRecord(DOS引导记录,位于分区引导扇区)BPB:BIOSParameterBlock(BIOS参数块)FAT:FileAllocationTable(文件分配表)Sector:扇区Cluster:簇一、硬盘组织结构下面是一个包含4个分区的硬盘结构示意图,其中分为3个基本分区和一个扩展分区。-1-FAT文件系统总结二、FAT文件系统结构FAT文件系统是由按照如下顺序排列的几个部分组成的:z0–ReservedRegionz1–FATRegionz2–RootDirectoryRegion(FAT32没有这部分)z3–FileandDirectoryDataRegion0SectorMBR+DPT(Sector0)ReserveSecotrsDBRFAT1FAT2DataReserveSecotrsRootDirFAT系统的数据存储采用小端(LittleEndian)方式,注意到这一点很重要,在使用大端(BigEndian)的系统中,读取多字节数据的时候必须要经过转换,否则,读取到的数据是不正确的。例如:一个32-bit数据0x12345678在FAT中的保存方式如下图所示:-2-FAT文件系统总结三、主引导扇区硬盘主引导扇区=硬盘主引导记录(MBR)+硬盘分区表(DPT)MBR:扇区内偏移地址0~0x1BDDPT:扇区内偏移地址0x1BE~0x1FD,其中又分为4个分区表:第一个分区表:0x1BE~0x1CD第二个分区表:0x1CE~0x1DD第三个分区表:0x1DE~0x1ED第四个分区表:0x1EE~0x1FD每个分区表的信息如下表所示:字节位移字段长度字段名和定义0x00BYTE引导指示符(BootIndicator),指明该分区是否是活动分区,0x80=活动分区,0x00=非活动分区0x01BYTE开始磁头(StartingHead)0x026Bits开始扇区(StartingSector),只用了0~5位。后面的两位(第6位和第7位)被开始柱面字段所使用0x0310Bits开始柱面(StartingCylinder),除了开始扇区字段的昀后两位外,还使用了1位来组成该柱面值。开始柱面是一个10位数,昀大值为10230x04BYTE系统ID(SystemID),定义了分区的类型,详见下表0x05BYTE结束磁头(EndingHead)0x066Bits结束扇区(EndingSector),只使用了0~5位。昀后两位(第6、7位)被结束柱面字段所使用0x0710Bits结束柱面(EndingCylinder),除了结束扇区字段昀后的两位外,还使用了1位,以组成该柱面值。结束柱面是一个10位的数,昀大值为10230x08DWORD相对扇区数(RelativeSectors),从该磁盘的开始到该分区的开始的位移量,以扇区来计算0x0CDWORD总扇区数(TotalSectors),该分区中的扇区总数分区表信息-3-FAT文件系统总结空。DOS或windows不允许使用,视为非法5CPriamEdisk1FAT1261SpeedStor2XENIXroot63GNUHURDorSys3XENIXusr64NovellNetware6FAT16分区小于32M时为0x0465NovellNetware7HPFS/NTFS70DiskSecureMult8AIX75PC/IX9AIXbootable80OldMinix0AOS/2BootManage81Minix/OldLinux0BWin95FAT3282Linuxswap0CWin95FAT3283Linux0EWin95FAT16840s/2hiddenC:0FWin95Extended(大于8GB)85Linuxextended10OPUS86NTFSvolumeset11HiddenFAT1287NTFSvolumeset12Compaqdiagmost93Amoeba14HiddenFAT1632MB94AmoebaBBT16HiddenFAT16A0IBMThinkpadhidden17HiddenHPFS/NTFSA5BSD/38618ASTWindowsswapA6OpenBSD1BHiddenFAT32A7NextSTEPHiddenFAT32partitionB7BSDIfs(usingLBA-modeINT13extensions)B8BSDIswap1EHiddenLBAVFATpartitionBESolarisbootpartition24NECDOSC0DR-DOS/NovellDOSsecuredpartition3CPartitionMagicC1DRDOS/sec40Venix80286C4DRDOS/sec41PPCPerpBootC6DRDOS/sec42NTFS动态分区C7Syrinx4DQNX4.xDBCP/M/CTOS4EQNX4.x2ndpartE1DOSaccess4FQNX4.x3rdpartE3DOSr/050OnTrackDME4Speedstor51OnTrackDM6AuxEBBeoSfs52CP/MF1SpeedStor53OnTrackDM6AuxF2DOS3.3+secondarypartition54OnTrackDM6F4SpeedStor55EZ-DriveFELANstep56GoldenBowFFBBT分区标志类型值及其含义含义含义1C类型值(HEX)类型值(HEX)-4-FAT文件系统总结
本文标题:FAT文件系统
链接地址:https://www.777doc.com/doc-5480994 .html