マスター ファイル テーブル (ローカル ファイル システム)
NTFS ファイル システムには、マスター ファイル テーブル (MFT) という名前のファイルが含まれています。 MFT 自体を含め、NTFS ファイル システム ボリューム上のすべてのファイルに対して、少なくとも 1 つのエントリが MFT に存在します。 ファイルに関するすべての情報 (サイズ、日時スタンプ、アクセス許可、データ コンテンツなど) は、MFT エントリか、MFT エントリによって記述された MFT 外部の領域に格納されます。
NTFS ファイル システム ボリュームにファイルが追加されると、MFT にエントリが追加され、MFT のサイズが大きくなります。 NTFS ファイル システム ボリュームからファイルが削除されると、そのファイルの MFT エントリは未使用としてマークされ、再利用できるようになります。 ただし、これらのエントリに割り当てられているディスク領域の再割り当ては行われず、MFT のサイズは減少しません。
NTFS ファイル システムでは、MFT が拡大しても可能な限り連続した状態を維持できるように、MFT 用の領域を予約しています。 各ボリュームで NTFS ファイル システムによって MFT 用に予約された領域は、MFT ゾーンと呼ばれます。 ファイルおよびディレクトリ用の領域もこの領域から割り当てられますが、MFT ゾーンの外部にあるすべてのボリューム領域が割り当てられた後に限られます。
ファイルの平均サイズやその他の変数によっては、ディスクが容量がいっぱいになると、予約済みの MFT ゾーンまたはディスク上の予約されていない領域から先に割り当てられる場合があります。 比較的大きなファイルの数が少ないボリュームでは、予約されていない領域から先に割り当てられますが、比較的小さなファイルの数が多いボリュームでは、MFT ゾーンから先に割り当てられます。 どちらの場合でも、いずれかの領域が完全に割り当てられると、MFT の断片化が発生し始めます。 予約されていない領域が完全に割り当てられている場合、ユーザー ファイルとディレクトリ用の領域は MFT ゾーンから割り当てられます。 MFT ゾーンが完全に割り当てられている場合は、新しい MFT エントリの領域は、予約されていない領域から割り当てられます。
MFT 自体を最適化することもできます。 最適化プロセスを完了する前に MFT ゾーンが完全に割り当てられる可能性を減らすには、ボリュームを最適化する前に、MFT ゾーンの先頭にできるだけ多くの領域を残しておきます。 最適化が完了する前に MFT ゾーンが完全に割り当てられる場合は、MFT ゾーンの外部に未割り当て領域が存在する必要があります。
既定の MFT ゾーンは、ボリューム サイズに基づき、ボリュームをマウントするときにシステムによって計算および予約されます。 「NTFS がマスター ファイル テーブル (MFT) の領域を予約する方法」で詳しく説明されているレジストリ エントリを使用して MFT ゾーンを増やすことはできますが、既定の MFT ゾーンを計算値より小さくすることはできません。 MFT ゾーンを大きくしても、ユーザーがデータ ファイルに使用できるディスク領域は減少しません。
MFT の現在のサイズを確認するには、ディスク デフラグ ツールで NTFS ファイル システム ドライブを分析し、[レポートの表示] ボタンをクリックします。 現在の MFT サイズやフラグメントの数など、ドライブの統計情報が表示されます。 FSCTL_GET_NTFS_VOLUME_DATA 制御コードを使用して、MFT のサイズを取得することもできます。