Microsoft が Windows 95 (1995) で FAT16/FAT32 に追加した長いファイル名 (Long File Name、LFN) 対応拡張機能。従来の 8.3 形式 (8 文字 + 3 文字拡張子) の制約を破り、最大 255 文字の Unicode 文字列をファイル名に使用可能とした、現代 Windows・SD カード・USB メモリの標準機能。
VFAT (Virtual FAT) は、Microsoft が Windows 95 (1995) で FAT16/FAT32 ファイルシステムに追加した長いファイル名 (Long File Name、LFN) 対応の拡張機能で、従来の 8.3 形式 (8 文字 + 3 文字拡張子、合計 11 文字) の制約を破り、最大 255 文字の Unicode 文字列をファイル名に使用可能とした、現代 Windows・SD カード・USB メモリの標準機能です。Windows 95 と同時導入され、後方互換性のため 8.3 ショート名を維持しつつ、長いファイル名を別エントリ (LFN エントリ、Volume ID 属性) に格納する巧妙な設計で、MS-DOS や古い Windows 3.x 環境からも 8.3 形式でアクセス可能な互換性を確保しました。Unicode UCS-2 対応で多言語ファイル名・日本語ファイル名・絵文字 (一部) も使用可能、FAT32 (1996)・exFAT (2006) に継承される基盤機能として、46 年の FAT ファイルシステムの寿命を延ばした重要技術です。
| FS | ファイル名 | 長さ | 文字種 |
|---|---|---|---|
| FAT12/16 (8.3) | 8.3 | 11 文字 | ASCII 大文字 |
| VFAT (LFN) | 長いファイル名 | 255 文字 | Unicode |
| FAT32 (VFAT) | 長いファイル名 | 255 文字 | Unicode |
| exFAT | 長いファイル名 | 255 文字 | Unicode |
| NTFS | 長いファイル名 | 255 文字 | Unicode |
| ext4 | 長いファイル名 | 255 バイト | UTF-8 |
mount -t vfat で FAT32/exFAT マウントVFAT は 2026 年現在、Windows・SD カード・USB メモリの標準機能として透過的に動作、エンドユーザーが直接意識する場面は少ないですが、特殊文字・絵文字を含むファイル名でのトラブル時に意識する技術。Windows 11 と macOS/Linux 間で SD カード・USB メモリを共有する際、ファイル名に絵文字 (🎮)・特殊な記号 (✓)・キリル文字・ハングル等を含めると、一部の古いシステム・組み込み機器で文字化けや認識不可となる場合あり、ASCII + 半角英数字 + 日本語ひらがな/カタカナ/漢字までが互換性確保の推奨範囲。Windows のショート名 (~1, ~2) は VFAT の互換性機能の名残、fsutil 8dot3name set 1 でショート名生成無効化可能 (Windows 7+) ですが、互換性のため有効が無難。Linux の mount -t vfat -o iocharset=utf8 でファイル名エンコーディング指定可能、日本語ファイル名トラブル回避に有用。
Q1: VFAT と FAT の違いは? A: FAT (12/16/32) はファイルシステム本体、VFAT はその拡張機能 (長いファイル名対応)。実装的には FAT16/32 + VFAT 拡張がセット。
Q2: ショート名 (~1) は何のため? A: MS-DOS・Windows 3.x 互換性、長いファイル名は LFN エントリ、それらに対応しない古い OS 用にショート名を保持する仕組み。
Q3: 日本語ファイル名は使える? A: VFAT (Unicode UCS-2) で完全対応、Windows・Mac・Linux で読込可能。古い MS-DOS・組み込み機器では文字化けまたは無視される場合あり。