什麼是檔案配置表 (FAT)?概念、運作方式、根資料夾
FAT 代表文件分配表,具體來說,是由 MS-DOS 和 Microsoft Windows 操作系統在硬盤上維護的表格,充當目錄,顯示目錄和文件在磁盤上的存儲位置。透過延伸,首字母縮略詞 FAT 也用來指代 MS-DOS 和 Windows 平台的檔案系統本身。
什麼是檔案配置表 (FAT)?
檔案配置表 (FAT) 是電腦檔案系統架構的名稱,以及使用它的業界標準檔案系統系列。FAT檔案系統是一種簡單的檔案系統,最初是為小型磁碟和簡單的資料夾結構而設計的。
FAT 檔案系統以其組織方法命名,即位於磁碟區開頭的檔案配置資料表。為了保護磁碟區,會保留表格的兩個副本,以防其中一個損壞。此外,檔案分配表和根資料夾必須儲存在固定的位置,以便正確定位啟動系統所需的檔案。
FAT格式的主要版本以表元素位數命名:12(FAT12)、16(FAT16)和32(FAT32);這些變體中的每一個仍在使用中。FAT 標準也以其他方式進行了擴展,同時通常保留了與現有軟體的向後相容性。
Windows FAT 檔案系統驅動程式是在
\Windows\System32\Drivers\Fastfat.sys file.
運作方式
FAT 檔案系統是以 FAT 為基礎,這是一種結構,可對應磁碟上儲存檔案和資料夾的叢集位置。FAT 會記錄組成指定檔案的每個叢集的位置,以及儲存檔案的順序。這是必要的,因為檔案通常不會儲存在硬碟上的連續位置,因為磁碟上建立和刪除檔案會導致磁碟碎片。
針對 FAT 磁碟區上的每個檔案,FAT 包含儲存檔案第一個區段的配置單位的進入點,後面接著一系列稱為配置鏈結的連結。配置鏈會指出檔案後續區段所在的位置,然後由檔案結尾 (EOF) 標記終止。
FAT 的兩個複本會保留在磁碟上的固定位置,以提供備援。使用 FAT 檔案系統格式化的磁碟稱為 FAT 磁碟區。檔案資訊儲存在 FAT 磁碟區上的個別叢集大小取決於使用 FAT 格式化的分割區或邏輯磁碟機的大小,如下表所示。
基於相容性理由,無論 FAT 磁碟區位於 MS-DOS 或 Windows 平台上,這些叢集大小都是相同的。在表格中,您會看到在小型 FAT 分割區 (大小低於 15 MB) 上,會使用特殊的 12 位元 FAT 檔案系統,而不是通常的 16 位元 FAT。不同體積大小的 FAT 資訊
磁碟機大小 | FAT Type | 扇區/叢集 | 叢集大小 |
0 MB–15 MB | 12-bit | 8 | 4 K |
16 MB–127 MB | 16-bit | 4 | 2 K |
128 MB–255 MB | 16-bit | 8 | 4 K |
256 MB–511 MB | 16-bit | 16 | 8 K |
512 MB–1023 MB | 16-bit | 32 | 16 K |
1024 MB–2047 MB | 16-bit | 64 | 32 K |
2048 MB–4095 MB | 16-bit | 128 | 64 K |
FAT 體積的結構
下圖說明 FAT 檔案系統如何組織磁碟區。
檔案配置表格包含磁區上每個叢集的下列資訊類型
未使用(0x0000);
檔案正在使用的叢集;
壞叢集 (0xFFF7);
檔案中的最後一個叢集 (FAT12 為 0xFF8-0xFFF;FAT16 為 0xFFF8-0xFFFF;FAT32 為 0xFFFFFF8-0xFFFFFFFF)。
FAT 資料夾結構沒有組織,而且檔案會提供磁碟區上的第一個可用位置。
檔案配置表中的項目定義了檔案和目錄的檔案配置鏈(如圖 2 所示):鏈中的鏈是檔案資料的下一個叢集的索引。檔案的目錄專案儲存檔案的起始叢集,檔案配置鏈的最後一個專案是 FAT16 的保留值 0xFFFF 和 FAT12 的 0xFFF;未使用叢集的 FAT 項目值為 0。如圖 2 所示,FILE1 被指派叢集 2、3 和 4;FILE2 是碎片化的,並使用叢集 5、6 和 8,而 FILE3 僅使用叢集 7。從 FAT 磁碟區讀取檔案可能牽涉到讀取檔案配置資料表的大部分,以周遊檔案的配置鏈結。
圖 2:FAT 檔案配置鏈的範例。
FAT12 和 FAT16 磁碟區的根目錄在磁碟區的開頭預先指派了足夠的空間來儲存 256 個目錄項目,這對可以儲存在根目錄中的檔案和目錄數量設定了上限(FAT32 根目錄沒有預先分配的空間或大小限制)。
FAT 目錄項目為 32 個位元組,並儲存檔案的名稱、大小、起始叢集和時間戳記 (上次存取、建立等) 資訊。如果檔案的名稱是 Unicode 或不遵循 MS-DOS 8.3 命名慣例,則會配置其他目錄專案來儲存長檔案名稱:補充專案位於檔案的主要專案之前。圖 3 顯示了名為「The quick brown fox.」的檔案的範例目錄項目:系統已建立名稱的 THEQUI~1 FOX 8.3 表示形式(也就是說,您在目錄項目中看不到「.」,因為它被假設在第八個字元之後),並使用另外兩個目錄項目來儲存 Unicode 長檔案名稱;圖中的每一行由 16 個位元組組成。
圖 3:FAT 目錄項目。
分割區開機磁區
分割區開機磁區包含檔案系統用來存取磁碟區的資訊。在基於 x86 的計算機上,主開機記錄使用系統分區上的分區開機磁區來載入操作系統內核文件。表 1 說明以 FAT 檔案系統格式化之磁碟區的分割區開機磁區中的欄位。
位元組偏移 | 欄位長度 | 範例值 | 意思 |
---|---|---|---|
00 | 3 bytes | EB 3C 90 | 跳躍 說明 |
03 | 8 bytes | MSDOS5.0 | 文本中的 OEM 名稱 |
0B | 25 bytes | BIOS 參數區塊 | |
24 | 26 bytes | 擴充 BIOS 參數區塊 | |
3E | 448 bytes | 引導程式碼 | |
1FE | 2 bytes | 0x55AA | 扇區 結束標記 |
表 1:分割區開機磁區中的欄位。
FAT 根資料夾
根資料夾包含根目錄中每個檔案和資料夾的專案。根資料夾與其他資料夾之間的唯一區別是根資料夾位於磁碟上的指定位置,並且具有固定大小(硬碟為 512 個條目,軟碟上的條目數量取決於磁碟的大小)。
長檔案名稱
Windows 95 設計人員的使用者體驗目標之一是除了傳統 8.3 檔案名稱 (短檔案名稱,SFN) 之外,還能夠使用長檔案名稱 (LFN,最多 255 個 UTF-16 字碼點長) 。為了回溯相容性,LFN 會使用目錄專案配置方式的因應措施,在現有的 FAT 檔案系統結構之上實作為選擇性延伸模組。
這種在現有 FAT 檔案系統中儲存長檔案名稱而不變更其資料結構的透明方法通常稱為 VFAT(代表「虛擬 FAT」),以 Windows 95 虛擬裝置驅動程式命名。在 Windows NT 中,從 3.5 版開始支援 VFAT 長檔案名稱。未啟用 VFAT 的作業系統仍可不受限制地存取其短檔案名稱別名下的檔案;不過,當在非 VFAT 感知作業系統下複製具有長檔案名稱的檔案時,相關聯的長檔案名稱可能會遺失。
FAT 磁碟區的最大大小
在格式化磁碟區之前,您可以評估要儲存在磁碟區上的檔案類型,以便決定是否要使用預設叢集大小。如果您格式化磁碟區,但未指定叢集大小,則會使用預設值。如果您想要在格式化磁碟區之後變更叢集大小,則必須重新格式化磁碟區。
FAT16 和 FAT32 有下列大小限制:
小於 16 MB 的 FAT 磁碟區會格式化為 FAT12。
大於 2 GB 的 FAT16 磁碟區無法從執行 MS-DOS、Windows 95、Windows 98、Windows Millennium Edition (Me) 和許多其他作業系統的電腦存取。發生此限制是因為這些作業系統不支援大於 32 KB 的叢集大小,這會導致 2 GB 的限制。
理論上,FAT32 磁碟區可以約為 8 TB;不過,Windows Server 2003 可以格式化的 FAT32 磁碟區大小上限為 32 GB。因此,您必須使用 NTFS 來格式化大於 32 GB 的磁碟區。不過,Windows Server 2003 可以讀取和寫入其他作業系統格式化的較大 FAT32 磁碟區。
FAT32 磁碟區的最大可能檔案是 4 GB 減去 1 個位元組。FAT32 在檔案配置表中每個叢集包含 4 個位元組;FAT16 每個叢集包含 2 個位元組;FAT12 每個叢集包含 1.5 個位元組。FAT32 磁碟區必須至少有 65,527 個叢集
FAT16 每個磁碟區最多支援 65,524 個叢集。下表列出 FAT16 大小限制。
FAT16 尺寸限制
描述 | 限 |
---|---|
檔案大小上限 | 測試:4 GB 減去 1 個字節(232 個字節減去 1 個字節) |
磁碟區大小上限 | 測試:4 GB |
每個磁碟區的檔案數 | 約 65,536 (216 個檔案) |
根資料夾內的檔案和資料夾數目上限 | 512 (長檔案名稱會減少根資料夾中可用的檔案和資料夾數目。 |
FAT32 磁碟區必須至少有 65,527 個叢集。Windows Server 2003 可以格式化高達 32 GB 的 FAT32 磁碟區,但它可以掛接其他作業系統所建立的較大 FAT32 磁碟區。下表列出 FAT32 大小限制。
FAT32 尺寸限制
描述 | 限 |
---|---|
檔案大小上限 | 測試:4 GB 減去 1 個字節(232 個字節減去 1 個字節) |
磁碟區大小上限 | 測試:32 GB(實施) |
每個磁碟區的檔案數 | 4,177,920 |
單一資料夾內的檔案和子資料夾數目上限 | 65,534 (使用長檔案名稱可大幅減少資料夾內可用檔案和子資料夾的數目。 |