FAT、HPFS、NTFS ファイル システムの概要

この記事では、Windows NTでのファイル割り当てテーブル (FAT)、ハイ パフォーマンス ファイル システム (HPFS)、NT ファイル システム (NTFS) の違いとその長所と短所について説明します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 100108

注:

HPFS は、Windows NT バージョン 3.1、3.5、および 3.51 でのみサポートされます。 Windows NT 4.0 は HPFS パーティションをサポートせず、アクセスできません。 また、FAT32 ファイル システムのサポートは、Windows 98/Windows 95 OSR2 および Windows 2000 で使用できるようになりました。

FAT の概要

FAT は、Windows NTでサポートされているファイル システムの中で最も単純です。 FAT ファイル システムは、ファイル割り当てテーブル (FAT) によって特徴付けられます。これは、実際にはボリュームの "最上位" に存在するテーブルです。 ボリュームを保護するために、FAT の 2 つのコピーは、1 つが破損した場合に保持されます。 さらに、システムのブート ファイルが正しく配置されるように、FAT テーブルとルート ディレクトリを固定された場所に格納する必要があります。

FAT でフォーマットされたディスクはクラスターに割り当てられ、そのサイズはボリュームのサイズによって決まります。 ファイルが作成されると、エントリがディレクトリに作成され、データを含む最初のクラスター番号が確立されます。 FAT テーブルのこのエントリは、これがファイルの最後のクラスターであることを示すか、次のクラスターを指します。

FAT テーブルの更新は、時間のかかるだけでなく非常に重要です。 FAT テーブルが定期的に更新されないと、データが失われる可能性があります。 FAT テーブルが更新されるたびに、ディスク読み取りヘッドをドライブの論理トラック 0 に再配置する必要があるため、時間がかかります。

FAT ディレクトリ構造に組織はなく、ファイルにはドライブ上の最初の開いている場所が与えられます。 さらに、FAT では、読み取り専用、非表示、システム、およびアーカイブ ファイルの属性のみがサポートされます。

FAT 名前付け規則

FAT では従来の 8.3 ファイルの名前付け規則が使用されており、すべてのファイル名を ASCII 文字セットで作成する必要があります。 ファイルまたはディレクトリの名前には、最大 8 文字、ピリオド (.) 区切り記号、最大 3 文字の拡張子を指定できます。 名前は文字または数字で始まる必要があり、次を除く任意の文字を含めることができます。

. " / \ [ ] : ; | = ,

これらの文字のいずれかを使用すると、予期しない結果が発生する可能性があります。 名前にスペースを含めることはできません。

次の名前が予約されています。

CON、AUX、COM1、COM2、COM3、COM4、LPT1、LPT2、LPT3、PRN、NUL

すべての文字は大文字に変換されます。

FAT の利点

サポートされているいずれのファイル システムでも、Windows NTで元に戻す操作を実行することはできません。 元に戻すユーティリティは、Windows NTでは実行できないハードウェアに直接アクセスしようとします。 ただし、ファイルが FAT パーティション上にあり、システムが MS-DOS で再起動された場合は、ファイルの削除を解除できます。 FAT ファイル システムは、約 200 MB 未満のドライブやパーティションに最適です。FAT はオーバーヘッドがほとんどないためです。 FAT の利点の詳細については、次を参照してください。

  • Windows NT サーバーの"概念と計画ガイド"、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT ワークステーション 4.0 リソース キット、第 18 章「ファイル システムの選択」

  • Windows NT Server 4.0 リソース キット "リソース ガイド" 第 3 章「どのファイル システムをどのボリュームで使用するか」セクション

FAT の欠点

200 MB を超えるドライブまたはパーティションを使用する場合は、FAT ファイル システムを使用しないことをお勧めします。 これは、ボリュームのサイズが大きくなるにつれて、FAT でのパフォーマンスが急速に低下するためです。 FAT パーティションであるファイルに対するアクセス許可を設定することはできません。

