FAT32是分区格式的一种,采用32位的文件分配表,使其对磁盘的管理能力大大增强
当文件删除后写入新资料,FAT不会将档案整理成完整片段再写入, 长期使用后会使档案资料变得逐渐分散,而减慢了读写速度
FAT32分区因为设计缺陷,无法支持超过4GB的单个文件
虽然在安全性和稳定性上比不上NTFS格式,但它有个最大的优点,那就是兼容性好,几乎所有的操作系统都识别该格式
FAT32 文件系统将逻辑盘的空间划分为三部分,依次是引导区(BOOT区)、文件分配表区(FAT区)、数据区(DATA区)。 引导区和文件分配表区又合称为系统区
簇是空间分配和回收的基本单位,即,一个文件总是占用若干个整簇
每簇的使用情况用32位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入特定值;
已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为FFFFFF0FH,如果该簇不是文件的最后一 簇,填入的值为该文件占用的下一个簇的簇号,
这样,正好将文件占用的各簇构成一个簇链,保存在FAT表中
1. /=========================16进制,低位在前,高位在后===============/
2. 以U盘为例,用WinHex软件打开,各字节含义
3. EB 58 90 3字节的跳转指令,跳过下面的BPB和扩展BPB部分
4. 4D 53 44 4F 53 35 2E 30 8字节硬盘分区类型文本字符名,即MSDOS5.0
5. /======================== 25字节的分区参数块======================/
6. 00 02 (0X0200) 2字节表示扇区字节数,512字节(倒序)
7. 08 1字节表示每簇扇区数,每簇8个扇区
8. 60 04 2字节表示保留扇区数,保留1120个扇区
9. 02 1字节表示FAT表个数,2个FAT表
10. 00 00 00 00 4字节未用
11. F8 1字节表示介质类型,F8表示F8表示单面、每面80磁道、每磁道9扇区
12. 00 00 2字节未用
14. 3F 00 2字节表示每磁道扇区数,63扇区
15. FF 00 2字节表示磁头数,255个磁头
16. 3F 00 2字节表示隐藏扇区,63个隐藏扇区
17. 00 00 2字节未用
18. C1 7F 77 00 4字节表示磁盘总扇区数,7831489个扇区(倒序)
19. /=====================合计25字节的分区参数块=======================/
20. /=========================54字节的扩展分区参数块===================/
21. D0 1D 00 00 4字节表示FAT表占用扇区数,FAT表占7632个扇区
22. 00 00 00 00 4字节未用
23. 02 00 00 00 4字节表示根目录入口簇号,根目录从02号簇开始
24. 01 00 2字节表示文件系统信息扇区号,0100即扇区1
25. 06 00 2字节备份引导扇区的位置,6号扇区
26. 000000....000000 12字节未用
27. 80 1字节物理磁盘号,80号磁盘
28. 00 1字节未用
29. 29 1字节扩展引导标志,29即0X29
30. EE 5B 65 58 4字节磁盘序列号,通常为一随机数
31. 4E 4F....20 20 11字节卷标ASCII码,即NO NAME
32. 46 41 54 33 32 20 20 20 8字节文件系统格式ASCII,即FAT32
33. /=====================合计54字节的扩展分区参数块===================/
34. ..... 420字节的分区引导代码
35. 55 AA 2字节的有效扇区结束标志
36. FAT表是用于数据索引和定位的一种链式结构
37. 分区参数信息里的保留扇区,代表当前分区内DBR(包含)到FAT表(不包含)之间的所有扇区的个数,由此可以定位FAT表所在的起始位置偏移
38. 1120*512=573440,故FAT1的起始位置在573440字节处
39. 又可知分区参数信息里的总扇区数,FAT2紧邻FAT1,可以得到FAT2的起始位置偏移
40. 573440+7632*512=4481024,故FAT2的起始位置在4481024字节处
41. 根目录位置不再硬性规定,通常来说根目录起始扇区=保留扇区数+FAT*2+(起始簇-2)*每簇的扇区数
42. 573440+7632*512*2+(2-2)*8=8388608,故根目录的起始位置在8388608处
43. 如果新建的文件只占用一个簇,为其分配簇所对应的FAT表项会被写入结束标记,否则,在其所占用的每个簇对应的FAT表项中写入为其分配的下一簇的簇号,在最后一个簇对应的FAT表项中写入结束标记
44. 目录区的一个目录项占用32个字节
45. /===================短文件32字节意义===========================/
46. 8文件名 3扩展名 1属性字节 1系统保留
47. 1创建时间的10毫秒位 2文件创建时间 2文件创建日期 2 文件最后访问日期
48. 2文件起始簇号的高16位 2文件的最近修改时间 2文件的最近修改日期
49. 2文件起始簇号的低16位 4表示文件的长度
50. /===================长文件32字节意义===========================/
51. 1属性字节 10长文件名unicode码 1长文件名目录项标志,取值OFH
52. 1系统保留 1校验值 12长文件名unicode码
53. 2文件起始簇号 4长文件名unicode码
54.查找文件的方法:FAT每个簇的簇地址用4个字节记录在FAT表中,所有字节位置以4个字节为单位进行划分,0号与1号被系统 保留存储特殊信息,FAT表中个的地址编号,与数据区中的簇号相同。
打开文件磁盘后,最上方的会有一些基本的文件信息,如果没有,勾选工具栏View->show->DirectoryBrowser
根据sector的位置,单击下方的位置信息,调整单位为sector,可以定位到根目录,系统存储信息,以及具体文件的位置