FATとexFATの違いTech TIPS

exFATは、FATをベースにして、より大きなボリュームサイズやファイルサイズをサポートした、パーソナルストレージ向きのファイルシステムだ。NTFSよりもシンプルで実装しやすく、SDXCメモリカードやデジタル機器などでのサポートも進んでいる。FATとの具体的な違いをまとめる。

» 2013年07月29日 17時31分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows Vista / Windows 7 / Windows 8 / Windows Server 2008 / Windows Server 2008 R2 / Windows Server 2012


解説

 Windows OSで利用できるファイルシステムにはFAT(File Allocation Table)NTFS、exFAT、ReFSなどさまざまなものがある。Windows OSで現在一番広く使われているファイルシステムはNTFSだが、リムーバブルデバイス(特にUSBメモリや、SDカードのようなメモリカード)ではまだFATがよく使われている。

 FATファイルシステムは非常にシンプルなアーキテクチャを持ち、PC以外でもさまざまな機器(デジカメやICレコーダー、音楽プレーヤー、携帯電話など)で利用できる。しかしもともとは30年以上も前に開発されたものをベースにしているため、大容量のメモリカードやUSBメモリデバイスの普及により、限界も見えてきた。そこで新しくexFATというファイルシステムが開発され、普及し始めている(64GB以上のSDXCカードはあらかじめexFAT形式でフォーマットされて出荷されている)。本TIPSではFATとexFATの違いについてまとめておく。これ以外のNTFSやReFSの違い、ファイルシステムごとのファイルサイズの制限などについては、以下のTIPSも参照していただきたい。

●exFATとは

 「exFAT(extended FAT)」とは、FATファイルシステムをベースに、主に大容量サポートとパフォーマンス改善を目的に開発された、パーソナルストレージ向けの新しいファイルシステムである(古い資料では「FAT64」と記述されていることもあった)。従来のFATでは、サポートされているディスク(ボリューム)サイズは最大32GB(OSによっては最大128GBまで作成できる)という制限があり、大容量化している現在のストレージデバイスの機能を引き出すことができなかった。またFATではファイルサイズが最大4GBという制約もあり、例えば大きくなりがちなビデオファイルを1ファイルにして扱うこともできなかった(ビットレートが25Mbit/sの動画ビデオなら、20分ほどで4GBに達する)。これらの問題を解消し、さまざまな改良を施したのがexFATである。主な特長を次に示す。

  • 最大ボリュームサイズの拡大。理論的には最大で2の64乗セクタまでサポートするが、現在の実装では256TBまでの容量をサポート
  • 最大ファイルサイズは2の64乗bytesまでサポート。4GBを超えるファイルも分割することなく記録可能
  • クラスタサイズの拡大によるアクセスパフォーマンスの改善。(現在の実装では)最大32MBまでのクラスタサイズをサポート
  • (従来のファイル割り当てテーブルだけでなく)空き領域ビットマップも使って、高速な空きクラスタ管理や高速な削除処理を実現(ファイルの削除ではFATを更新せずに、空き領域ビットマップを更新するだけ)
  • ハッシュ値を使った高速な名前検索の実現
  • 意図しないデバイスの取り外しなどが起こっても、(FATよりも)障害を起こしにくくなるような内部処理の実装
  • FATファイルシステム並みの簡単な実装で取り扱える(NTFSよりも実装は容易で、パーソナルストレージにとっては十分な機能を装備)

 ただしFATと名前は付いているが、実際にはexFATは従来のFAT16やFAT32と互換性はない。FATしかサポートしていない機器ではexFATを使うことはできない。

 exFATは、もともとはWindows CE用に開発されたものであるが、現在ではWindows Vista SP1以降のWindows OSで利用できる。Windows XP SP2/SP3およびWindows Server 2003 SP2では、以下のWebページで配布されているパッケージを追加インストールすれば利用できる。

 以下にFATとexFATの仕様の違いを示しておく。

