打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
图文并茂 SD/TF卡 FAT文件系统彻底剖解(二)

这一节我将剖析一张32MB的TF卡,其内部文件系统FAT数据的构建,希望能让大家对FAT有更深入的了解。


     首先是将SD卡彻底格式化,而为何不用快速格式化。这个问题后面在说明。


     此时可以看到一张SD卡盘符,及其属性如图1


图1



      从图1我们可以得到这样一些信息 ,此盘容量为28.9MB,已用空间为0,可用空间28.9MB。


      下面我们用WinHex打开此盘,分析具体的数据。如图2所示


图2



    从图2我们可以得到这些信息:


 


              1.   此SD卡     容量为29.2MB,   即  30605312 B


                                   使用量为0B


                                   空闲为28.9MB



                         共59272簇,簇大小为 一个扇区,即512B


                                   共59272个扇区,扇区大小为512B


               2.  此SD卡被分成了6个部分:


  Boot sector       DBR区(DOS BOOT RECORD)即操作系统引导记录区 


                 扇区开始于 第 0 扇区       结束于  0 + (4KB *1024) /512 –1          =7             大小4KB       即 8个扇区


 FAT1      扇区开始于 第 8 扇区       结束于  8 + (116KB *1024) /512 –1      =239          大小116KB    即 232个扇区


 FAT2      扇区开始于 第 240 扇区    结束于  240 + (116KB *1024) /512 –1  =471          大小116KB    即 232个扇区


 ROOT directory 根目录区       


                扇区开始于 第 472 扇区    结束于  472 + (16KB *1024) /512 –1    =503          大小16KB      即 32个扇区


  Free space        


                扇区开始于 第 504 扇区    结束于  504 + (30347264) /512 –1       =59775      大小28.9MB   即 59272个扇区


  idle space          无


                 扇区总数为 59776, 即 59776×512 =30605312B =29.1875 MB      符合此盘的容量


            下面双击Boot sector 区,可以看到图3


图 3     


   



            从图 3 可以看出此DBR区共有 4KB,  数据具体代表的含义请参照上一节的相关图片与表(如表2)分析。这里就不重复了,直接列出从DBR中获取的信息。



     1. 本U盘的扇区大小为512字节



     2. 每簇扇区数为1,也就是说U盘共有 59776簇。



     3. 保留扇区数为8个,也就是说U盘在FAT开始之前仅有一个引导扇区。



     4. 有2个FAT表, 每个占用(0xE8)232个扇区。



     5. 本U盘共有 59776个扇区,总容量为 29.1875 MB 。



     6. 每道扇区63个,磁头255个,无隐藏扇区。


            下面打开FAT1区的数据,如图4


图 4



  FAT表实际上是一个数据表,以2个字节为单位,我们暂将这个单位称为FAT记录项,从图4中,可以知道,前两个记录项(即前四个字节)是0xFFFFFFF8,它是FAT表的标志,通常情况,第1、2个记录项用作介质描述。从第三个记录项开始记录除根目录外的其他文件及文件夹的簇链情况.


     主要此处FAT1的地址为偏移地址,也就是相对于FAT1表的起始地址的偏移,而不是实际的地址。图5才是它在SD卡中的实际地址


图5




                                         地址范围  0x0000 1000 ----0x0001 DFFF    大小为 0x1D000 =116KB


                同样,FAT2只是作为FAT1的一个备份,所以其内容与FAT1完全一样,唯一不同的是他们的分配地址不同,FAT2的地址见图6


图 6



                                   地址范围  0x0001 E000 ----0x0003 AFFF    大小为 0x1D000 =116KB


                 下面打开根目录区,如图 7


图 7



                                         地址范围  0x0003 B000 ----0x0003 EFFF    大小为 0x4000 =16KB


                                 此根目录下没有任何文件,除了橙色圈出的盘符名称占据了32自己外,其余数据都为0.


         接下来是数据区,如图8


图 8


 


                                         地址范围  0x0003 F000 ----0x01D2 FFFF    大小为 0x1CF0FFF =29635KB =28.94MB


                                 此数据区没有任何文件数据。 


 


                          接下来,我们往SD卡存入一个ReadMe.txt文件,看看几个区中的数据都有什么变化。


                          存入文件后,从电脑 上看到的信息如 图9


  图 9       



 


                                             


        接下来,再次用WinHex 打开此SD卡,看到的信息如图 10


图 10



     与空盘(图2)对照着看,红色部分为改变的数据,此时SD卡使用了0.5KB,且多了一个ReadMe.txt 的 文 件。


     DBR区的数据没有任何变化。接下来开FAT1的数据变化,如图 11


图 11



                       仅多了一个 FF FF 数据,表示文件仅占用了一个扇区。


                       而 FAT2区的数据跟FAT1完全一样,如图12


图 12



           下面是根目录区,如图13


图13



    新增信息的内容含义,请具体看上一节的相关信息。这里就不再重复了。


   数据区已经在其偏移的第一扇区,增加了文件的内容信息,如图14


图14


 


        到此,加入一个文件后,SD开内各扇区所发生的变化,就已讲述完毕,请对照着前后图片分析。


 


       对于快速格式,与彻底格式化的区别,  我也实际用此SD卡试过。个人理解为,快速格式化仅是将DBR区,FAT1区, FAT2区,根目录格式化,而数据区的所有扇区数据依然保留在原有的地方,每次写入新数据时,SD卡再根据需要擦除相应的扇区。但彻底格式化SD卡是,除了前面介绍的扇区需要格式化为,连所以的数据扇区都将格式化,所以比较耗时。



 


      到此,关于我个人理解的FAT的构架信息,就已经讲完了,都比较浅显,主要是针对初学者,有一个比较直观的认识,如果对大家有所启发,还望不吝赐教,共同进步!


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
FAT32文件系统解析
基于FAT32文件系统的SD卡向Nand Flash中拷贝数据
图解电脑硬盘维修及数据恢复11
硬盘的基本知识!高手必备
硬盘 FAT 文件系统原理的详细分析
FAT32与FAT16文件系统的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服