FAT パーティションのサイズは、Windows NT では最大 4 ギガバイト (GB)、MS-DOS では 2 GB に制限されます。

FAT のその他の欠点の詳細については、次を参照してください。

  • Windows NT サーバーの"概念と計画ガイド"、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT ワークステーション 4.0 リソース キット、第 18 章「ファイル システムの選択」

  • Microsoft Windows NT Server 4.0 リソース キット "リソース ガイド" 第 3 章「どのファイル システムをどのボリュームで使用するか」セクション

HPFS の概要

HPFS ファイル システムは、最初に OS/2 1.2 で導入され、その後市場に登場していたより大きなハード ドライブにアクセスできるようになりました。 さらに、ネットワーク サーバー市場の需要の高まりに対して、新しいファイル システムで名前付けシステム、組織、セキュリティを拡張する必要がありました。 HPFS は FAT のディレクトリ組織を維持しますが、ファイル名に基づいてディレクトリの自動並べ替えを追加します。 ファイル名は最大 254 個の 2 バイト文字まで拡張されます。 HPFS では、ファイルを "データ" と特殊な属性で構成して、他の名前付け規則とセキュリティをサポートするという点で柔軟性を高めることもできます。 さらに、割り当ての単位がクラスターから物理セクター (512 バイト) に変更され、ディスク領域の損失が減少します。

HPFS では、ディレクトリ エントリは FAT よりも多くの情報を保持します。 属性ファイルだけでなく、変更、作成、アクセスの日時に関する情報も含まれます。 ファイルの最初のクラスターを指す代わりに、HPFS の下のディレクトリ エントリは FNODE を指します。 FNODE には、ファイルのデータ、またはファイルのデータを指す可能性のあるポインター、または最終的にファイルのデータを指すその他の構造体を含めることができます。

HPFS は、できるだけ多くのファイルを連続したセクターに割り当てようとします。 これは、ファイルの順次処理を行う際の速度を向上させるために行われます。

HPFS はドライブを 8 MB の一連のバンドに編成し、可能な限りファイルをこれらのバンドのいずれかに含めます。 これらの各バンド間には 2K 割り当てビットマップがあり、バンド内のどのセクターが割り当てられているか、割り当てられていないかを追跡します。 ドライブ ヘッドはディスクの論理上端 (通常は円柱 0) に戻る必要はなく、ファイルを格納する場所を決定するために最も近いバンド割り当てビットマップに戻る必要があるため、バンディングによってパフォーマンスが向上します。

さらに、HPFS にはいくつかの一意の特殊なデータ オブジェクトが含まれています。

スーパー ブロック

スーパー ブロックは論理セクター 16 にあり、ルート ディレクトリの FNODE へのポインターが含まれています。 HPFS を使用する最大の危険の 1 つは、スーパー ブロックが不良セクターによって失われたり破損したりした場合、ドライブの残りの部分が問題ない場合でも、パーティションの内容も失われるということです。 良好なセクター 16 を持つ別のドライブにすべてをコピーし、スーパー ブロックを再構築することで、ドライブ上のデータを回復できます。 ただし、これは非常に複雑なタスクです。

スペア ブロック

スペア ブロックは論理セクター 17 にあり、"ホット フィックス" とスペア ディレクトリ ブロックのテーブルが含まれています。 HPFS では、不良セクターが検出されると、"ホット フィックス" エントリを使用して、不良セクターの代わりに既存の良好なセクターを論理的にポイントします。 書き込みエラーを処理するためのこの手法は、ホット フィックスと呼ばれます。

ホット フィックスとは、セクターが正しくないためにエラーが発生した場合に、ファイル システムによって情報が別のセクターに移動され、元のセクターが不良としてマークされる手法です。 これはすべて、ディスク I/O を実行しているすべてのアプリケーションに対して透過的に行われます (つまり、ハード ドライブに問題が発生したことをアプリケーションが認識することはありません)。 ホットフィックスをサポートするファイル システムを使用すると、不良セクターが発生したときに発生する FAT "Abort、Retry、または Fail?" エラー メッセージなどのエラー メッセージが削除されます。

