{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-20",
  "slug": "exfat",
  "term": "exFAT",
  "aliases": [
    "extensible File Allocation Table"
  ],
  "definition": "exFAT is a file system in the FAT family that separates cluster-allocation tracking from file cluster-chain traversal.",
  "note": "An Allocation Bitmap records which clusters are unavailable. For a stream with NoFatChain set, FirstCluster and DataLength describe a contiguous allocation and the corresponding FAT entries must be ignored. For an allocated stream with NoFatChain clear, the FAT supplies the chain. An empty file has no cluster chain. The root directory always uses a FAT chain. [exfat-spec]\n\nLinux v6.12 implements both paths: its last-cluster lookup uses arithmetic for a no-chain allocation and traverses FAT links otherwise. A FAT chain can itself describe consecutive clusters. [linux-fat]",
  "related": [
    "exfat-valid-data-length",
    "allocation-bitmap",
    "fat-cluster-chain",
    "file-storage",
    "free-space-fragmentation"
  ],
  "citations": [
    {
      "id": "exfat-spec",
      "title": "Microsoft exFAT specification: sections 3.1.10, 6.3.4.2, 7.1 and 7.6",
      "url": "https://learn.microsoft.com/en-us/windows/win32/fileio/exfat-specification",
      "accessed": "2026-10-20"
    },
    {
      "id": "linux-fat",
      "title": "Linux v6.12: exFAT chain traversal and allocation, fs/exfat/fatent.c",
      "url": "https://github.com/torvalds/linux/blob/v6.12/fs/exfat/fatent.c",
      "accessed": "2026-10-20"
    }
  ]
}
