FAT32文件系统

本文详细介绍了FAT32文件系统的特性,包括其分区格式、管理能力、设计缺陷及兼容性优势。深入探讨了FAT32的逻辑结构,如引导区、文件分配表区和数据区,并解释了簇的分配原则。通过WinHex软件,以U盘为例,展示了FAT32分区参数的具体含义,包括扇区字节数、簇大小、保留扇区数等,以及如何计算FAT表和根目录的起始位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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,可以定位到根目录,系统存储信息,以及具体文件的位置
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值