一、SD卡FAT32文件系统
二、DBR(DOS BOOT RECORD,DOS引导记录)
1、DBR
【1】0x00~0x02:3字节,"EB5890",跳转指令。
【2】0x03~0x0A:8字节,文件系统标志和版本号,这里为MSDOS5.0。
【3】0x0B~0x0C:2字节,每扇区字节数,512(0X02 00)。
【4】0x0D~0x0D:1字节,每簇扇区数,8(0x08),这个值不能为0,而且必须是2的整数次方,比如1、2、4、8、16、32、64、128。
【5】0x0E~0x0F:2字节,保留扇区数,38(0x00 26),那么就知道FAT1起始位置在38扇区。
【6】0x10~0x10:1字节,FAT表个数为2,另外一个是备份的。
【7】0x11~0x12:2字节,FAT32必须等于0,FAT12/FAT16为根目录中目录的个数;
【8】0x13~0x14:2字节,FAT32必须等于0,FAT12/FAT16为扇区总数。
【9】0x15~0x15:1字节,哪种存储介质,0xF8标准值,可移动存储介质。
【10】0x16~0x17:2字节,FAT32必须为0,FAT12/FAT16为一个FAT表所占的扇区数。
【11】0x18~0x19:2字节,每磁道扇区数,只对于有“特殊形状”(由磁头和柱面每 分割为若干磁道)的存储介质有效,63(0x003F)。
【12】0x1A~0x1B:2字节,磁头数,只对特殊的介质才有效,255(0x00 FF)。
【13】0x1C~0x1F:4字节,EBR分区之前所隐藏的扇区数,0(0x00 00 00 00)。
【14】0x20~0x23:4字节,文件系统总扇区数,3887104(0x 00 3B 50 00),3887104 * 512 = 1990197248 ≈ 1.9GB。
【15】0x24~0x27:4字节,每个FAT表占用扇区数,3789(0x 00 00 0E CD)。
【16】0x28~0x29:2字节,标记,此域FAT32 特有。
【17】0x2A~0x2B:2字节,FAT32版本号0.0,FAT32特有。
【18】0x2C~0x2F:4字节,根目录所在第一个簇的簇号,2。(虽然在FAT32文件系统 下,根目录可以存放在数据区的任何位置,但是通常情况下还是起始于2号簇)。
【19】0x30~0x31:2字节,FSINFO(文件系统信息扇区)扇区号是1,该扇区为操作系统提供关于空簇总数及下一可用簇的信息。
【20】0x32~0x33:2字节,备份引导扇区的位置。备份引导扇区总是位于文件系统的6号扇区。
【21】0x34~0x3F:12字节,用于以后FAT 扩展使用。
【22】0x40~0x40:1字节,与FAT12/16 的定义相同,只不过两者位于启动扇区不同的位置而已。
【23】0x41~0x41:1字节,与FAT12/16 的定义相同,只不过两者位于启动扇区不同的位置而已 。
【24】0x42~0x42:1字节,扩展引导标志,0x29。与FAT12/16 的定义相同,只不过两者位于启动扇区不同的位置而已
【25】0x43~0x46:4字节,卷序列号。通常为一个随机值。
【26】0x47~0x51:11字节,卷标(ASCII码),如果建立文件系统的时候指定了卷标,会保存在此。
【27】0x52~0x59:8字节,文件系统格式的ASCII码,FAT32。
★【28】0x5A~0x1FD:90~509共410字节,引导代码。
【29】0x1FE~0x1FF:签名标志“55 AA”。
★说明:引导代码
FAT文件系统将引导代码与文件形同数据结构融合在一起,FAT32文件系统引导扇区的512字节中,90~509字节为引导代码,而FAT12/16则是62~509字节为引导代码。同时,FAT32还可以利用引导扇区后的扇区空间存放附加的引导代码。一个FAT卷即使不是可引导文件文件系统,也会存在引导代码。
2、DBR参数计算
由以上信息我们知道:
扇区大小:512 Bytes
簇大小:8 Sector = 2048 Bytes
保留扇区数:38 Sector
FAT表占用扇区数:3789 Sector
原文地址:http://www.cnblogs.com/amanlikethis/p/3775902.html