注:

Windows NTに含まれる HPFS のバージョンでは、ホット フィックスはサポートされていません。

HPFS の利点

HPFS は、200 ~ 400 MB の範囲のドライブに最適です。 HPFS の利点の詳細については、次を参照してください。

  • Windows NT サーバーの"概念と計画ガイド"、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT ワークステーション 4.0 リソース キット、第 18 章「ファイル システムの選択」

  • Windows NT Server 4.0 リソース キット "リソース ガイド" 第 3 章「どのファイル システムをどのボリュームで使用するか」セクション

HPFS の欠点

HPFS に伴うオーバーヘッドのため、約 200 MB 未満のボリュームではあまり効率的な選択ではありません。 さらに、ボリュームが約 400 MB を超える場合は、パフォーマンスが低下します。 WINDOWS NTで HPFS のセキュリティを設定することはできません。

HPFS は、Windows NT バージョン 3.1、3.5、および 3.51 でのみサポートされます。 Windows NT 4.0 は HPFS パーティションにアクセスできません。

HPFS のその他の欠点については、次を参照してください。

  • Windows NT サーバーの"概念と計画ガイド"、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT ワークステーション 4.0 リソース キット、第 18 章「ファイル システムの選択」

  • Windows NT Server 4.0 リソース キット "リソース ガイド" 第 3 章「どのファイル システムをどのボリュームで使用するか」セクション

NTFS の概要

ユーザーの視点から見て、NTFS は引き続きファイルをディレクトリに整理し、HPFS のように並べ替えます。 ただし、FAT や HPFS とは異なり、ディスク上に "特別な" オブジェクトはなく、512 バイトセクターなどの基盤となるハードウェアに依存することはありません。 さらに、FAT テーブルや HPFS スーパー ブロックなどの特別な場所はディスクにありません。

NTFS の目標は、次を提供することです。

  • 信頼性(特にハイエンド システムとファイル サーバーに適しています)

  • 機能を追加するためのプラットフォーム

  • POSIX の要件をサポートする

  • FAT および HPFS ファイル システムの制限の削除

信頼性

NTFS の信頼性を確保するために、回復性、致命的な単一セクター障害の削除、ホット フィックスという 3 つの主要な領域に対処しました。

NTFS は、ファイル システムに対するトランザクションを追跡するため、回復可能なファイル システムです。 FAT または HPFS で CHKDSK が実行されると、ディレクトリ、割り当て、ファイル テーブル内のポインターの整合性がチェックされます。 NTFS では、ファイル システム内の整合性を回復するために、CHKDSK が最後のコミット ポイントにトランザクションをロールバックするだけで済むように、これらのコンポーネントに対するトランザクションのログが保持されます。

FAT または HPFS では、ファイル システムの特殊オブジェクトの 1 つの場所であるセクターが失敗した場合、1 つのセクターエラーが発生します。 NTFS では、まず、ディスク上の特殊なオブジェクトを使用せず、ディスク上にあるすべてのオブジェクトを追跡して保護するという 2 つの方法でこれを回避します。 次に、NTFS では、マスター ファイル テーブルの複数のコピー (ボリューム サイズによって異なります) が保持されます。

OS/2 バージョンの HPFS と同様に、NTFS はホット フィックスをサポートします。

追加された機能

あらゆるレベルでWindows NTの主な設計目標の 1 つは、追加および構築できるプラットフォームを提供することです。NTFS も例外ありません。 NTFS は、他のファイル システムが使用できるように、豊富で柔軟なプラットフォームを提供します。 さらに、NTFS はWindows NTセキュリティ モデルを完全にサポートし、複数のデータ ストリームをサポートします。 データ ファイルは 1 つのデータ ストリームではなくなりました。 最後に、NTFS の場合、ユーザーは自分のユーザー定義属性をファイルに追加できます。

POSIX のサポート

NTFS は、次の POSIX.1 要件をサポートしているため、サポートされているファイル システムの POSIX.1 に最も準拠しています。

