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) によって特徴付けられます。これは、実際にはボリュームの "最上位" に存在するテーブルです。 ボリュームを保護するために、1 つが破損した場合に備えて FAT の 2 つのコピーが保持されます。 さらに、FAT テーブルとルート ディレクトリは、システムのブート ファイルを正しく配置できるように、固定の場所に格納する必要があります。

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

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

FAT ディレクトリ構造にorganizationはなく、ファイルにはドライブ上の最初の開いている場所が与えられます。 さらに、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 Server の 「概念と計画ガイド」、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "ファイル システムの選択"

  • Windows NT Server 4.0 Resource Kit "リソース ガイド"、第 3 章「どのボリュームで使用するファイル システム」というタイトルのセクション

FAT の欠点

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

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

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

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

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "ファイル システムの選択"

  • Microsoft Windows NT Server 4.0 Resource Kit "リソース ガイド"、第 3 章「どのボリュームで使用するファイル システム」というタイトルのセクション

HPFS の概要

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

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

HPFS は、可能な限り多くのファイルを連続したセクターに割り当てようとします。 これは、ファイルのシーケンシャル処理を実行するときに速度を上げるために行われます。

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

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

スーパー ブロック

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

スペア ブロック

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

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

注:

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

HPFS の利点

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

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

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "ファイル システムの選択"

  • Windows NT Server 4.0 Resource Kit "リソース ガイド"、第 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 Server の 「概念と計画ガイド」、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "ファイル システムの選択"

  • Windows NT Server 4.0 Resource Kit "リソース ガイド"、第 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 エクサバイトまたは 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 Server の 「概念と計画ガイド」、第 5 章「ファイル システムの選択」というタイトルのセクション

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "ファイル システムの選択"

  • Windows NT Server 4.0 Resource Kit "リソース ガイド"、第 3 章「どのボリュームで使用するファイル システム」というタイトルのセクション

NTFS の欠点

NTFS に関係する領域オーバーヘッドの量のため、約 400 MB より小さいボリュームでは NTFS を使用しないことをお勧めします。 この領域オーバーヘッドは、通常、100 MB のパーティションで少なくとも 4 MB のドライブ領域を使用する NTFS システム ファイルの形式です。

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

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

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

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

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "ファイル システムの選択"

  • Windows NT Server 4.0 Resource Kit "リソース ガイド"、第 3 章「どのボリュームで使用するファイル システム」というタイトルのセクション

NTFS の名前付け規則

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

? " / \ < > * | :

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

注:

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

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