NTFSとFAT32の違い - ファイルシステムについて

  • このエントリーをはてなブックマークに追加

USBフラッシュメモリや外付けHDDを購入すると、説明書に「FAT32」「NTFS」という単語がでてきます。

これは「ファイルシステム」という、記憶装置置(HDD,SSD,USBフラッシュメモリなど)に記録されているデータをOSが管理するためのシステムなのですが、この2つにどういった違いがあるかご存じでしょうか。

データを管理するシステムのため、これらを知っておかないと「データが保存できない!」というトラブルが発生します。
「FAT32」と「NTFS」の違いを知って適切にデータを管理できるようになりましょう。

FAT32とNTFS


ファイルシステム

記憶装置に記録されてるデータを管理するためのシステムを「ファイルシステム」といいます。

記憶装置というのは「HDD」「SSD」「USBフラッシュメモリ」などデータを記録する装置のことを指します。

OSに実装されている重要な機能で、OSは各記憶装置内のデータをこのファイルシステムで管理しています。
記憶装置内へデータ(ファイルやディレクトリ)を作成したり、それらデータを階層的に管理できるようにしています。

ファイルシステムには多くの種類があり、それぞれ管理方法が異なります。
具体的に「データの記録方式」「記憶領域の場所やサイズ、利用方法」「アクセス権」「ファイルの文字長」などです。

CDやDVDなどにも独自のファイルシステムを持っています。

ほとんどすべてコンピューターに実装されている大事なシステムです。

ファイルシステムの確認方法

まず「コンピューター」を開いて認識されている各ドライブを表示します。
確認したいドライブ(記憶装置・領域)を右クリックしてメニュー下の方にある「プロパティ」を選択します。

ドライブのプロパティが表示されるので「全般」タブを選び、その中にある「ファイルシステム」という項目を読みましょう。ここに指定したドライブのファイルシステムが表示されます。

FAT32とNTFS

「トラック」「ディスクセクタ」「クラスタ」

各ファイルシステムの話へ移る前に「トラック」「ディスクセクタ」「クラスタ」について話します。
記憶装置やファイルシステムを理解するために必要な単語です。

トラック

通常ディスク型の記憶装置(HDD,フロッピー)において使われる用語で、記憶装置における記録単位のことを指します。

HDDなどの磁気ディスクは円盤状の記憶装置です。磁気ヘッドが円盤を1周した分を1トラックとしています。
HDDの構造については以下の記事を参考にどうぞ。

ディスクセクタ

ディスクセクタとは、円盤状の記憶装置における最小の記録単位のことです。単に「セクタ」「セクター」と呼びます。

トラックが円盤1週分で、さらにこれを放射状に等分した部分をセクタといいます。
(フラッシュメモリなど磁気ディスクのない装置でもセクタという考えはあります。)

クラスタ

OSがデータを管理する際、セクタではあまりにも容量が少なく管理しづらいため、いくつかのセクタをまとめたものを定義しました。これをクラスタといいます。また、クラスタの容量を「クラスタサイズ」または「アロケーション ユニット サイズ」といいます。

どれだけのセクタをまとめて扱うかはファイルシステムによって異なります。

Wikipedia - ディスクの構造
▲Wikipedia - ディスクの構造

FAT32

ファイル・アロケーション・テーブル【File Allocation Table:FAT】で32bit化されたものを「FAT32」といいます。
(ビット数の違いで「FAT16」「FAT12」などもありますが、最近の主なFATは32bitですのでこれを解説します。)

主にWindows 98/Meで使用されているファイルシステムですが、2000/Xp/Vista/7などでも利用することができます。
また、Mac OSでも利用できます。

ちなみに、Sonyの PlayStation 3のHDDもFAT32でフォーマットされています。

仕様

  • 最大2TBまでのドライブサイズを管理可能
  • 最大4GBまでのファイルサイズを管理可能
  • クラスタサイズ( アロケーション ユニット サイズ )は512byte~32KBまで
  • 最大ファイル名長は255文字まで
  • 圧縮、暗号化機能なし

FAT32は総セクタ数を32ビットで管理します。なので 2の32乗=4,294,967,295 にセクタを分割します。
これにより、セクタサイズが512バイトの場合だとボリュームサイズ(ドライブサイズ)は2TBまでとなります。

つまり、2TB以上の容量を持ったドライブは扱えないということです。
(2000/XPなどのNT系OSでは32GBまでフォーマット可能。それ以上は専用のツールが必要。)

