NTFS・FAT32・exFATの違い – ファイルシステムについて

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

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

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

広告

ファイルシステム とは

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

記憶装置というのは「HDD」「SSD」「USBフラッシュメモリ」などデータを記録する装置のことを指します。ファイルシステムはWindows、MacOS、Android、Linuxなど多くのOSに実装されている重要な機能で、OSは各記憶装置内のデータをこのファイルシステムで管理しています。

このファイルシステムにより、ユーザーは記憶装置のどの場所にデータが保存されているのかを物理的位置として指定するのではなく、「ファイル」や「フォルダ」といった抽象化されたデータとして操作することができるようになっています。

このファイルシステムがなければ、ユーザーは保存されたデータが一体どこにあるのかを一々セクター番号等で指定しなくてはならず、操作性が著しく悪くなってしまいます。一般的にデータは細切れの状態で記憶装置に保存されていため(断片化)、細切れ状態のデータをまとめて1つのデータとして扱うのも大変な労力がかかることになります。

私たちユーザーがセクター番号など面倒なことを意識せず感覚的にデータを操作することができているのは、このファイルシステムがしっかり機能しているからですね。

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

ファイルシステムには多くの種類があり、それぞれ管理方法や特徴が異なりますので、まずは今利用しているファイルシステムが何なのかを確認する方法を覚えておきましょう。

※Windows 10での解説となりますが、以前のWindowsでも概ね同じ操作で確認できます。

最初に「PC」を開いて認識されている各ドライブを表示します。

確認したいドライブ(記憶装置・領域)を右クリックして、メニュー下の方にある「プロパティ」を選択します。

ファイルシステムを確認したいドライブを右クリックし、メニューから「プロパティ」を選択します。

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

全般ダブ内にある「ファイル システム」という項目で確認できます。画像では「NTFS」となっています。

「トラック」「セクター」「クラスター」

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

トラック

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

HDDなどの磁気ディスクは円盤状の記憶装置です。この円盤を「プラッタ」と呼び、データを読み取る磁気ヘッドがプラッタを1周した分を1トラックとしています。HDDの構造については以下の記事を参考にどうぞ。

関連記事

今、HDDに変わる新しい記憶媒体として注目されているものに「SSD」というものがあります。最近は多くのパソコンでも導入されているので名前を見かける方も多いでしょう。パソコンに詳しい人は自分ですでに導入されている人もいらっしゃるかと思います[…]

SSDのイラスト画像

HDDの構造上からくる定義ですので、円盤状の構造を持たないSSDでは基本的にこの考えはありません。以下、富士通のサイトでわかりやすい図がありましたので載せておきます。

セクター

セクター【sector】とは、記憶装置における最小の記録単位のことです。

伝統的には「セクター」と呼ぶと、ディスク型の記憶装置におけるトラックの一部を指していますが、ディスクを持たない「SSD」にもセクターという概念はあります。

各セクターにはある一定量のデータが格納されています。現在主流のセクターサイズは「512 Byte」と「4 KB(4096 Byte)」の2つです。この範囲内で細切れのデータが保存されています。

クラスター

近年の記憶装置の大容量化に伴いセクター数が膨大になってきており、セクター単位で管理していては効率は下がってしまうため、いくつかのセクターをまとめたものを定義しました。これをクラスター【cluster】と呼びます。また、クラスターの容量を「クラスター サイズ」または「アロケーション ユニット サイズ」といいます。

元々「クラスター」という言葉には「集団」「群れ」「束」という意味があるので、他の分野でもクラスターと呼ぶことがありますが、ここでは「ディスククラスター」を指しています。

ファイルやディレクトリに対して「クラスター」を割り当てて、ファイルシステムはこのクラスター単位で管理を行います。

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

FAT32

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

主にWindows 98/Meで使用されていたファイルシステムですが、以降のOSでも継続してサポートされています。現在最新のWindowsである「Windows 10」でも利用できますし、そのほか「MacOS」や「Linux」など別のOSでも利用できます。

