文件分配表
文件分配表是DOS文件組織結(jié)構(gòu)的主要組成部分。我們知道DOS進(jìn)行分配的最基本單位是簇。文件分配表是反映硬盤上所
有簇的使用情況,通過查文件分配表可以得知任一簇的使用情況。DOS在給一個(gè)文件分配空間時(shí)總先掃描FAT,找到第一個(gè)可
用簇,將該空間分配給文件,并將該簇的簇號填到目錄的相應(yīng)段內(nèi)。即形成了“簇號鏈”。FAT就是記錄文件簇號的一張表。
FAT的頭兩個(gè)域?yàn)楸A粲,對FAT12來說是3個(gè)字節(jié),F(xiàn)AT來說是4個(gè)字節(jié)。其中頭一個(gè)字節(jié)是用來描述介質(zhì)的,其余字節(jié)為FFH
。介質(zhì)格式與BPB相同。
第一個(gè)字節(jié)的8位意義:
7 6 5 4 3。病。 0
└─────-┘ │ │ │┌0非雙面
置1 │ │ └┤
│ │ └1雙面
│ │┌0不是8扇區(qū)
│ └┤
│ └1是8扇區(qū)
│┌0不是可換的
└┤
└1是可換的
FAT結(jié)構(gòu)含義
FAT12 FAT16 意義
000H 0000H 可用
FF0H-FF6H FFF0H-FFF6H 保留
FF7H FFF7H 壞
FF8H-FFFH FFF8H-FFFFH 文件最后一個(gè)簇
×××H ××××H 文件下一個(gè)簇
對于FAT16,簇號×2作偏移地址,從FAT中取出一字即為FAT中的域。
邏輯扇區(qū)號=數(shù)據(jù)區(qū)起始邏輯扇區(qū)號+(簇號-2)×每簇扇區(qū)數(shù)
簇號=(邏輯扇區(qū)號-數(shù)據(jù)區(qū)起始邏輯扇區(qū)號)DIV每簇扇區(qū)數(shù)+2
要點(diǎn):(1)FAT反映硬盤上所有簇的使用情況,它記錄了文件在硬盤中具體位置(簇)。
。2)文件第一個(gè)簇號(在目錄表中)和FAT的該文件的簇號串起來形成文件的“簇號鏈”,恢復(fù)被破壞的文件就是根
據(jù)這條鏈。
。3)由簇號可算邏輯扇區(qū)號,反之,由邏輯扇區(qū)號也可以算出簇號,公式如上。
(4)FAT位于DBR之后,其DOS扇區(qū)號從1開始。