FAT12 文件系统格式描述
2011-09-19 22:41
435 查看
一、FAT12 Spec
http://www.disc.ua.es/~gil/FAT12Description.pdf
一些要点描述:
FAT12, "12"是指FAT的条目的长度为12bits
当使用FAT12作为软盘文件系统时:
扇区 - 基本存储单位, 512 Bytes
簇 - 多个扇区组成簇, 对于软盘来说,一个簇中只有一个扇区
整个软盘的结构如下:
Boot Sector + FAT tables + Root Directory + Data Area
对于1.44MBytes的软盘来说,总共有2880个扇区
Boot Sector:位于0号扇区
FAT tables: 由FAT1/FAT2,其中FAT1和FAT2完全相同,共占2 * 9 = 18扇区,从1 ~ 18号扇区
Root Directory: 目录结构区,共占14个扇区,从19 ~ 32号扇区,每条目录占32Bytes,这样,最大能支持14 * 512 / 32 = 224个目录或文件
Data Area:数据区,共2861个扇区,从19 ~ 2879号扇区
二、Boot sector:结构分析
============================================================================================
Offset Length Default
value Data
============================================================================================
0 11 name
11 2 512
Byte
per sector
13 1 1 Sectors
per cluster
14 2 1 Number
of reserved sectors
16 1 2
Number
of FATs
17 2 224 Maximum
number of root directory entires
19 2 2880 Total
sector count
21 1 0xF0 软盘类型,高密度,双面
22 2 9 Sectors
per FAT
24 2 18 Sectors
per track
26 2 2 Number
of heads
28 4 0 Hidden
sector count
32 4 0 Total
sector count for FAT32 (0 for FAT12 and FAT16)
36 2 0 Number
of driver
38 1 0x29 Boot
signature, which indicates the following three fields in the boot sector are present
39 4 Volume
id
43 11 "NO
NAME " Volume
label
54 8 "FAT12 " File
system type(e.g. FAT12, FAT16)
62 ... Data
or Boot code
510 2 0xAA55 Boot
sector flag
============================================================================================
也就是说头部占用62Bytes
如何根据上面的结构计算FAT所在扇区位置:
FAT 起始扇区号 = 保留扇区个数 [28] + 隐藏扇区个数 [14]
FAT1 起始扇区号 = FAT 起始扇区号
FAT2 起始扇区号 = FAT 起始扇区号 + 每个FAT占用的扇区数 [22]
根目录起始扇区号 = FAT 起始扇区号 + 每个FAT占用的扇区数 [22] * FAT 个数 [16]
根目录占用扇区数 = 最大根目录条目数[17] * 32 / 每个扇区的字节数 [11]
数据起始扇区号 = 根目录起始扇区号 + 根目录占用扇区数
三、FAT 结构
Val Meaning
==================================
0x00 Unused
0xFF0-0xFF6 Reserved
cluster
0xFF7 Bad
cluster
0xFF8-0xFFF Last
cluster in a file
others Number
of the next cluster in the file
==================================
一个条目占12 比特
FAT表中的每一条对应一个数据区的一个簇号。。
譬如数据区起始扇区号=33
FAT表的头2个条目为保留
FAT表共有条目数= 每个FAT占用的扇区数 [22] * 每个扇区的字节数 [11] * 2 / 3 = 9 * 512 * 2 /3 = 3 * 1024 = 3072
数据区起始扇区对应的FAT条目索引为2,即第3条条目,而该条目中的值则根据上表来解释。。
数据区的扇区号 = FAT表的索引号 - 2 + 33
四、根目录的结构
每条目录为32Bytes
============================================================================================
Offset Length Description
============================================================================================
0 8 文件名 (如果第一个字节为0xE5,则表示该目录条未使用;如果第一个字节为0x00,则表示,该条目及后面所有的条目都没有被使用)
8 3 文件扩展名
11 1 文件属性
(bit0 - readonly, bit1 - hidden, bit2 - system, bit3 - volume label, bit4 - subdirectory, bit5 - archive, bit6 - unused, bit7 - unused)
12 2 Reserved
14 2 创建时间
16 2 创建日期
18 2 最后访问日期
20 2 Igore
in FAT12
22 2 最后写时间
24 2 最后写日期
26 2 起始簇号
(即对应的FAT表的索引号)
28 4 文件大小(字节为单位)
============================================================================================
注意:
文件名和文件扩展名都不包含NULL结束字符;
五、文件分配举例
三个文件
AAAA.txt 100 bytes
BBBB.txt 1400 bytes
CCCC 目录
ROOT[0].[26] = 3
ROOT[1].[26] = 2
ROOT[2].[26] = 5
FAT[0] = 0xFF8 -> 对应的为目录区
FAT[1] = 0xFFF
FAT[2] = 4 -> BBBB.txt (1) -> 33号扇区
FAT[3] = 0xFF8 -> AAAA.txt -> 34号扇区
FAT[4] = 6 -> BBBB.txt (2) -> 35号扇区
FAT[5] = 0xFF8 -> 目录 -> 36号扇区
FAT[6] = 0xFF8 -> BBBB.txt (3) -> 37号扇区
From:http://blog.sina.com.cn/s/blog_541e0ada0100ltvg.html
http://www.disc.ua.es/~gil/FAT12Description.pdf
一些要点描述:
FAT12, "12"是指FAT的条目的长度为12bits
当使用FAT12作为软盘文件系统时:
扇区 - 基本存储单位, 512 Bytes
簇 - 多个扇区组成簇, 对于软盘来说,一个簇中只有一个扇区
整个软盘的结构如下:
Boot Sector + FAT tables + Root Directory + Data Area
对于1.44MBytes的软盘来说,总共有2880个扇区
Boot Sector:位于0号扇区
FAT tables: 由FAT1/FAT2,其中FAT1和FAT2完全相同,共占2 * 9 = 18扇区,从1 ~ 18号扇区
Root Directory: 目录结构区,共占14个扇区,从19 ~ 32号扇区,每条目录占32Bytes,这样,最大能支持14 * 512 / 32 = 224个目录或文件
Data Area:数据区,共2861个扇区,从19 ~ 2879号扇区
二、Boot sector:结构分析
============================================================================================
Offset Length Default
value Data
============================================================================================
0 11 name
11 2 512
Byte
per sector
13 1 1 Sectors
per cluster
14 2 1 Number
of reserved sectors
16 1 2
Number
of FATs
17 2 224 Maximum
number of root directory entires
19 2 2880 Total
sector count
21 1 0xF0 软盘类型,高密度,双面
22 2 9 Sectors
per FAT
24 2 18 Sectors
per track
26 2 2 Number
of heads
28 4 0 Hidden
sector count
32 4 0 Total
sector count for FAT32 (0 for FAT12 and FAT16)
36 2 0 Number
of driver
38 1 0x29 Boot
signature, which indicates the following three fields in the boot sector are present
39 4 Volume
id
43 11 "NO
NAME " Volume
label
54 8 "FAT12 " File
system type(e.g. FAT12, FAT16)
62 ... Data
or Boot code
510 2 0xAA55 Boot
sector flag
============================================================================================
也就是说头部占用62Bytes
如何根据上面的结构计算FAT所在扇区位置:
FAT 起始扇区号 = 保留扇区个数 [28] + 隐藏扇区个数 [14]
FAT1 起始扇区号 = FAT 起始扇区号
FAT2 起始扇区号 = FAT 起始扇区号 + 每个FAT占用的扇区数 [22]
根目录起始扇区号 = FAT 起始扇区号 + 每个FAT占用的扇区数 [22] * FAT 个数 [16]
根目录占用扇区数 = 最大根目录条目数[17] * 32 / 每个扇区的字节数 [11]
数据起始扇区号 = 根目录起始扇区号 + 根目录占用扇区数
三、FAT 结构
Val Meaning
==================================
0x00 Unused
0xFF0-0xFF6 Reserved
cluster
0xFF7 Bad
cluster
0xFF8-0xFFF Last
cluster in a file
others Number
of the next cluster in the file
==================================
一个条目占12 比特
FAT表中的每一条对应一个数据区的一个簇号。。
譬如数据区起始扇区号=33
FAT表的头2个条目为保留
FAT表共有条目数= 每个FAT占用的扇区数 [22] * 每个扇区的字节数 [11] * 2 / 3 = 9 * 512 * 2 /3 = 3 * 1024 = 3072
数据区起始扇区对应的FAT条目索引为2,即第3条条目,而该条目中的值则根据上表来解释。。
数据区的扇区号 = FAT表的索引号 - 2 + 33
四、根目录的结构
每条目录为32Bytes
============================================================================================
Offset Length Description
============================================================================================
0 8 文件名 (如果第一个字节为0xE5,则表示该目录条未使用;如果第一个字节为0x00,则表示,该条目及后面所有的条目都没有被使用)
8 3 文件扩展名
11 1 文件属性
(bit0 - readonly, bit1 - hidden, bit2 - system, bit3 - volume label, bit4 - subdirectory, bit5 - archive, bit6 - unused, bit7 - unused)
12 2 Reserved
14 2 创建时间
16 2 创建日期
18 2 最后访问日期
20 2 Igore
in FAT12
22 2 最后写时间
24 2 最后写日期
26 2 起始簇号
(即对应的FAT表的索引号)
28 4 文件大小(字节为单位)
============================================================================================
注意:
文件名和文件扩展名都不包含NULL结束字符;
五、文件分配举例
三个文件
AAAA.txt 100 bytes
BBBB.txt 1400 bytes
CCCC 目录
ROOT[0].[26] = 3
ROOT[1].[26] = 2
ROOT[2].[26] = 5
FAT[0] = 0xFF8 -> 对应的为目录区
FAT[1] = 0xFFF
FAT[2] = 4 -> BBBB.txt (1) -> 33号扇区
FAT[3] = 0xFF8 -> AAAA.txt -> 34号扇区
FAT[4] = 6 -> BBBB.txt (2) -> 35号扇区
FAT[5] = 0xFF8 -> 目录 -> 36号扇区
FAT[6] = 0xFF8 -> BBBB.txt (3) -> 37号扇区
From:http://blog.sina.com.cn/s/blog_541e0ada0100ltvg.html
相关文章推荐
- 软盘与FAT12文件系统的组织格式
- FAT12文件系统基本格式
- FAT12文件系统基本格式
- 软盘与FAT12文件系统的组织格式
- fatfs文件系统使用描述
- C# 文件从utf8或系统默认格式转gbk写入新文件(支持有bom和无bom)
- Linux文件系统1:Ext2EXT2格式 块大小为1024字节的话,单一文件最大容量是16GB,块大小为4096字节的话,单一文件最大容量为2TB
- 查看自己linux版本使用的文件系统格式
- tar.xz格式文件的解压方法 - Linux系统管理 - ChinaUnix.net -
- 查看自己linux版本使用的文件系统格式
- Hadoop支持的多种文件系统URI格式
- 期望文件系统格式在“1”到“3”之间;发现格式“4”
- 常见文件系统的格式
- linux下查看磁盘分区的文件系统格式
- activebpel所用文件格式描述
- FAT12文件系统简介
- 求区间最大值---找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小
- 鸟哥linux中对于文件系统的描述
- MSSQL数据库文件可以存放在FAT,NTFS格式的文件系统中,但不能存放到压缩文件里。
- 只有开预置描述文件可被安装到系统偏好设置中