原创 FAT12格式资料整理

2010-4-14 13:45 3155 12 12 分类: 软件与OS

http://hi.baidu.com/dancwolf/blog/item/96e6995181a23c868c5430c6.html

转帖

http://www.channel7.cn/2004/12-21/12265.html   FAT文件系统原理(二) 

转帖




###################################

磁盘格式为:FAT12

磁盘容量为:168000H(1474560 => 1.40625MB)

每512字节称为1个扇区

###################################

0000H-01FFH 为FAT引导信息            以55 AA标志结束 长度为200H(512)字节
[第0扇区]


0200H-13FFH 为文件分配表FAT1         起始标志为:F0 FF FF
长度为1200H(4608)字节 [第1-9扇区]

   
用12个二进制位(1.5字节)表示一个簇的状态,最多可管理3072个簇,实际管理2847个簇,有334.5个字节空余。

    FAT每个单元的值以及含义:

    000H 空簇

    002H----FEFH 该簇已被使用,其值为下一个簇的簇号

    FF7H 坏簇

    FF8H----FFFH 该簇已被使用,并且是最后一个簇

    FF0H----FF6H 保留簇


1400H-25FFH 为文件分配表FAT2         起始标志为:F0 FF FF
长度为1200H(4608)字节 [第10-18扇区]

    作为FAT1的备份。原理同上。


2600H-41FFH 根目录区ROOT             文件目录表。长度为1C00H(7168)字节
[第19-32扇区]

    文件目录表中每个文件登记项占用32个字节,一共可以存储224个文件。


数据都是以高位在前,低位在后的方法计算的。

文件名从2600H(9728)开始

文件名之间相差20H(32)字节。


(08字节)
第01-08位是文件名,不足8个用20H填满。其中第01位为00H时,表示此项未用,为E5时表示此项已经删除。

(03字节) 第09-11位是扩展名,不足3个用20H填满。

(01字节) 第12位是文件属性,具体含义是:

    20为归档文件。

    01为只读文件,不能对其进行修改和删除。

    02为隐含,不能用DIR命令进行查找。

    04为系统文件,也不能用DIR命令进行查找。

    10表示此项为子目录,而不是文件。

    28表示此项为磁盘的卷标,即磁盘的名字,不是文件。


(01字节) 第13位     保留字段,没有使用。

(01字节) 第14位     毫秒计数。

(02字节) 第15-16位 建立文件的时间。其中:[时5位 分6位 秒5位*2](二进制位)

(02字节) 第17-18位 建立文件的日期。其中:[年7位+1980 月4位 日5位](二进制位)
0~119分别代表1980~2099

(02字节) 第19-20位 最后访问日期。其中:[年7位+1980 月4位 日5位](二进制位)

(02字节) 第21-22位 首簇号高16位。一般文件太大时会有首簇高位。

(02字节) 第23-24位 文件的修改时间。其中:其中:[时5位 分6位 秒5位*2](二进制位)

(02字节) 第25-26位 文件的修改日期。其中:[年7位+1980 月4位 日5位](二进制位)

(02字节) 第27-28位 文首簇号低16位。件占用的第一个簇号,即起始簇。

(04字节) 第29-32位 文件的长度。


1、结构:2面、80道/面、18扇区/道、512字节/扇区

         扇区总数 = 2面 * 80道/面 * 18扇区/道 = 2880扇区

         存储容量 = 512字节/扇区 * 2880扇区 = 1440 KB


2、物理扇区号:

         2 面: 编号0----1

         80道: 编号0----79

         18扇区:编号1----18


3、相对扇区号:共2880个扇区,相对扇区号范围为 0----2879

编号顺序:

扇区物理号                 相对扇区号

0面,0道,1扇区            0

0面,0道,2扇区            1

0面,0道,3扇区            2

……………………

0面,0道,18扇区           17

1面,0道,1扇区            18

……………………

1面,0道,18扇区           35

0面,1道,1扇区            36

0面,1道,18扇区           53

1面,1道,1扇区            54

……………………

1面,79道,18扇区          2879


文件的大小用字节表示,但在存储的时候却是以簇为分配单元,即一个簇中不能包含两个文件的内容。

也就是说无论一个文件有多小,哪怕它只有一个字节,一旦它占用了一个簇,那么别的文件就不能再写入这个簇了。

也就是说这个簇中其它还未用上的空间就被浪费了。

每个簇由一个或多个扇区构成,对软盘来说,一个簇只有一个扇区,即512字节。

对于硬盘,簇的大小和硬盘分区大小有关,分区容量越大,每个簇的扇区数就越多。

对一个含有5个字节的文件,它在软盘上至少要占用512个字节,在硬盘上会更多。


磁盘存储方式:

文件数据以每 512字节/扇区 写一块。如果数据不足512字节,则剩余部分用00H填充。


如:一个文件的大小为300字节,那么该文件在磁盘里面的储存方式为:前300字节为文件的数据,后(512-300)字节的数据为00H。


当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测FAT中的每个表项
对应的簇中,同


时将该簇号写入文件目录表项相的26-27字节,如文件长度不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如

此直到文件结束,在最后一簇的表项里填上FFF8H,形成单向链表。


当DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件分配表中把该文件占
用的各簇的表项


清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删除,这就是undelete.exe,unerase.exe等一类恢复删除工具能起作用的原
因。


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
12
关闭 站长推荐上一条 /3 下一条