FAT32

    技术2022-05-19  18

    FAT32分区的基本构成:

     

     

    1.DBR

    硬盘各分区的逻辑管理方式表现为,所有分区内的逻辑扇区都是从“0”开始编号,直至其最大值-1,涵盖整个分区,分区内的0扇区称为BOOT区。由Format命令将DOS引导记录(DBR)写到该扇区,主要功能是完成系统的自举。DOS引导扇区结构如下:

    1)跳转指令

    2)厂商标识和DOS版本号,占8个字节(030A

    3BPB(BIOS Parameter BlockBIOS参数块)

    4DOS引导程序,负责完成DOS三个系统文件的装入

    5)结束标专“55AA

     

    硬盘DOS引导记录中BPB参数信息:

     

     

    偏移量

    字节数

    含义

    00H

    3

    跳转到引导代码

    03H

    8

    厂商标识和DOS版本号

    0BH

    2

     

     

     

    BPB参数信息

    每扇区字节数

    0DH

    1

    每簇扇区数(2的整数倍)

    0EH

    2

    保留扇区数(FAT32一般为32

    10H

    1

    FAT个数(通常为2

    11H

    2

    根目录项数(早期版本允许最大目录基数)

    13H

    2

    扇区总数(小卷,小于32MB)(FAT16系统)

    15H

    1

    磁介质描述符(F8表示硬盘)

    16H

    2

    FAT表所占扇区数(小卷,FAT16系统)

    18H

    2

    每磁道扇区数

    1AH

    2

    逻辑磁头数

    1CH

    2

    当前分区前面隐含扇区数(系统隐含扇区)

    20H

    4

    扇区总数(大卷,大于32MB)(FAT32系统)

    FAT32区段

    24H

    4

    每个FAT表所占扇区数(大卷,FAT32系统)

    28H

    2

    标记

    2AH

     

    版本

    2CH

    4

    引导目录第一簇,即根目录的起始簇

    30H

    2

    FS信息扇区,BOOT本身占用的扇区数

    32H

    2

    备份引导扇区的位置

    34H

    7

    保留,一般为00H

    40H

    1

    BIOS设备(从80开始,编号到8586为光驱)

    41H

    1

    未使用

    42H

    1

    扩展引导标记

    43H

    4

    序列号

    47H

    11

    卷标

    52H

    8

    文件系统

     

     

    2.文件分配表(FAT

        是DOS文件管理系统用来记录每个文件的存储位置的表格,它以链的方式存放簇号。FAT紧接着DOS引导扇区存放。磁盘上有两个FAT,一个是基本表,另一个是备份。两个表的内容相同。每个FAT所占用的扇区数取决于DOS版本、分区大小、每簇的扇区数等因素。可查BPB参数查询到。

    簇号的长度由簇的多少决定,进而取决于FAT表项的位数。

     

     

    文件系统

    区别

    表示最大簇数

    簇最大扇区

    分区最大容量

    FAT12

    12位表示一簇

    409612次方)

    64

    128MB

    FAT16

    16位表示一簇

    6553616次方)

    64

    2048MB(2G

    FAT32

    32位表示一簇

    4294967296

    64

    128TB

     

    FAT表中,每一个登记项占用4字节,信息表项值含义如下:

      

    表项值(32位)

    簇描述信息含义

    00000000H

    未使用的簇

    00000002H-FFFFFFEFH

    一个已分配的簇号

    FFFFFFF0H-FFFFFFF6H

    保留

    FFFFFFF7H

    坏簇

    FFFFFFF8H-FFFFFFFFH

    0FFFFFF8H-0FFFFFFFH

    EOF(文件结束簇)

     

     FAT簇登记项中,01号登记项是表头,簇的登记项从2号开始。

     

     

    3.文件目录表FDT

     

    根目录下的所有文件及其子目录在根目录的文件目录表中都有一个“目录登记项”。每个目录登记项用32个字节,提供有关文件和子目录的信息。FAT32文件系统目录项含义:

    (1)0-7字节:文件名(2)8-10字节:文件扩展名(3)11字节:文件属性,按二进制定义,最高二位保留不用,0-5位分别表示只读位、隐藏位、系统位、卷标位、子目录和归档位,当11字节为“0FH”时,表示该项为长文件名记录项。为0x00-读写;0x01-只读;0x02-隐藏;0x04-系统;x08-卷标;0x10-子目录;0x20-归档。(4)12-13字节:(仅长文件目录项有效)用来存储其对应的短文件名目录项的文件名字节校验和。(5)14-15字节:24位二进制文件建立时间,其中高5位为小时,次6位为分钟,再次5位的倍数为秒,最后8位为单位精确到10毫秒的创建秒数。(6)16-17字节:16位二进制文件建立日期,高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期(7)18-19字节:16位二进制文件最新访问日期,同16-17字节。(8)20-21字节:起始簇高16位(9)22-23字节,16位二进制文件最新修改时间,同13-15前16位(10)24-25字节:16位二进制文件最新修改时间,同16-17字节(11)26-27字节:起始簇低16位(12)28-31字节:32位文件字节长度。

    注:

    (1)子目录项,其长度为0,已删除目录项的首字节值为E5H

    (2)文件目录项保存该文件的短文件名,长文件名用若干个长文件名目录项保存,每一项最多保存13个字符内码,首字节指明是长文件名的第几项,11字节为0FH12字节指明类型,13字节为校验和,26,27字节为零。

     

    4、U盘实例(DT101-G2-4G)

     

    由DBR得出如下参数:

     

     

    每扇区字节数:0x0200

    每簇扇区数:0x20 32扇区,16K

    保留扇区数:0x0170

    FAT个数:0x02

    存储介质描述符:0xF8

    逻辑每磁道扇区数:0x003F63

    逻辑磁头数:0x0080

    扇区总数:0x00778000

    FAT表占扇区数:0x00000778

    根目录起始簇:0x00000002

    BOOT占用扇区数:0x0001

    备份引导扇区位置:0x0008 (应该是逻辑扇区号)

     

     

     

    FAT起始扇区 = 保留扇区 + 引导扇区数

                          = 368+1 = 369  (相对扇区号368

     

    FAT共占用0x778*2=0xEF0个扇区

     

     

    ROOT起始扇区 = 保留扇区数 + 引导扇区数 + FAT*2 + (起始簇-2)*32

                            = 0x170 + 0x01 + 0x778*2 +0x02-2*32

                            =0x1061=4193

     

    首先查ROOT的目录登记项,得到其实簇号,再到FAT找到相应簇号,直到簇号为0x0FFFFFFF,表示结束。

     

    如其实簇号为0x00000003,则

     

    DATA起始扇区=保留扇区数 + 引导扇区数 + FAT*2 + (起始簇-2)*32

                          = 0x170 + 0x01 + 0x778*2 +0x03-2*32

                          =4225


    最新回复(0)