FAT表

檔案分配表FAT(File Allocation Table)用來描述檔案系統記憶體儲單元的分配狀態及檔案內容的前後連結關係的表格(也可以籠統的說成是記錄檔案所在位置的表格)。它對於FAT檔案系統來講是至關重要的一個組成部分,並且它對於硬碟的使用也非常重要,假若丟失檔案分配表,那么硬碟上的數據就無法定位,也就不能使用了。

FAT表類別,FAT表位置,FAT表組成,FAT表的功能,FAT表的使用,

FAT表類別

FAT檔案系統有FAT12、FAT16、FAT32。其所包含的這三種類型皆是由FAT表中每個FAT表項所占長度來分類的,也就是說,FAT12的FAT表中的每個FAT表項占用12位,FAT16中的FAT表每個FAT表項占用16位,FAT32的FAT表中的每個FAT表項占用32位。

FAT表位置

FAT檔案系統將邏輯盤的空間大致劃分為三部分,依次是DBR及保留扇區、檔案分配表區(FAT1、FAT2)、數據區(DATA區)。
FAT檔案系統的整體布局FAT檔案系統的整體布局
DBR只占一個扇區,之後還留有31個保留扇區。檔案分配表區緊跟在DBR及保留扇區後,FAT1的具體地址偏移量為0EH~0FH的兩位元組,FAT2跟在FAT1之後,其地址可以用FAT1的所在扇區號加上每個FAT所占的扇區數獲得。(需要注意的是,FAT16檔案系統只有DBR,占一個扇區,沒有保留扇區。)
FAT表是由格式化程式在對分區進行格式化時創建,具體數量在引導扇區的偏移0x10位元組處FAT1是活動FAT,FAT2是備份FAT[1]。FAT檔案系統一般有兩份FAT表,因為檔案所占用的存儲空間(簇鏈)及空閒空間的管理都是通過FAT實現的,FAT如此重要,保存兩個以便第一個損壞時,還有第二個可用,但對於一些較小的存儲介質允許只有一個FAT表。

FAT表組成

FAT表由FAT表項構成。每個FAT表項的大小有12位、16位、和32位三種情況。每個FAT表項都有一個固定的編號,這個編號從0開始。
FAT表的0號和1號FAT表項有專門的用途。0號FAT表項通常用來存放分區所在的介質類型;1號FAT表項用來存儲檔案系統的骯髒標誌,表明檔案系統被非法卸載或者磁碟表面存在錯誤。
每一個FAT表項都會映射FAT數據區的一個簇中。因為0號FAT表項和1號FAT表項有特殊用途,無法與數據區中的簇形成映射,所以從2號FAT表項開始跟數據區中的第一個簇映射,正因為如此,數據區中的第一個簇也就編號為2號簇,這也是沒有0號簇和1號簇的原因。然後3號簇跟3號FAT表項映射,4號簇跟4號FAT表項映射,以此類推,直到數據區中的最後一個簇。

FAT表的功能

  1. 表明分區所在介質類型。
  2. 表明一個檔案所占用的各簇的簇鏈分配情況。每個簇在FAT表中映射一個FAT項,FAT項以指針的方式記錄檔案的簇鏈。
  3. 標明壞簇和可用簇。壞簇是在格式化過程中,由格式化程式發現並記錄在相應的FAT表項中。在一個簇中,只要有一個扇區有問題,該簇就不能使用。以FAT16為例,如果分區格式化時發現壞扇區,即在相應簇的表項中寫入FFF7H,表明該簇的扇區不能使用,系統就不會將它分配給用戶檔案。

FAT表的使用

如果一個FAT表項為非零,則表示這個簇已被分配使用。一個非零的FAT表項可能會是一個檔案的下一個簇號,也有可能是一個好的檔案的結束標記,或者是一個壞簇標記。如果要找一個檔案的下一個簇,只需要查看該檔案的目錄項中描述的起始簇號所對應的FAT項,如果該檔案只有一個簇,則此處的值為一個結束標記;如果該檔案不只一個簇,則此處的值是它下一個簇的簇號。
FAT表中每個FAT項可取的表項值及其含義FAT表中每個FAT項可取的表項值及其含義
對於FAT表項的管理,以FAT16檔案系統的為例,其FAT表項是16位的,也就是每個FAT項占2個位元組。16位的FAT表項項最多管理65535個簇。在Windows 2000系統之前簇大小最大為64個扇區(32KB),這樣,採用FAT16作業系統最多能管理32*65535=209120KB=2048MB=2GB的分區。對於容量超過2GB的硬碟,必須將其劃分成多個不超過2GB的分區。從Windows 2000系統開始,簇大小可以達到128個扇區(64KB),FAT16檔案系統就可以管理4GB的分區了,但這種分區在Windows 2000之前的系統不可訪問。

相關詞條

熱門詞條

聯絡我們