FAT FAT FAT 開發商 微軟 微軟 微軟 全名 檔案配置表 檔案配置表 檔案配置表 全名 （12 位元版本） （16 位元版本） （32 位元版本） 釋出 早於 1980 年（微軟 Disk BASIC） 1987 年 11 月 Compaq DOS 331 1996 年 8 月 Windows 95 OSR2 分割槽標識 0x01（MBR） 0x04 0x06 0x0E（MBR） 0x0B 0x0C（MBR） EBD0A0A2B9E5443387C068B6B72699C7（GPT） 結構 FAT12 FAT16 FAT32 目錄內容 表格 表格 表格 檔案配置 連結串列 連結串列 連結串列 壞塊 對含損壞磁區的叢集加以標誌 對含損壞磁區的叢集加以標誌 對含損壞磁區的叢集加以標誌 限制 FAT12 FAT16 FAT32 最大檔案大小 32 MB 2 GB 4 GB 1 byte 2321 最大檔案數量 4077 21219 65517 21619 268435437 22819 最長檔名限制 83 或者 長檔名 255 個字元 83 或者 長檔名 255 個字元 83 或者 長檔名 255 個字元 最大卷大小 32 MB 2 GB 使用 64KB 叢集時可達 4 GB，但非所有系統均支援 2 TB 使用 32KB 叢集時可達 8 TB Features FAT12 FAT16 FAT32 記錄日期 建立、修改、訪問 建立、修改、訪問 建立、修改、訪問 日期範圍 1980 年 1 月 1 日至 2107 年 12 月 31 日 1980 年 1 月 1 日至 2107 年 12 月 31 日 1980 年 1 月 1 日至 2107 年 12 月 31 日 日期解析度 2 s 2 s 2 s 岔流 非原生 非原生 非原生 屬性 唯讀，隱藏，系統，卷標，子目錄，歸檔 Archive（A）位元：檔案建立或更改後會被設成 1，經作業系統內的 backup 做檔案備份後會被設成 0。如只需備份上次備份後有修改的檔案，可藉此位元識別。 唯讀，隱藏，系統，卷標，子目錄，歸檔 Archive（A）位元：檔案建立或更改後會被設成 1，經作業系統內的 backup 做檔案備份後會被設成 0。如只需備份上次備份後有修改的檔案，可藉此位元識別。 唯讀，隱藏，系統，卷標，子目錄，歸檔 Archive（A）位元：檔案建立或更改後會被設成 1，經作業系統內的 backup 做檔案備份後會被設成 0。如只需備份上次備份後有修改的檔案，可藉此位元識別。 透明壓縮 Pervolume Stacker，DoubleSpace，DriveSpace Pervolume Stacker，DoubleSpace，DriveSpace 無 透明加密 Pervolume only with DRDOS Pervolume only with DRDOS 無 檔案配置表（，首字母縮略字：FAT），是一種由微軟發明並擁有部分專利專利申請在於檔案系統中支援長檔名的技術，而不是檔案系統核心本身。 的檔案系統，供 MSDOS 使用，也是所有非 NT 核心的 Windows 系統使用的檔案系統。 FAT 檔案系統考慮當時電腦效能有限，所以未被複雜化，因此幾乎所有個人電腦的作業系統都支援。這特性使它成為理想的軟碟和記憶卡檔案系統，也適合用作不同作業系統中的資料交流。 但 FAT 有一個嚴重的缺點：當檔案刪除後寫入新資料，FAT 不會將檔案整理成完整片段再寫入，長期使用後會使檔案資料變得逐漸分散，而減慢了讀寫速度。zhcn 碎片整理；zhtw 磁碟重組； 是一種解決方法，但必須經常磁碟重組來保持 FAT 檔案系統的效率。 歷史 FAT 檔案系統遵行已用了多年的軟體方法來進行規範。它在 1977 年由比爾蓋茨和馬斯麥當勞為了管理磁碟而發明，並在 1980 年被添彼得遜的 86DOS 作業系統採用。這也是 86DOS 作業系統與 CPM 作業系統最大的不同點，若非此項差異，86DOS 作業系統與 CPM 作業系統幾乎可說完全相同。Duncan Ray（1989）Design goals and implementation of the new High Performance File System Microsoft Systems Journal 4（5） FAT12 初期的 FAT 就是現在俗稱的 FAT12。作為軟碟的檔案系統，它有幾項限制：不支援分層性結構，叢集定址只有 12 位元（這使得控制 FAT 有些棘手）而且只支援最多 32M（216）的分割槽。 當時入門級的磁碟是 525、單面、40 磁軌、每個磁軌 8 個扇區、容量略少於 160KB。上面的限制超過了這個容量一個或幾個數量級，同時允許將所有的控制結構放在第一個磁軌，這樣在讀寫操作時移動磁頭。這些限制在隨後的幾年時間裡被逐步增大。 由於唯一的根目錄也必須放在第一個磁軌，能夠存放的檔案個數就限制在幾十個。 目錄 MSDOS 20 為了支援以內建 10MB 硬碟為特色的 IBM PC XT，因此幾乎與該計算機同時在 1983 年初發布。它引進了層次目錄結構，除了允許更有效率地組織檔案外，目錄允許在硬碟上儲存更多的檔案，這是因為最大檔案個數不再受制於（仍然是固定且有限的）根目錄大小。這個數目現在能夠等同於簇的數目（甚至更大，這是考慮到長度為 0 的檔案並不佔據任何 FAT 簇）。 FAT 本身的格式並沒有改變。PC XT 的 10MB 的硬碟有 4KB 大小的簇。如果後來安裝了一個 20MB 的硬碟，並且使用 MSDOS 20 格式化，最後的簇大小將變為 8KB，硬碟容量將變為 159MB。 FAT16 的開始 在 1984 年，IBM 發布 PC AT，內含一個 20MB 的硬碟。微軟公司也同步釋出了 MSDOS 30。簇集位址增加至 16 位元，允許更大數量的簇（最大 65517），所以有更大的檔案系統大小。但是，最大數量磁區及最大分割區（相當於磁碟）的大小仍是 32MB。所以，儘管技術上已經是 FAT16，這種格式並不是我們今天常見到的這個名字所代表的格式。在 MSDOS 30 格式化一個 20 MB 的硬碟，這硬碟將不能被 MSDOS 20 或之前的版本所存取。當然，MSDOS 30 仍然可存取 MSDOS 20 的格式（8KB 叢集的分割區）。 MSDOS 30 也開始支援高密度 12MB 525 磁碟，最著名的是每個磁軌有 15 個扇區，這樣就允許 FAT 有更大的空間。這或許促進了一個對於簇大小的不確定的最佳化，簇大小從 2 個扇區減到 1 個。這樣做的最後結果是高密度磁碟比舊的雙密度磁碟的速度大幅度降低。 擴充套件分割槽和邏輯驅動器 除了改進 FAT 檔案系統本身的結構之外，另一個提高 FAT 儲存空間的方式是支援多個磁碟分割槽。最初，受限於主引導記錄中檔案分配表的固定結構一個硬碟最多隻能切出多達 4 個分割槽。然而，由於 DOS 設計要求只能有一個分割槽標識為 活動的（Active），它也是主引導程式碼啟動所用的分割槽。使用 DOS 工具不可能建立幾個 主 DOS 分割槽，並且第三方的工具也至少會警告這樣一個機制將與 DOS 不相容。 為了用一種相容的方式使用更多的分割槽，一種新的分割槽型別被開發出來（1986 年 1 月的 MSDOS 32），擴充套件分割槽它實際上是另外稱為邏輯分割槽的一個容器。最初它裡面只允許有一個邏輯分割槽、支援最大 64MB 的硬碟。在 MSDOS 33（1987 年 8 月）這個限制更改到 24 個分割槽；它可能來自於強制性的 CZ：的磁碟命名規則。邏輯分割槽表使用盤上的資料結構來描述，可能是為了簡化編碼它與主引導記錄非常相似，並且它們組織成類似於俄羅斯套娃那樣的結構。一顆硬碟中只能有一個擴充套件分割槽。 在擴充套件分割槽觀念匯入之前，一些硬碟控制器（當時採用獨立的硬碟控制卡，IDE 標準尚未出現）能夠將大硬碟顯示為兩個獨立的硬碟。 最終的 FAT16 1987 年 11 月，我們今天稱之為 FAT 的格式最終到來，它在康柏 DOS 331 中去掉了磁碟扇區的 16 位計數器。這個結果曾經一度被稱為 DOS 331 大檔案系統。儘管看起來磁碟上的變動很小，這個 DOS 的磁碟程式碼都必須檢查並轉換到 32 位的扇區數，由於它完全是 16 位的組合語言這樣一個現實，這項工作就變得非常複雜。 1988 年，這項改進透過 MSDOS 40 得到廣泛應用。現在分割槽大小受限於每個簇的 8 位有符號扇區計數，它最大能達到 2 的 64 次方，對於一個常用的有 32KB 個簇每扇區 512 位元組的硬碟來說，將 FAT16 分割槽大小的 明顯 限制擴充到 2GB。在磁光碟媒體上，它能使用 1 或者 2KB 的扇區，這樣大小限制也就成比例地增大。 後來，Windows NT 透過將每個簇的扇區數當作無符號數將最大的簇大小增加到 64KB。然而這個格式與當時其它任何格式的 FAT 都不相容，並且這樣的操作會產生大量的內部碎片。Windows 98 也支援這種格式的讀寫操作，但是它的磁碟管理工具不支援這種格式。 長檔名（VFAT LFN） Windows 95 設計人員的一個使用者體驗目標就是：除了傳統的 83 檔名以外，在新作業系統中使用長檔名（LFN）。長檔名透過在目錄條目排列時，使用一個工作區來實現（參見下面）。按照 Windows 95VxD 裝置驅動程式的命名規則，這個新擴充的檔案系統通常稱為 VFAT。 有意思的是，VFAT 驅動在早於 Windows 95 的 Windows for Groups 311 中就已經出現，但它僅僅用於實現 32 位檔案訪問，一個繞過 DOS 的視窗自帶高效能保護模式檔案管理系統，它能夠直接使用 BIOS 或者更好的 32 位磁碟訪問，如 Windows 自帶的保護模式磁碟驅動程式。它是一個後門；微軟為 Windows for Groups 311 所作的廣告說 32 位檔案訪問基於 芝加哥專案的 32 位檔案系統。 在 Windows NT 中，FAT 檔案系統對於長檔名的支援從 35 版就已經開始了。在 MSDOS 70 以後的版本中，則可使用類似 DOSLFN 這樣的軟體使得 DIR 等命令顯示出長檔名。 FAT32 為了解決 FAT16 對於卷大小的限制同時讓 DOS 的真實模式在非必要情況下不減少可用常規記憶體狀況下處理這種格式，微軟公司決定實施新一代的 FAT，它被稱為 FAT32，帶有 32 位的簇數，目前用了其中的 28 位。 理論上，這將支援總數達 268435438（228）的簇，允許磁碟容量達到 8TB。 FAT32 隨著 Windows 95 OSR2 釋出，儘管需要重新格式化才能使用這種格式並且 DriveSpace 3（Windows 95 OSR2 和 Windows 98 所帶版本）從來都不支援這種格式。Windows 98 提供了一個工具用來在不丟失資料的情況下將現有的硬碟從 FAT16 轉到 FAT32 格式。在 NT 產品線上對於它的支援從 Windows 2000 開始。 Windows 2000 和 Windows XP 能夠讀寫任何大小的 FAT32 檔案系統，但是這些平臺上的格式化程式只能建立最大 32GB 的 FAT32 檔案系統。Thompson and Thompson（2003）寫道 奇怪的是微軟公司說這種現象是故意設計的 Thompson Robert Bruce and Barbara Fritchman Thompson PC Hardware in a Nutshell 3rd Edition OReilly ISBN 059600513X（p 506 re Microsoft bizarrely saying 32 GB limitation is by design 微軟公司知識庫文章 184006 的確是這麼說的，但是沒有提出任何關於這個限制的合理解釋。Peter Norton 的觀點是 微軟公司在有意地削弱 FAT32 檔案系統 Norton Peter（2002 頁面檔案）。 原微軟開發者 Dave Plummer 於 2024 年 3 月 25 日在 twitter 稱，將 FAT 卷的大小限制在 32GB 是他臨時設定的，相關格式化對話方塊就是他寫的 。 2024 年 8 月 15 日，微軟在 Windows 11 Insider Preview Build 27686 釋出公告中，宣佈取消了 FAT32 分割槽大小限制，使用者可以在命令列中使用 format 命令格式化最大 2TB 的 FAT32 分割槽，但圖形介面的格式化對話方塊仍然只支援 32GB 。 exFAT 在 Windows Embedded CE 60 中引入，Windows XP SP3 以及 Windows Vista SP1 也引入了 exFAT 的支援。在很多方面 exFAT 有了相當大的改進，特別適合用於快閃記憶體。 第三方支援 其它 IBM PC 的可選作業系統，如 Linux、FreeBSD 和 BeOS 都支援 FAT 格式，並且大部分都在相應的 Windows 版本釋出以後很快就支援 VFAT 和 FAT32 格式。早期的 Linux 釋出版本還包括稱為 UMSDOS 的格式，它是儲存在一個獨立的稱為 linux 的帶有 Unix 檔案屬性（如長檔名和訪問許可）的 FAT。UMSDOS 在 VFAT 釋出以後就不再使用。Linux 核心從 257 開始就禁止了這項功能。Mac OS X 作業系統在除啟動盤之外的其它捲上也支援 FAT 檔案系統。 FAT 和其它資料流 FAT 檔案系統本身不是為支援 ADS 而設計的，但是一些高度依賴它們的作業系統創造出了不同的方法以在 FAT 驅動器上處理它們。這些方法或者在額外的檔案或路徑中儲存附加的資訊（Mac OS），或者給那些磁碟資料結構中以前沒有使用的變數賦予新的含義（OS2 和 Windows NT）。第二種設計，儘管想像起來會更有效率，但是它們不能被不認識這種格式的工具複製或者備份；使用不能識別這種格式的磁碟工具（如碎片整理或 CHKDSK）操控這些磁碟時可能會破壞這些資訊。 Mac OS 使用 PC Exchange 儲存不同的資料，檔案屬性和檔名存在一個名為 FINDERDAT 的隱藏檔案中，資源分支（ADS）存在名為 RESSOURCEFRK 的子目錄中，這些資料都存在使用它們的每個目錄中。從 PC Exchange 21 開始，它們將 Mac OS 的長檔名儲存為標準的 FAT 長檔名，並且將超過 31 個字元的 FAT 長檔名轉換為唯一的 31 字元能夠被 Macintosh 應用程式識別的檔名。 Mac OS X 將元資料（資源分支、不同的 ADS、檔案屬性）儲存在與所有人相同並以 _ 開始的名字的隱藏檔案中，並且 Finder 將一些資料夾和檔案元資料存在名為 DS Store 的隱藏檔案中。 OS2 高度依賴於擴充套件屬性（EA）並且將它們存在位於 FAT12 或 FAT16 的根目錄下名為 EA DATA SF 的隱藏檔案中。這個檔案使用以前檔案（或者目錄）的目錄清單中的兩個保留位元組索引。在 FAT32 格式中，這些位元組中存有檔案或者目錄開始簇號的高 16 位，這樣就使它難於在 FAT32 上儲存 EA。擴充套件屬性可以透過 Workplace Shell 桌面、REXX 指令碼、許多系統圖形使用者介面和命令列工具（如 4OS2）來訪問。 Windows NT 支援 HPFS、NTFS 和 FAT 中所有擴充套件屬性的處理（所用處理機制完全類似於 OS2），但是不能處理其它一些存於 NTFS 驅動器的 ADS 資料。試圖從複製帶有與 NTFS 驅動器屬性不同擴充套件屬性的 ADS 到 FAT 驅動器將報告一個警告資訊提示 ADS 將會丟失。 Windows 2000 以後產品的處理類似於 Windows NT 但複製到 FAT32 時它們沒有顯示任何警告資訊直接丟棄擴充套件屬性（但報告其他像 Macintosh Finder Info 和 Macintosh Resource Fork 這些 ADS 引起的警告）。 前景 微軟公司最近獲得了 VFAT 和 FAT32 的專利（但沒有得到最初的 FAT 的專利），這引起了人們對於微軟將會對 Linux OS 釋出和初始化他們產品的媒體廠商收取專利費的擔憂（參見下面的 FAT 授權協議）。儘管最初的裁定不利於微軟公司，但是微軟仍然取得了勝利並且得到了專利授權。 由於微軟公司已經宣佈不再開發基於 MSDOS 作業系統 Windows Me 的後續版本，所以不再有可能會有新版的 FAT。對於大多數用途來說，為 Windows NT 系列開發的 NTFS 檔案系統從效率、效能、安全性及可靠性來說都優於 FAT；它的主要缺點是小容量檔案所佔的額外空間以及除了基於 NT 的 Windows 作業系統之外的很少有其他作業系統支援。由於確切的規範是微軟公司的商業秘密，這就使得使用一個 DOS 軟盤用於恢復目的很困難（根據微軟 MCSE 訓練教材說明此點是刻意保密，以確保 NTFS 檔案系統不易被盜取資料）。微軟公司提供了一個恢復介面來解決這個問題，由於安全的原因它嚴重限制了預設情況下它所能解決的問題。 FAT 仍然是移動媒體所常用的一種檔案系統（CD 和 DVD 是例外），軟碟使用的是 FAT12，其他多數活動媒體用的是 FAT32（如用於數位相機的快閃記憶卡和 USB 隨身碟，Windows 格式化的預設選項仍為 FAT32），除非其容量超出 FAT32 的限制。出於相容性和儲存空間利用率的考慮 FAT 仍然用在這些驅動器上，同時也是由於這些活動媒體上的檔案的許可更容易遇到麻煩而不是更重要這樣一個事實。 Windows 2000 和 XP 支援的 FAT32 格式化的限制是 32GB，這導致使用現代硬碟的使用者必須要麼使用 NTFS 要麼使用其它程式格式化驅動器。一個解決的辦法是使用從 Linux 移植到 Windows 平臺的一個工具 mkdosfs。 設計 主磁碟結構 一個 FAT 分割槽或磁碟的結構佈局 一個 FAT 分割槽或磁碟的結構佈局 一個 FAT 分割槽或磁碟的結構佈局 一個 FAT 分割槽或磁碟的結構佈局 一個 FAT 分割槽或磁碟的結構佈局 一個 FAT 分割槽或磁碟的結構佈局 一個 FAT 分割槽或磁碟的結構佈局 一個 FAT 分割槽或磁碟的結構佈局 內容 主啟動區 檔案系統資訊扇區 僅 FAT32 額外的保留空間 可選 檔案分配表 1 檔案分配表 2 可配置 根目錄 僅 FAT12FAT16 其他所有資料 大小 位元組 保留扇區數 扇區大小 保留扇區數 扇區大小 保留扇區數 扇區大小 檔案分配表扇區數 扇區大小 檔案分配表扇區數 扇區大小 根目錄條目數量 32 按扇區大小向上取整 剩下的磁碟空間 一個 FAT 檔案系統包括四個不同的部分。 保留扇區，位於最開始的位置。 第一個保留扇區是引導扇區（分割槽啟動記錄）。它包括一個稱為基本輸入輸出引數塊的區域（包括一些基本的檔案系統資訊尤其是它的型別和其它指向其它扇區的指標），通常包括作業系統的啟動呼叫程式碼。保留扇區的總數記錄在引導扇區中的一個引數中。引導扇區中的重要資訊可以被 DOS 和 OS2 中稱為驅動器引數塊的作業系統結構訪問。 FAT 區域。它包含有兩份檔案分配表，這是出於系統冗餘考慮，儘管它很少使用，即使是磁碟修復工具也很少使用它。它是分割槽資訊的對映表，指示簇是如何儲存的。 根目錄區域。它是在根目錄中儲存檔案和目錄資訊的目錄表。在 FAT32 下它可以存在分割槽中的任何位置，但是在早期的版本中它永遠緊隨 FAT 區域之後。 資料區域。這是實際的檔案和目錄資料儲存的區域，它佔據了分割槽的絕大部分。透過簡單地在 FAT 中新增檔案連結的個數可以任意增加檔案大小和子目錄個數（只要有空簇存在）。然而需要注意的是每個簇只能被一個檔案佔有，這樣的話如果在 32KB 大小的簇中有一個 1KB 大小的檔案，那麼 31KB 的空間就浪費掉了。 啟動扇區 格式如下 偏移（位元組） 長度（位元組） 說明 0x00 3 跳轉指令（跳過開頭一段區域） 0x03 8 OEM 名稱（空格補齊）。MSDOS 檢查這個區域以確定使用啟動記錄中的哪一部分資料 。常見值是 IBM 33（在 IBM 和 33 之間有兩個空格）和 MSDOS50 0x0b 2 每個扇區的位元組數。基本輸入輸出系統引數塊從這裡開始。 0x0d 1 每簇扇區數 0x0e 2 保留扇區數（包括啟動扇區） 0x10 1 檔案分配表數目 0x11 2 最大根目錄條目個數 0x13 2 總扇區數（如果是 0，就使用偏移 0x20 處的 4 位元組值） 0x15 1 介質描述 0xF8 單面、每面 80 磁軌、每磁軌 9 扇區 0xF9 雙面、每面 80 磁軌、每磁軌 9 扇區 0xFA 單面、每面 80 磁軌、每磁軌 8 扇區 0xFB 雙面、每面 80 磁軌、每磁軌 8 扇區 0xFC 單面、每面 40 磁軌、每磁軌 9 扇區 0xFD 雙面、每面 40 磁軌、每磁軌 9 扇區 0xFE 單面、每面 40 磁軌、每磁軌 8 扇區 0xFF 雙面、每面 40 磁軌、每磁軌 8 扇區 這裡描述的啟動扇區能在如 OS2 13 的啟動盤上看到。早期的版本使用一個較短的基本輸入輸出系統引數塊，它們的啟動程式碼在前面開始（如 OS2 11 中是偏移 0x2b）。 例外情況 Apricot PC 的 MSDOS 所用 FAT 的實現有一個不同的啟動扇區組織以使用計算機與 IBM 不相容的基本輸入輸出系統。跳轉指令和 OEM 名被省略並且 MSDOS 檔案系統引數位於 0x50（在標準扇區中偏移為 0x0B 0x17）。後來的 Apricot MSDOS 版本除了 Apricot 特有的引導區之外也具有了讀寫標準啟動分割槽的能力。 BBC Master 512 上的 DOS Plus 根本就不使用傳統的引導區。資料磁碟省略了引導區並且以一個單份的 FAT 開始（FAT 的第一個位元組用來確定磁碟容量），啟動磁碟使用一個包含啟動呼叫程式的小型 ADFS 檔案系統，後面跟隨一個單份的 FAT。 檔案分配表 一個分割槽分成同等大小的簇，也就是連續空間的小塊。簇的大小隨著 FAT 檔案系統的型別以及分割槽大小而不同，典型的簇大小介於 2KB 到 32KB 之間。每個檔案根據它的大小可能佔有一個或者多個簇；這樣，一個檔案就由這些這些（稱為單向連結串列）簇鏈所表示。然而，這些鏈並不一定一個接著一個在磁碟上儲存，它們經常是在整個資料區域零散的儲存。 檔案分配表（FAT）是對映到分割槽每個簇的條目列表。每個條目記錄下面五種資訊中的一種。 鏈中下一個簇的地址 一個特殊的簇鏈結束符（EOC，End Of Clusterchain，或稱 End Of Chain）符號指示鏈的結束 一個特殊的符號標示壞簇 一個特殊的符號標示保留簇 0 來表示空閒簇 每個版本的 FAT 檔案系統使用不同大小的 FAT 條目。這個大小已經由名字表示出來，例如 FAT16 檔案系統的每個條目使用 16 位表示，32 位檔案系統使用 32 位表示。這個不同意味著 FAT32 系統的檔案分配表能比 FAT16 對映更多的簇，它也允許 FAT32 有更大的分割槽大小。這也使得 FAT32 比 FAT16 更能有效地利用磁碟空間，因為每個驅動器能夠定址更小的簇，這也就意味著更少的空間浪費。 FAT 條目值： FAT12 FAT16 FAT32 描述 0x000 0x0000 0x0000000 空閒簇 0x001 0x0001 0x0000001 保留簇 0x002 0xFEF 0x0002 0xFFEF 0x0000002 0xFFFFFEF 被佔用的簇；指向下一個簇 0xFF0 0xFF6 0xFFF0 0xFFF6 0xFFFFFF0 0xFFFFFF6 保留值 0xFF7 0xFFF7 0xFFFFFF7 壞簇 0xFF8 0xFFF 0xFFF8 0xFFFF 0xFFFFFF8 0xFFFFFFF 檔案最後一個簇 注意 FAT32 只使用 32 位中的 28 位。高 4 位通常是 0 但它們是保留位，不要更改它們。在上面的表中它們用問號表示。 目錄表 目錄表是一個表示目錄的特殊型別檔案（現今通常稱為資料夾）。它裡面儲存的每個檔案或目錄使用表中的 32 位元組條目表示。每個條目記錄名字、副檔名、屬性（檔案、目錄、隱藏、只讀、系統和卷）、建立的日期和時間、檔案／目錄資料第一個簇的地址，最後是檔案／目錄的大小。 除了 FAT12 和 FAT16 檔案系統中的根目錄表佔據特殊的根目錄區域位置之外，所有其它的目錄表都存在資料區域。 合法的 DOS 檔名包括下面一些字元： 大寫字母 AZ 數字 09 空格（儘管結尾的空格被作為填充而不是檔名的一部分） _ 數值 128255 DOS 檔名位於 OEM 字元集。 位於根目錄區域和子目錄區域的目錄條目都是下面的格式： 位元組偏移 長度 描述 0x00 8 DOS 檔名（附加空格） 第一個位元組可以是下面的特殊數值： classwikitable 0x00 這個條目有用並且後面沒有被佔用條目 0x05 最初字元確實是 0xE5 0x2E 點 條目； 或者 0xE5 這個條目曾經被刪除不再有用。取消刪除檔案工具作為取消刪除的一步必須使用一個正常的字元取代它。 長檔名（LFN）使用一個技巧儲存在 FAT 檔案系統上 在目錄表中新增假的條目。這些條目使用一個普通檔案無法使用的卷標屬性標識，普通檔案無法使用是由於它們被大多數舊的 MSDOS 程式忽略。很顯然，一個只包含卷標的目錄被當作空卷，這樣就允許刪除；使用長檔名建立的檔案在從普通的 DOS 刪除就會發生這樣的情形。 校驗和也允許檢驗長檔名是否與 83 檔名匹配；當一個檔案刪除之後使用 DOS 在同一個目錄位置重新建立之後就會出現不匹配現象。校驗和使用下面的演算法計算。（注意 pFcbName 是指向如正常目錄條目中所顯示的檔名的指標，例如前八個字元是檔名，最後三個是副檔名。點是隱含的。檔名中沒有使用的空間將使用空格（ASCII 0x20）補齊。例如，Readmetxt 將記錄為 README TXT。 unsigned char lfn_checksum const unsigned char pFcbName int i unsigned char sum0 for i11 i i sum sum 1 0x80 0 sum 1 pFcbName return sum 舊版的 PCDOS 錯誤地將根目錄中的長檔名當作卷標，這樣它們就會顯示錯誤的卷標。 每個假條目包含 13UTF16 個字元（26 位元組），透過使用包含檔案大小或者時間記錄的區域獲得除了舊的 83 之外的另外 15 個位元組（但是出於安全和磁碟檢查工具的考慮開始簇的區域沒有使用保留值為 0）。參見 83 中另外的解釋。 長檔名條目使用下面的格式： 位元組偏移 長度 描述 0x00 1 序列號 0x01 10 名稱字元（5 個 UTF16 字元） 0x0b 1 屬性（永遠是 0x0F） 0x0c 1 保留（永遠是 0x00） 0x0d 1 DOS 檔名校驗和 0x0e 12 名稱字元（6 個 UTF16 字元） 0x1a 2 第一個簇（永遠是 0x0000） 0x1c 4 名稱字元（兩個 UTF16 字元） 如果一個檔名只包含小寫字母、或者是一個小寫字母的名加上大寫副檔名的混合或者與此相反，沒有特殊的字元並且滿足 83 的限制，在 Windows NT 上就不建立 VFAT 的條目。相反，在目錄條目的偏移 0x0c 處的沒有說明的位用來指示檔名全部或者部分是小寫字母。特別明確的是，位 4 意味著小寫字母的副檔名，位 3 意味著名是小寫字母，這樣就允許如 exampleTXT 和 HELLOtxt 這樣的組合，但是不允許 Mixedtxt 這樣的組合。很少有作業系統支援這種功能。非 NT 的 Windows 版本當這個擴充套件使用時將把檔名當作大寫字母。預設情況下，Linux 的最近版本將認識這個擴充套件但是在寫時並不使用它。 第三方擴充套件 在微軟公司新增長檔名和建立／訪問時間戳之前，其它的作業系統使用目錄表字節 0x0C0x15 儲存其它的元資料。它們包括： 位元組偏移 長度 系統 描述 0x0C 2 RISC OS 檔案型別，0x000 0xFFF 0x0C 1 DOS Plus 使用者定義檔案屬性 F1F4 classwikitable 位 掩碼 描述 7 0x80 F1 6 0x40 F2 5 0x20 F3 4 0x10 F4 FAT 授權 在二十世紀九十年代中期微軟公司申請並獲得了一系列的 FAT 檔案系統核心部分的專利。由於具有廣泛的相容性和易於理解，FAT 經常被選為用於數碼相機和個人數 zhhans 碼；zhhk 碼；zhtw 位； 助理中快閃記憶體的資料交換格式。 2003 年 12 月 3 日微軟公司宣佈使用 FAT 規範和 相關智慧產權 將需要得到 授權，每個銷售單元支付 025 美元的版權費，每個授權協議最多 250000 美元的版權費。 為了這個目的，微軟公司提及了四個關於 FAT 檔案系統的專利作為它的智慧財產權主張的基礎。所有這些與長檔名擴充套件有關的 FAT 首先出現在 Windows 95 中： 訪問使用不同檔名格式的檔名的方法和系統。1992 年 7 月 6 日備案。這包括生成、聯絡一個 83 相容格式的短檔名和長檔名的方法（如 Microsofttxt 和 MICROS1TXT），以及列舉相互衝突的短檔名的方法（如 MICROS2TXT 和 MICROS3TXT）。現在還不清楚這個專利是否覆蓋不具有顯式長檔名能力的 FAT 實現。Unix 檔案系統中的硬連結看起來不是先行者：從長檔名刪除一個 FAT 檔案也將刪除它的短檔名。將一個檔案重新命名為一個 短 檔名也將一致地更改長檔名；同樣，將一個檔案重新命名為 長 檔名也將重新生成一個 短 檔名。在 NTFS 中，硬連結和兩個名字是不同的概念，並且每個硬連結都有兩個名字。最後，在 API 的層面上，當在系統中進行目錄搜尋時兩個檔名都會出現；它們看起來不是兩個獨立的檔案並且它們也沒有有必要去 對映 確定同一個檔案。 長、短檔名公用的名稱空間。1995 年 4 月 24 日備案。這包括將多個連續 83 目錄條目連結在一起支援長檔名的方法，其中一些條目特殊進行標記阻止可能引起混淆地早期的不支援長檔名的 FAT 實現。 公共專利基金會成功地對這項專利發起了挑戰；這個專利申請由於所申請的技術在專利和中的 先期發現 在 2004 年 9 月 14 日被 駁回 。這個決定後來在 2006 年 1 月 10 日被美國專利局所推翻。 長、短檔名公用的名稱空間。1996 年 9 月 5 日備案。它非常類似於 5579517。 公共專利基金會成功地對這項專利發起了挑戰；美國專利商標局基於 the six assignees names were incorrect 在 2005 年 10 月 5 日駁回了這項專利。這個決定也在後來的 2006 年 1 月 10 日被美國專利局推翻。 在作業系統中為長、短檔名提供一個公用的名稱空間的方法和系統。1997 年 1 月 28 日備案。它所申請的內容包括 Windows 95、Windows 98 和 Windows Me 的長檔名提供給它們 MSDOS 相容層所用的方法。它看起來不影響非微軟的 FAT 實現。 許多技術評論斷言這些專利僅僅涵蓋了支援長檔名的 FAT 實現，那些只使用短名字的移動固態媒體和消費裝置將不受影響。 另外，在微軟 2000 年 12 月 6 日出版的 Microsoft Extensible Firmware Initiative FAT 32 File System Specification FAT General Overview of OnDisk Format，微軟公司明確地給出了一些授權，許多讀者將它認為是微軟允許作業系統廠商實現 FAT。 控訴 由於人們廣泛要求重新審查這些專利，公眾專利基金會向美國專利及商標局（USPTO）提出了一些證據爭辯這些專利的有效性，其中包括施樂公司和 IBM 的早期參考資料。美國專利商標局承認這些證據提出了 可專利性的實質性的新問題 並且對於微軟公司 FAT 專利的有效性展開調查。 2004 年 9 月 30 日，美國專利商標局主要基於公共專利基金會所提供的證據駁回了的專利主張。這個基金會的執行總裁 Dan Ravicher 說 現在專利局只不過是確認了我們已經知道了一段時間的事情，微軟公司的專利是假的。 PUBPAT 的新聞釋出會說，微軟公司仍然有機會回應專利局的駁回。有代表性的是第三方的重新審查要求如 PUBPAT 提供的資料成功地減小了專利的範圍或者有 70 的機會完全駁回專利。 2005 年 10 月 5 日，專利局宣佈隨著調查的深入它駁回了專利 5579517 的專利主張，另外它發現專利有錯誤的專利受益人而無效。 最後在 2006 年 1 月 10 日，專利局裁定微軟公司的 FAT 系統的實現特點是 新穎和非顯然的，推翻了早期的兩個非最終裁決。 註解 參見 NTFS 檔案系統的對比 驅動器字母分配 軟體專利 檔案系統列表 Rock Ridge 和 Joliet：象 FAT 上的 VFAT 一樣為 CD 新增長檔名的系統。 外部連結 News article about final patent ruling Microsofts statement on FAT File System Technology and Patent License FAT File System Slashdot discussion on Microsofts claims of FATrelated patents Microsoft Extensible Firmware Initiative FAT 32 File System Specification FAT General Overview of OnDisk Format Understanding FAT32 Filesystems explained for embedded firmware developers Microsofts war on GPL dealt patent setback A Short History of MSDOS，by Tim Paterson Detailed Explanation of FAT Boot Sector Microsoft Knowledge Base Article 140418 At PUBPATs Request Patent Office Rejects Microsofts FAT Patent All Claims of Reynolds 517 Patent Ruled Invalid Volume and file size limits of FAT filesystems Category1977 年軟體 Category 微軟磁碟檔案系統 Category 磁碟作業系統 CategoryWindows 元件