主な仕様

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

基本的に最大ボリュームサイズは2TBまで

FAT32は総セクター数を32bitで管理できます。実際は4bit分を別に予約しているので、実質FAT32は28bit分を使ってデータを管理しています。

つまり ” 理論上 ” は記憶領域に対し 2の28乗=268,435,456 個にセクタを分割して管理できます。ただ、色々実装上の問題もあったようで、事実上の管理できるクラスター数は4,177,928個となっています。

セクターサイズが「512 Byte/セクター」の場合だと、管理できるデータ容量は 4,177,928 × 512 Byte = 2,139,099,136 Byte となり、FAT32で扱えるボリュームサイズは2TBまでという制限がかかります。

一言でいうと、2TB以上の容量を持った記憶装置は扱えないということです。

512 Byteのセクターを4個まとめて2 KBの論理セクターとして扱う機能を使えば、FAT32は最大8TBまでは一応扱えるのですが、一般的には2TB以上容量を持つ商品の場合は「exFAT」や「NTFS」へフォーマットされているか、あるいはそもそもフォーマットされておらず自分でフォーマットするようなものになっており、無理をしてまで「FAT32」が使われることはあまりありません。

また、ファイルシステムの他に「パーティションテーブル」と呼ばれる別のシステムでも2TBのボリューム容量上限にひっかかることがありますが、こちらはまた別問題となりますので、もし2TBの容量を持ったディスクなのにうまく認識しない場合は、「ファイルシステム」と「パーティションテーブル(GPTになっているかどうか)」の両面で確認してみるとよいでしょう。

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

FAT32でフォーマットされた記憶装置を使うときに抜けがちな注意点です。

FAT32では仕様上4GB以上のファイルを扱うことができません。32bit値ではこれ以上のデータを管理できないためです。

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

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

NTFS

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

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

主な仕様

  • 2TB以上のボリュームサイズを管理可能
  • 最新のWindowsで最大8 PBのファイルサイズを管理可能
  • クラスタサイズ(アロケーション ユニット サイズ)は512 Byte~2048 KBまで
  • 最大ファイル名長は255文字まで(Unicode)
  • 圧縮、暗号化機能などの実装あり

大容量ディスク、ファイルをサポート

NTFSは理論上 2の64乗-1 クラスタ のボリューム(16EBまで)を管理可能ですが、こちらもコンピューターの性能上から制限がかかっています。

とはいえ、Windows 10 バージョン 1709 以降であれば、クラスターサイズ「2048 KB」の場合に「8 PB(ペタバイト)」(ファイルサイズも同様)までサポートされました。「ペタ」は「テラ」の1000倍です。制限されているとはいえ、異次元の容量までサポートされています。

新しい記録装置はセクターサイズ「4 KB」に対応しているものがあり、OSと記憶装置の両方で4Kネイティブに対応していれば、より効率的に大容量装置を管理できるようになります。

このためかどうかはわかりませんが、NTFSの規定クラスターサイズ(標準のアロケーションユニットサイズ)は「4 KB」となっているようです。「4 KB」でクラスターサイズ(アロケーションユニットサイズ)を設定した場合は「16 TB」まで使えます。

FAT32から大幅に機能改善

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

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

以上が主な改善点です。

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

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

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

exFAT

exFAT(イーエックスファット)【Extended File Allocation Table】は、従来のFATをベースに改良されたファイルシステムです。

USBフラッシュドライブやSDカードなどのフラッシュデバイスに対して最適化されたファイルシステムです。

主な仕様

  • 2TB以上のボリュームサイズを管理可能(512 TBまで)
  • 理論上最大16EB(エクサバイト)のファイルサイズを管理可能
  • クラスタサイズ(アロケーション ユニット サイズ)は512 Byte ~ 32 MBまで
  • 最大ファイル名長は255文字まで(Unicode)
  • FATファイルシステムの欠点を多く解決

