連載
» 2013年07月29日 17時31分 UPDATE

Windows TIPS:FATとexFATの違い

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

[打越浩幸,デジタルアドバンテージ]
Windows TIPS
Windows Server Insider

 

「Windows 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というファイル・システムが開発され、普及し始めている(64Gbytes以上のSDXCカードはあらかじめexFAT形式でフォーマットされて出荷されている)。本TIPSではFATとexFATの違いについてまとめておく。これ以外のNTFSやReFSの違い、ファイル・システムごとのファイル・サイズの制限などについては、以下のTIPSも参照していただきたい。

exFATとは

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

  • 最大ボリューム・サイズの拡大。理論的には最大で2の64乗セクタまでサポートするが、現在の実装では256Tbytesまでの容量をサポート
  • 最大ファイル・サイズは2の64乗bytesまでサポート。4Gbytesを超えるファイルも分割することなく記録可能
  • クラスタ・サイズの拡大によるアクセス・パフォーマンスの改善。(現在の実装では)最大32Mbytesまでのクラスタ・サイズをサポート
  • (従来のファイル割り当てテーブルだけでなく)空き領域ビットマップも使って、高速な空きクラスタ管理や高速な削除処理を実現(ファイルの削除では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(4Gbytes) 2の64乗−1bytes(16Ebytes) 2の64乗−1bytes(16Ebytes)
クラスタ・サイズ 512/1K/2K/4K/8K/16K/32K/64Kbytes 512/1K/2K/4K/8K/16K/32K/64K/128K/256K/512K/1M/2M/4M/8M/16M/32Mbytes(理論上は2の255乗セクタまで可能) 512/1K/2K/4K/8K/16K/32K/64Kbytes
デフォルト・クラスタ・サイズ ボリューム・サイズによって可変。詳細は「NTFS、FAT、または exFAT のデフォルトのクラスター サイズ」(マイクロソフト サポート技術情報)参照
最大ボリューム・サイズ FAT12:32Mbytes
FAT16:2G/4Gbytes
FAT32:32Gbytes
Windows 9x/Meでは128GbytesまでのFAT32ボリュームを作成可能
FAT32の理論上の最大サイズは2Tbytesまで
理論上は2の32乗クラスタまで/実装上は256Tbytesまで 理論上は2の64乗bytes(16Ebytes)まで/実装上は256Tbytesまで
最大クラスタ数 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のデフォルト・クラスタ・サイズ([標準のアロケーション サイズ]という選択肢)は、32Kbytesになっている。

 ディスク・サイズが大きすぎたりする場合は、ファイル・システムの選択肢に「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のように大きく機能が違うわけではないからだ。基本的には容量が32Gbytes以下ならFAT(FAT32)、それより大きければexFATを選択すればよいが、単独のファイルが4Gbytesを超える可能性がある場合(ビデオ・データなどを記録する場合)は、32Gbytes以下でもexFATにするとよいだろう。

「Windows TIPS」のインデックス

Windows TIPS

Copyright© 1999-2013 Digital Advantage Corp. All Rights Reserved.

TechTargetジャパン

PickUpイベント

- PR -

転職/派遣情報を探す

【転職サーチ】SIer/Web企業/新規事業 スマホ開発で、あなたのキャリアを生かす

「派遣・フリーで働くメリット」とは? 活躍する派遣エンジニアの本音

ホワイトペーパー(TechTargetジャパン)

RSSについて

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

メールマガジン登録

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