ファイル名は最大255文字まで、圧縮機能や暗号化機能なども実装されていないので堅牢性が少し低めです。
フロッピーディスク時代のファイルシステムのため、あまり大きなデータを扱うことを想定していません。よって大容量記憶装置では非効率なファイルシステムとなっています。

また、ちょっと古いシステムのため想定外の障害が発生するとデータ損失や不整合が起きやすくなっています。

関連記事

○FAT32 ファイル システムについて - Microsoft
http://support.microsoft.com/kb/154997/ja

○FAT32 ファイル システムのデフォルトのクラスタ サイズの説明 - Microsoft
http://support.microsoft.com/kb/192322/ja

4GB以上のファイルは扱えない

FAT32でフォーマットされた記憶装置を使うときにはここが一番注意すべきところです。

FAT32では仕様上4GB以上のファイルを扱うことができません。

フロッピー時代なら4GBという大容量のファイルなど珍しかったのですが、最近はTVなども録画し記録できるため、簡単に4GB以上のファイルができてしまいます。この制限を知らずにいると「新しく買ったHDDやUSBフラッシュメモリに保存しようとしてもできない!」というトラブルが発生します。

これを回避するためには後述する「NTFS」というファイルシステムにフォーマットすることが必要になります。

NTFS

NT File System【NTFS】とは、Windows NT系の標準ファイルシステムで、現在主流のファイルシステムです。

NT系のシステムのためWindows NT以降のOS(2000/XP以降)で利用することができますが、Windows 95、Windows 98などでは利用できません。

仕様

  • 2TB以上のドライブサイズを管理可能(実装256TB)
  • 最大16TBのファイルサイズを管理可能
  • クラスタサイズ( アロケーション ユニット サイズ )は512byte~64KBまで
  • 最大ファイル名長は255文字まで(Unicode)
  • 圧縮、暗号化機能などの実装あり

NTFSは理論上 2の64乗-1 クラスタ のボリューム(ドライブサイズ)を管理可能ですが、コンピューターの性能上から実装256TBまでと制限しています。

2012年1月現在なら、ドライブ容量に制限が無くなったと考えて良いでしょう。
ただし、今度はファイルシステムではなくOSそのものが2TB以上のドライブを管理できない場合があります。それについては以下の記事を参考にどうぞ。

ファイル容量も4GBの制限が外れて、最大16TBまでのファイルを管理できます。

FAT32から大幅に機能改善 - 圧縮や暗号化、アクセス高速化など

NTFSはFAT32から大幅に機能改善されました。

主な改善
  • ファイルやディレクトリに対して暗号化することができる
  • ファイル単位でNTFS圧縮機能が使える(透過的な圧縮)
  • ファイル名はUnicodeで最大255文字
  • 検索・アクセス速度の改善
  • 何らかの障害が発生してもデータの不整合を起こしにくい(ジャーナリングファイルシステム)
  • 不良セクタの認識でクラスタの代替が可能。耐障害性の向上。
  • アカウントごとにアクセス権を設定可能

以上が主な改善点です。

アカウントごとにアクセス権が設定可能になり、それぞれがファイルやディレクトリに対して暗号化することができるようになりました。また、リソース(データ資源)の消費を減らすため標準で透過的な圧縮も可能となっています。

ただし、アロケーションユニットサイズが「4KB(4096バイト)」より大きい値を設定した場合、NTFS圧縮は利用できません。

障害耐性も向上し、何らかの障害が発生したとしてもデータの損失、破損、不整合が発生しにくくなっています。

その他、アカウントごとにディスク容量を制限できる「ディスククォータ」、ディレクトリに他のドライブをマウント(結合)できる「ドライブマウント」なども可能になりました。

FAT32とNTFSどっちがいいの?

以上のことを読めば大体分かりますね。通常使用ならば絶対NTFSの方が安全で高機能です。

様々な制限が解除、あるいは引き上げられています。耐障害性、セキュリティの向上もされ、非常にファイルの扱いがうまくなっています。大容量のファイルもFAT32と比べて断然扱いやすいです。

そのため、特に理由が無ければ新しく買ったHDDやSSD、USBフラッシュメモリなどはNTFSでフォーマットすると良いでしょう。(Windows98などの古いOSと一緒に使うことがなければですが)

ただ、FAT32はMac OSと互換があるのでWindowsとMacでファイル交換する場合はFAT32が必要になる場合もあります。

ファイルシステムの確認とフォーマット方法

この記事ではファイルシステムの概要について書いたものですので、実践的なものは次の記事で書きました。
以下のリンクからどうぞ。

ブログ内リンク:NTFS、FAT32へフォーマットする方法