世の中の扱うデータが急速に大容量化へ向かっている中、大きいボリュームもファイルサイズも扱えない従来のFATファイルシステムでは不便が多くなってきました。

「exFAT」は、USBフラッシュやカメラのSDカードなど、NTFSのような高度なデータ構造は必要としないけど、大きなデータを扱う必要がある記憶装置に対して最適化されています。

USBフラッシュやSDカードなどに最適化

大容量ディスクとファイルサイズをサポートしたのが最大のメリットでしょう。最新のWindowsを利用していれば「512 TBまでのボリュームサイズ」「128 PiBまでのファイルサイズ」をサポートしていますので、一般的な用途において実用上の制限はほとんど無くなったと考えてよいでしょう。

外付けHDDなど、あまり移動させずパソコンの拡張ドライブのような形で運用する場合は「NTFS」にすれば問題ないのですが、USBフラッシュやSDカードなど持ち運んでいろんな端末に接続するような場合には「NTFS」より「exFAT」でフォーマットした方が効率的にデータを管理できる場合があります。

ただ、FATという名前は付いていますが従来のFAT32と互換性はないため、FAT32しかサポートしていない機器ではexFATを使うことはできません。

まとめ - どのファイルシステムにすればよいか

今回は「FAT32」「NTFS」「exTAT」の3つを簡単にご紹介いたしました。一般的な使い分けとしては以下のような感じになるでしょうか。

パソコンの拡張ドライブとして使う → 「NTFS」

パソコン内蔵のHDDやSSDでは容量が足りなくなってきたときに「外付けHDD/SSD」などをご購入されるかと思いますが、主に据え置きで基本的にずっとWindowsPCに繋げていることが多い場合には「NTFS」でよいと思います。

WindowsPCでは内蔵のディスクはNTFSで管理されていることが多いので、その拡張という意味が強ければ同じシステムを使った方が色々便利です。NTFSは様々なファイル管理機能を持っているので、これらを利用できるようになるのもメリットです。

ある程度持ち運ぶことがある場合でも、相手がWindowsであれば「NTFS」でフォーマットしてもよいと思います。ただし、相手側と自分側のWindowsのバージョンが大きく異なるとファイルが消えてしまうなどのトラブルが発生する場合があるので、その場合は「exFAT」で運用するとよいでしょう。(NTFS内にあるLFSバージョンの違いによるトラブルが昔ありました。)

また、MacはNTFSを基本サポートしていないのでこちらも注意が必要です。(MacはHFS+フォーマットというファイルシステムを使っています。)

USBメモリやSDカードなどのフラッシュ系 → 「exFAT」

持ち運びが多いリムーバブルディスクである「USBフラッシュメモリ」「SDカード」などでは「exFAT」を利用するのが現状おすすめです。元々このようなフラッシュデバイスに対して最適化されたファイルシステムですし、FAT32では制限が多すぎるため、汎用性という意味でもこちらが使いやすいかと思います。

また、上記にも書きましたがOSのバージョンが大きく異なる環境を行き来するような使い方をする場合も「exFAT」を利用した方が安全かと思います。MacOSもサポートしているので、両OSで使いたい場合でも「exFAT」が候補になります。

古いシステムも含めて色んな環境で使う → 「FAT32」

色々設計は古い「FAT32」ですが、昔から存在していることから互換性においてはそれなりに優秀で、古いOSやシステムであっても何とか認識してくれるファイルシステムになっています。

特に堅牢性などを必要としないシステムだと現在でも「FAT32で使用してください」となっている商品や機能もあるので、これらの場合には「FAT32」を使うとよいでしょう。

逆に言えば、これらに該当しなければ「FAT32」を使う意味はあまりなく、「NTFS」「exFAT」のいずれかを使えば問題ございません。

▼ 更新履歴

  • :内容を更新
  • :初出
広告