大文字と小文字を区別する名前付け:

POSIX では、README.TXT、Readme.txt、readme.txtはすべて異なるファイルです。

追加のタイムスタンプ:

追加のタイムスタンプは、ファイルが最後にアクセスされた時刻を指定します。

ハード リンク:

ハード リンクとは、異なるディレクトリに配置できる 2 つの異なるファイル名が同じデータを指している場合です。

制限事項を削除する

まず、NTFS によってファイルとボリュームのサイズが大幅に増加し、最大 2^64 バイト (16 exabytes または 18,446,744,073,709,551,616 バイト) にできるようになりました。 NTFS は、固定セクター サイズの HPFS 問題を回避するために、クラスターの FAT 概念にも戻っています。 これは、Windows NTがポータブル オペレーティング システムであり、ある時点でさまざまなディスク テクノロジが発生する可能性が高いために行われました。 そのため、セクターあたり 512 バイトは、割り当てに適していない可能性が大きいと見なされました。 これは、クラスターをハードウェアの自然割り当てサイズの倍数として定義できるようにすることで実現されました。 最後に、NTFS では、すべてのファイル名は Unicode ベースであり、8.3 のファイル名は長いファイル名と共に保持されます。

NTFS の利点

NTFS は、約 400 MB 以上のボリュームで使用するのに最適です。 これは、FAT の場合と同様に NTFS ではパフォーマンスが低下せず、ボリューム サイズが大きくなるためです。

NTFS に設計された回復性は、ユーザーが NTFS パーティションで任意の種類のディスク修復ユーティリティを実行する必要はありません。 NTFS のその他の利点については、次を参照してください。

  • Windows NT サーバーの"概念と計画ガイド"、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT ワークステーション 4.0 リソース キット、第 18 章「ファイル システムの選択」

  • Windows NT Server 4.0 リソース キット "リソース ガイド" 第 3 章「どのファイル システムをどのボリュームで使用するか」セクション

NTFS の欠点

NTFS に伴う領域オーバーヘッドの量が原因で、約 400 MB 未満のボリュームで NTFS を使用することはお勧めしません。 この領域のオーバーヘッドは、通常、100 MB のパーティションで少なくとも 4 MB のドライブ領域を使用する NTFS システム ファイルの形式です。

現在、NTFS に組み込まれているファイル暗号化はありません。 そのため、誰かが MS-DOS または別のオペレーティング システムで起動し、低レベルのディスク編集ユーティリティを使用して NTFS ボリュームに格納されているデータを表示できます。

NTFS ファイル システムを使用してフロッピー ディスクをフォーマットすることはできません。Windows NTでは、NTFS に関連するオーバーヘッドがフロッピー ディスクに収まらないため、FAT ファイル システムを使用してすべてのフロッピー ディスクをフォーマットします。

NTFS の欠点の詳細については、次を参照してください。

  • Windows NT サーバーの"概念と計画ガイド"、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT ワークステーション 4.0 リソース キット、第 18 章「ファイル システムの選択」

  • Windows NT Server 4.0 リソース キット "リソース ガイド" 第 3 章「どのファイル システムをどのボリュームで使用するか」セクション

NTFS の名前付け規則

ファイル名とディレクトリ名には、拡張子を含め、最大 255 文字まで指定できます。 名前は大文字と小文字を区別しませんが、大文字と小文字は区別されません。 NTFS では、大文字と小文字に基づいてファイル名が区別されません。 名前には、次を除く任意の文字を含めることができます。

? " / \ < > * | :

現在、コマンド ラインから作成できるのは、最大 253 文字のファイル名のみです。

注:

基になるハードウェアの制限により、任意のファイル システムにパーティション サイズの制限が追加される場合があります。 特に、ブート パーティションのサイズは 7.8 GB のみで、パーティション テーブルには 2 テラバイトの制限があります。

Windows NTでサポートされているファイル システムの詳細については、Windows NT Resource Kit を参照してください。