次の方法で共有


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

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

元の KB 番号: 100108

Note

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

  • Windows NT Workstation 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 の一連のバンドに編成し、可能な場合は常にファイルがこれらのバンドの 1 つに含まれます。 これらの各バンド間には 2K アロケーション ビットマップがあり、バンド内のどのセクターが割り当てられているか、割り当てられていないかを追跡します。 ドライブ ヘッドがディスクの論理トップ (通常はシリンダー 0) に戻る必要はなく、ファイルの格納場所を決定するために最も近いバンド割り当てビットマップに戻る必要がないため、バンディングによってパフォーマンスが向上します。

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

スーパー ブロック

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

スペア ブロック

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

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

Note

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

HPFS の利点

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

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

  • Windows NT Workstation 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 Server の「概念と計画ガイド」第 5 章「ファイル システムの選択」セクション

  • Windows NT Workstation 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 つのセクターエラーが発生します。 NTFS では、ディスク上の特殊なオブジェクトを使用せず、ディスク上のすべてのオブジェクトを追跡して保護するという 2 つの方法でこれを回避します。 次に、NTFS では、マスター ファイル テーブルの複数のコピー (数はボリューム サイズによって異なります) が保持されます。

OS/2 バージョンの HPFS と同様に、NTFS ではホットフィックスがサポートされています。

追加機能

すべてのレベルで Windows NT の主要な設計目標の 1 つは、追加して構築できるプラットフォームを提供することです。NTFS も例外ありません。 NTFS は、他のファイル システムで使用できる豊富で柔軟なプラットフォームを提供します。 さらに、NTFS は Windows NT セキュリティ モデルを完全にサポートし、複数のデータ ストリームをサポートします。 データ ファイルが単一のデータ ストリームではなくなりました。 最後に、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 リソース キット、第 18 章「ファイル システムの選択」

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

NTFS の欠点

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

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

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

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

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

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

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

NTFS 名前付け規則

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

? " / \ < > * | :

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

Note

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

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