機能 FAT exFAT (参考)NTFS
最大ファイルサイズ(理論値) 2の32乗−1bytes(4GB) 2の64乗−1bytes(16EB) 2の64乗−1bytes(16EB)
クラスタサイズ 512/1K/2K/4K/8K/16K/32K/64KB 512/1K/2K/4K/8K/16K/32K/64K/128K/256K/512K/1M/2M/4M/8M/16M/32MB(理論上は2の255乗セクタまで可能) 512/1K/2K/4K/8K/16K/32K/64KB
デフォルトクラスタサイズ ボリュームサイズによって可変。詳細は「NTFS、FAT、または exFAT のデフォルトのクラスター サイズ」(マイクロソフト サポート技術情報)参照
最大ボリュームサイズ FAT12:32MB
FAT16:2G/4GB
FAT32:32GB
Windows 9x/Meでは128GBまでのFAT32ボリュームを作成可能
FAT32の理論上の最大サイズは2TBまで
理論上は2の32乗クラスタまで/実装上は256TBまで 理論上は2の64乗bytes(16EB)まで/実装上は256TBまで
最大クラスタ数 4087(FAT16)/65,526(FAT16)/4,177,918(FAT32)
FAT32の理論上の最大サイズは2の32乗クラスタまで
理論上は2の32乗クラスタまで 理論上は2の64乗クラスタまで/実装上は2の32乗クラスタまで
ファイル圧縮 × ×
ファイル暗号化 × ×
BitLockerによるボリューム全体の暗号化
フロッピーサポート FAT12 × ×
リムーバブルデバイスサポート
トランザクション処理 × ×(現状では未実装。将来追加される可能性がある)
アクセス制御リスト(ACL) × ×(現状では未実装。将来追加される可能性がある)
最大パス名 255文字 255文字 255文字
大文字/小文字の区別 なし なし 可能(デフォルトではオフ)
ファイルの作成日時属性 ○(0.01秒単位) ○(0.01秒単位)
ファイルの更新日時属性 ○(偶数秒のみ記録) ○(0.01秒単位)
ファイルの最終アクセス日時属性 日付情報のみ(時刻情報はなし) ○(偶数秒のみ記録) ○(Windows Vista/Windows Server 2008以降は、デフォルトでは最終アクセス時刻は記録しない。TIPS参照)
8.3形式の短縮名サポート ×
リパースポイント × ×
ジャンクション × ×
ハードリンク × ×
シンボリックリンク × ×
スパースファイル × ×
マウントポイント × ×
代替ストリーム × ×
サポートOS 全てのWindows OS Windows Vista SP1/Windows Server 2008以降 全てのWindows OS
Windows OSのインストール用 不可 不可
Windows OS標準のデフラグツール 適用可能 適用不可 適用可能
FATとexFATの仕様
Windows XP以降のWindows OSを対象にまとめてみた。なお一部の値は実装依存であり、Windows OSのバージョンによって変わることがある。特に記述のない限り、Windows 8/Windows Server 2012での制限値を示す。以下の情報も参照のこと。
File System Functionality Comparison[英語](MSDNサイト)

●ボリュームをexFAT形式でフォーマットする

 ボリュームをexFAT形式でフォーマットするには、単にボリュームを選択して右クリックし、ポップアップメニューから[フォーマット]を選択すればよい。ファイルシステムとして「exFAT」を選択し、必要なら[アロケーション ユニット サイズ]でクラスタサイズを選択できる。

exFAT形式でフォーマットする exFAT形式でフォーマットする
これはWindows 8でUSBメモリをフォーマットしようとしているところ。
  (1)ファイルシステムとして[exFAT]を選択する。場合によっては[exFAT]の選択肢が表示されないこともあるが、その場合はコマンドプロンプト上でフォーマットしてもよい。
  (2)クラスタサイズの選択。exFATのデフォルトクラスタサイズ([標準のアロケーション サイズ]という選択肢)は、32KBになっている。

 ディスクサイズが大きすぎたりする場合は、ファイルシステムの選択肢に「exFAT」が出てこないことがあるようだが、その場合はコマンドプロンプトを開き、「format e: /q /fs:exfat」のように/fsオプションを指定すると、強制的にexFAT形式でフォーマットできることがある。クラスタサイズを指定する場合は「format e: /q /fs:exfat /a:64k」のように、/aオプションを使って最後にクラスタサイズを指定する。指定可能なサイズの表記は「format /?」を実行すれば確認できる。

C:\>format e: /q /fs:exfat /a:64k ……exFAT形式でフォーマットしてみる
ファイル システムの種類は EXFAT です。

警告: ハード ディスクのドライブ E: のデータは
失われます。
フォーマットしますか (Y/N)? y
クイック フォーマットしています  16381M バイト
ボリューム ラベルを入力してください。
(半角で 15 文字、全角で 7 文字以内)
必要なければ、Enter キーを押してください:
ファイル アロケーション テーブル (FAT) を初期化しています...
ファイル システム構造を作成します。
フォーマットは完了しました。
      16.0 GB: 全ディスク領域
      16.0 GB: 使用可能領域

       65,536 バイト : アロケーション ユニット サイズ
      262,061 個     : 利用可能アロケーション ユニット

           32 ビット : FAT エントリ

ボリューム シリアル番号は 0CEE-2240 です

C:\>defrag e: ……exFATをデフラグしてみる
Microsoft ディスク デフラグ ツール
Copyright (c) 2007 Microsoft Corp.

(E:) の 最適化 を起動しています...


このボリュームは最適化できません。 (0x8900000D)
……デフラグできないと表示される。クラスタサイズが大きいのでデフラグする必要もないだろう(※USBフラッシュメモリをデフラグすると書き込み回数が大幅に増え、寿命が短くなるので注意)
C:\>



●FATとexFATの使い分けについて

 USBメモリやリムーバブルデバイスを利用する場合、exFATとFATという2つの形式が利用できるが、これらの使い分けは実はあまり深く考える必要はない。FATとNTFSのように大きく機能が違うわけではないからだ。基本的には容量が32GB以下ならFAT(FAT32)、それより大きければexFATを選択すればよいが、単独のファイルが4GBを超える可能性がある場合(ビデオデータなどを記録する場合)は、32GB以下でもexFATにするとよいだろう。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。