クラスタギャップ

ここはコラム的なものですのでスルーでも結構です。

最初の方でクラスタについて話しました。セクタをいくつかまとめたものをクラスタというのでしたね。
このクラスタのサイズのことを「クラスタサイズ」「アロケーション ユニット サイズ」ということも簡単に解説しました。

つまり、クラスタサイズが記録装置の最小単位ということになります。

ここで何か疑問に思った方はいらっしゃるでしょうか。
例えば、クラスタサイズが「4KB」だとします。ここに4KBよりも小さい「1KB」というサイズのデータを入れたとします。すると、クラスタサイズが最小の単位になるので実際に記憶領域を占有するのは「4KB」となり、3KBが無駄になってしまいますね。

つまり、1KBのデータしかないのに4KB分のデータ領域を消費してしまうのです。

このように、実際のデータサイズとクラスタを占有するサイズが異なる現象を、クラスタギャップといいます。

クラスタギャップが大きい、つまりクラスタサイズが多すぎるとギャップ分のデータが無駄になりやすく、容量を圧迫させることになります。このため、Windowsではフォーマット時に「標準のアロケーションサイズ」を指定することで、記憶装置の容量に応じて最適なクラスタサイズを設定してくれます。フォーマットについては次の記事にて。

ファイル サイズが、クラスター サイズの倍数とは異なる場合、ファイルの格納に冗長部分が生じます (クラスター サイズの倍数との差分が冗長部分となります)。通常のパーティションでは、これにより、
平均 (クラスター サイズ)/2 * (ファイル数) に相当する領域が失われます。

NTFS、FAT、および exFAT の既定のクラスター サイズ - Microsoft より引用

クラスタサイズが小さいとこのクラスタギャップは少なくて済みますが、その代わりクラスタ数が多くなってアクセス速度の低下を招きます。なので、データ数が多くなるような場合は、クラスタギャップが大きくなる代わりにクラスサイズを少し多くしてアクセス速度を向上させています。

Track Back

Track Back URL

Comments [6]

わかりやすいです!
ありがとです(=^ェ^=)

お役に立てたようで嬉しいです。

FAT32の方が互換性が高いため、外付けHDDなどはまだFAT32でフォーマットされているものが多いです。
ただ、特に理由がない場合はNTFSの方が色々便利なのでよく確認してみてくださいね。

音楽データの記録用にSDカードを使っていますが、FAT32で使えないことがありましたが、その際にNTFSでフォーマットした媒体を使ってくださいとのコメントが出てフォーマットのことを詳しく知りたくなりました。
貴講座は専門家にありがちな専門用語の羅列も無く平易な用語での解説も無駄がなくとてもわかり易く勉強になりました。
どうもありがとうございました。

コメントありがとうございます。

この記事も結構専門用語多くて、本当はもうちょっと噛み砕いた表現にしてみたかったのですが
結構昔の記事でそのノウハウがなかったので・・・まだまだです。

画像リンクが切れていたりしているのでまた書きなおしてみます。

FAT32は互換性に優れていますが、古い規格で制限がきついですから、基本はNTFSになります。外付けHDDやUSBフラッシュメモリーは互換性維持のためFAT32でフォーマットされていることが多いですが、これだと機能性・安全性が確保できないのです。なので、こういったことは予め知識としてあると今後便利に使えるようになると思います。

わかりやすくて勉強になりました!
NTFSの説明の所で「最大16TBのファイルサイズを管理可能」と書いてありましたが、「16GB」ですかね?

お役に立てたようで何よりです。

NTFSでの最大ファイル容量ですが、16TB(正確には16TiBですが)で合ってますよ。
といより、NTFSのボリューム上限が16TBだからファイル上限も同じ16TBという感じですね。基本的にNTFSであればドライブサイズと同じ容量を持つファイルを保存できます。記事には書いてないですが、アロケーションユニットサイズを64KBにすれば、実装256TBまでのドライブサイズとファイルが扱えます。

「NTFSは理論上 2の64乗-1 クラスタ のボリューム(ドライブサイズ)を管理可能」、つまり16EB(エクサバイト)が理論上可能であるとと書いていますが、ファイル容量も同じく理論上は16EBまで拡張できるはずです。ただ、コンピューターの性能上実装は上記の通り16TB、または256TBですね。

参考になれば幸いです。

コメントする

非公開。必須ではありません。

(いくつかのHTMLタグ(a, strong, ul, ol, liなど)が使えます)

このページの上部へ

サイト内検索

最近のコメント

広告

Powered by Movable Type 6.0.5