この記事では、NTFS ファイル システムのディスク領域の割り当てを確認して、問題のあるファイルやフォルダーを検出する方法、または Microsoft Windows Server 2003 ベースのコンピューターでボリュームの破損を探す方法について説明します。
適用対象: Windows Server 2003
元の KB 番号: 814594
まとめ
NTFS では、多数のボリュームおよびファイル レベルの機能がサポートされており、ディスクの空き領域が失われたり、誤って報告されたりする可能性があります。 たとえば、NTFS ボリュームが突然何の理由もなくいっぱいになったように見え、管理者が原因を見つけたり、問題のあるフォルダーやファイルを見つけたりすることはできません。 これは、大きなファイルや大量の小さなファイルが密かにコピーされている NTFS ボリュームへの悪意のあるアクセスまたは未承認のアクセスが発生した場合に発生する可能性があります。 その後、これらのファイルの NTFS アクセス許可が削除または制限されます。 この動作は、コンピューターの誤動作や、ボリュームの破損の原因となる停電が発生した後にも発生する可能性があります。
NTFS ボリュームのディスク領域の割り当てが、次のいずれかの理由で誤って報告されているように見える場合があります。
- NTFS ボリュームのクラスター サイズが、そこに格納されている平均サイズのファイルに対して大きすぎます。
- ファイル属性または NTFS アクセス許可により、Windows エクスプローラーまたは Windows コマンド プロンプトでファイルやフォルダーが表示またはアクセスできなくなります。
- フォルダー パスが 255 文字を超えています。
- フォルダーまたはファイルに無効なファイル名または予約済みのファイル名が含まれています。
- NTFS メタファイル (マスター ファイル テーブルなど) が拡大し、割り当てを解除することはできません。
- ファイルまたはフォルダーには代替データ ストリームが含まれています。
- NTFS の破損により、空き領域が使用中として報告されます。
- その他の NTFS 機能では、ファイル割り当ての混乱が発生する可能性があります。
次の情報は、NTFS ボリュームでディスク領域がどのように使用されるかを最適化、修復、または理解するのに役立ちます。
クラスター サイズが大きすぎます
ディスク領域を使用できるのは、マスター ファイル テーブル (MFT)、フォルダー インデックスなどの内部 NTFS メタファイルを含むファイルとフォルダーだけです。 これらのファイルとフォルダーは、クラスターの倍数を使用して、すべてのファイル領域の割り当てを使用します。 クラスターは、連続するセクターのコレクションです。 クラスター サイズは、ボリュームのフォーマット時のパーティション サイズによって決まります。
ファイルが作成されると、初期ファイル サイズに応じて、少なくとも 1 つのディスク領域のクラスターが消費されます。 データが後でファイルに追加されると、NTFS はクラスター サイズの倍数でファイルの割り当てを増やします。
現在のクラスター サイズとボリュームの統計情報を確認するには、コマンド プロンプトから読み取り専用の chkdsk コマンドを実行します。 そのためには、次の手順に従います。
[スタート]ボタン、 [ファイル名を指定して実行]の順にクリックし、「 cmd」と入力して、 [OK]をクリックします。
コマンド プロンプトで、コマンド「
chkdsk d:
」と入力します。ここで d: は、確認するドライブの文字です。
[OK] をクリックします。
結果の出力を表示します。 例えば次が挙げられます。
4096543 KB の合計ディスク領域。 <---フォーマットされたディスク容量の合計。
19901 ファイルで KB を2906360します。 <---ユーザー ファイル データによって使用される領域。
1301 インデックスで 6344 KB。 <--- NTFS インデックスで使用される領域。
不良セクターでは 0 KB。 <---スペースは不良セクターに失われました。
システムで使用されている 49379 KB。 <--- MFT およびその他の NTFS メタファイルが含まれます。
ログ ファイルによって占有される 22544 KB。 <--- NTFS ログ ファイル - (chkdsk /L:size を使用して調整できます)
1134460 KB をディスクで使用できます。 <---使用可能な空きディスク領域各割り当てユニットで 4096 バイト。 <クラスター サイズを---します。 (4K)
ディスク上の割り当てユニットの合計を1024135します。 <ディスク上のクラスターの合計を---します。
ディスクで使用可能な割り当てユニットを283615します。 <---利用可能な無料クラスター。
Note
出力で報告される各値 (KB) に 1024 を乗算して、正確なバイト数を決定します。 たとえば、2906360 x 1024 = 2,976,112,640 バイトです。 この情報を使用して、ディスク領域の使用方法と既定のクラスター サイズを決定できます。
これが最適なクラスター サイズであるかどうかを判断するには、ディスク上の無駄な領域を決定する必要があります。 そのためには、次の手順に従います。
[ スタートをクリックし、 My Computer をクリックし、該当するボリュームのドライブ文字 (D など) をダブルクリックしてボリュームを開き、ルートに含まれるフォルダーとファイルを表示します。
任意のファイルまたはフォルダーをクリックし、Edit メニューの [すべて選択をクリックします。
すべてのファイルとフォルダーを選択したら、任意のファイルまたはフォルダーを右クリックし、 Propertiesをクリックし、 General タブをクリックします。
General タブには、ボリューム全体のファイルとフォルダーの合計数が表示され、SIZE と SIZE ON DISK の 2 つのファイル サイズ統計が表示されます。
ボリュームに含まれるファイルまたはフォルダーに NTFS 圧縮を使用していない場合、クラスター サイズが必要以上に大きいため、SIZE と SIZE ON DISK の違いが無駄な領域を表している可能性があります。 SIZE ON DISK の値が可能な限り SIZE 値に近づくように、クラスター サイズを小さくすることができます。 SIZE ON DISK と SIZE 値の大きな違いは、ボリュームに格納する平均ファイル サイズに対して既定のクラスター サイズが大きすぎることを示しています。
使用しているクラスター サイズは、ボリュームを再フォーマットすることによってのみ変更できます。 これを行うには、ボリュームをバックアップし、format コマンドと /a
スイッチを使用してボリュームをフォーマットし、適切な割り当てを指定します。 例: format D: /a:2048
(この例では、2 KB のクラスター サイズを使用します)。
Note
または、NTFS 圧縮を有効にして、クラスター サイズが正しくないために失われた領域を回復することもできます。 ただし、これによりパフォーマンスが低下する可能性があります。
ファイル属性または NTFS アクセス許可
Windows エクスプローラーとディレクトリ 一覧コマンドの両方 dir /a /s
アクセス許可を持つファイルとフォルダーの合計ファイルとフォルダーの統計情報が表示されます。 既定では、ファイルの非表示ファイルと保護されたオペレーティング システム ファイルは除外されます。 この動作により、Windows エクスプローラーまたは dir コマンドによって、不正確なファイルとフォルダーの合計とサイズの統計情報が表示されることがあります。
これらの種類のファイルを統計全体に含めるには、 Folder のオプションを変更します。 そのためには、次の手順に従います。
- [スタートをクリックし、My Computer をクリックし、ボリュームのドライブ文字 (例: D) をダブルクリックします。 これにより、ボリュームが開き、ルートに含まれているフォルダーとファイルが表示されます。
- Tools メニューの Folder Options をクリックし、View タブをクリックします。
- [非表示のファイルとフォルダー表示] チェック ボックスをオンにし、[保護されたオペレーティング システム ファイルを非表示にするをオフにする] チェック ボックスをオンにします。
- 警告メッセージが表示されたら Yes をクリックし、 Apply ボタンをクリックします。 この変更により、エクスプローラーと
dir /a /s
コマンドは、ボリュームに含まれるユーザーがアクセス許可を持つすべてのファイルとフォルダーを合計できます。
アクセスできないフォルダーとファイルを特定するには、次の手順に従います。
コマンド プロンプトで、
dir /a /s
コマンドの出力からテキスト ファイルを作成します。例: コマンド プロンプトで、次のコマンドを入力します:
dir d: /a /s >c:\d-dir.txt
。バックアップまたは復元ウィザードを起動します。
- [開始をクリックし、実行をクリックし、「ntbackup」と入力して、[
OK ] をクリックします。 - [ Advanced Mode をクリックします。
- [開始をクリックし、実行をクリックし、「ntbackup」と入力して、[
Tools メニューの [Options] をクリックし、[Backup Log] タブをクリックし、[Detailed] をクリックし、[
OK ] をクリックします。バックアップ ユーティリティで、 [バックアップ ] タブをクリックし、影響を受けるボリューム全体のチェック ボックス (例: D:) を選択し、[バックアップの開始 ] をクリック。
バックアップが完了したら、バックアップ レポートを開き、NTBackup ログ出力フォルダーのフォルダーと、手順 1 で保存したd-dir.txt出力を比較します。
バックアップはすべてのファイルにアクセスできるため、そのレポートには、Windows エクスプローラーと dir コマンドが表示されないフォルダーとファイルが含まれている場合があります。 Windows エクスプローラーを使用してアクセスできない大きなファイルやフォルダーを検索する場合は、NTBackup インターフェイスを使用してボリュームをバックアップせずにボリュームを見つける方が簡単な場合があります。
アクセス権のないファイルを見つけたら、Windows エクスプローラーでファイルまたはフォルダーのプロパティを表示するときに、 Security タブを使用してアクセス許可を追加または変更できます。 既定では、システム ボリューム情報フォルダーにはアクセスできません。 dir /a /s
コマンドにフォルダーを含めるには、適切なアクセス許可を追加する必要があります。
フォルダーまたはファイルに Security タブがない場合があります。または、影響を受けるフォルダーとファイルにアクセス許可を再割り当てできない場合があります。 アクセスしようとすると、次のエラー メッセージが表示されることがあります。
D:\folder_name\ にアクセスできません
アクセスが拒否されました
このようなフォルダーがある場合は、 Microsoft 製品サポート サービス にお問い合わせください。
ファイル名が無効です
無効なファイル名または予約済みのファイル名を含むフォルダーまたはファイルも、ファイルとフォルダーの統計情報から除外される場合があります。 先頭または末尾のスペースを含むフォルダーまたはファイルは NTFS では有効ですが、Win32 サブシステムの観点からは無効です。 そのため、Windows エクスプローラーもコマンド プロンプトも確実に操作できません。
これらのファイルまたはフォルダーの名前を変更または削除できない場合があります。 これを行おうとすると、次のいずれかのエラー メッセージが表示されることがあります。
ファイルまたはフォルダーの名前変更中にエラーが発生しました
ファイルの名前を変更できません: ソース ファイルまたはディスクから読み取ることができません。
または
ファイルまたはフォルダーの削除中にエラーが発生しました
ファイルを削除できません: ソース ファイルまたはディスクから読み取ることができません。
削除または名前変更できないフォルダーまたはファイルがある場合は、Microsoft 製品サポート サービスにお問い合わせください。
NTFS マスター ファイル テーブル (MFT) の拡張
NTFS ボリュームを作成してフォーマットすると、NTFS メタファイルが作成されます。 これらのメタファイルの 1 つは、マスター ファイル テーブル (MFT) という名前です。 作成時には小さくなりますが (約 16 KB)、ボリューム上にファイルとフォルダーが作成されると大きくなります。 ファイルが作成されると、MFT にファイル レコード セグメント (FRS) として入力されます。 FRS は常に 1024 バイト (1 KB) です。 ファイルがボリュームに追加されると、MFT が大きくなります。 ただし、ファイルが削除されると、関連する FRS は再利用のために無料としてマークされますが、FRS と関連する MFT 割り当ての合計は残ります。 そのため、大量のファイルを削除した後、MFTで使用されている領域を取り戻さないのです。
MFT のサイズを正確に確認するには、組み込みのデフラグ ツールを使用してボリュームを分析します。 結果のレポートでは、MFT 内のフラグメントのサイズと数に関する詳細情報が提供されます。
例えば次が挙げられます。
マスター ファイル テーブル (MFT) の断片化
合計 MFT サイズ = 26,203 KB
MFT レコード数 = 21,444
使用中の MFT の割合 = 81%
MFT フラグメントの合計数 = 4
ただし、NTFS 全体で使用されている領域 (オーバーヘッド) の詳細については、chkdsk.exe コマンドを実行し、次の行の出力を表示します。
システムで使用されています。
現在、未使用の MFT FRS レコードを統合し、未使用の MFT 割り当て領域を再利用するのは、サードパーティ製のデフラグのみです。
代替データ ストリーム
NTFS では、ファイルとフォルダーに代替データ ストリームを含めることもできます。 この機能を使用すると、複数のデータ割り当てを 1 つのファイルまたはフォルダーに関連付けることができます。 ファイルとフォルダーでの代替データ ストリームの使用には、次の制限があります。
- Windows エクスプローラーと dir コマンドは、ファイル サイズまたはボリュームの統計情報の一部として代替データ ストリーム内のデータを報告しません。 代わりに、プライマリ データ ストリームの合計バイトのみが表示されます。
- chkdsk からの出力は、代替データ ストリームを含め、ユーザーのデータ ファイルが使用する領域を正確に報告します。
- ディスク クォータは、ユーザーのデータ ファイルの一部であるすべてのデータ ストリーム割り当てを正確に追跡して報告します。
- NTBackup では、バックアップ ログ レポートにバックアップされたバイト数が記録されます。 ただし、代替データ ストリームを含むファイルは表示されません。 また、代替ストリームにデータを含むファイルの正確なファイル サイズも表示されません。
NTFS ファイル システムの破損
まれに、NTFS メタファイル$MFTまたは$BITMAPが破損し、ディスク領域が失われる可能性があります。 ボリュームに対して chkdsk /f
コマンドを実行することで、この問題を特定して修正できます。 chkdsk の終わりに向かって、マスター ファイル テーブル (MFT) BITMAP 属性のエラーを修正する$BITMAPを調整する必要がある場合は、次のメッセージが表示されます。 CHKDSK は、ボリューム ビットマップに割り当てられているとマークされた空き領域を検出しました。 Windows は、ファイル システムを修正しました。
ファイル割り当ての混乱を引き起こす可能性があるその他の NTFS 機能
NTFS では、ボリューム マウント ポイントとディレクトリ ジャンクションを作成できるハード リンクと再解析ポイントもサポートされています。 これらの追加の NTFS 機能は、物理ボリュームが消費している領域の量を判断しようとしたときに混乱を引き起こす可能性があります。
ハード リンクは、ファイル データがそのボリューム上のどこにあるかに関係なく、ファイルのディレクトリ エントリです。 すべてのファイルには、少なくとも 1 つのハード リンクがあります。 NTFS ボリュームでは、各ファイルに複数のハード リンクを含めることができるため、1 つのファイルを多数のフォルダー (または異なる名前の同じフォルダー内) に表示できます。 すべてのリンクが同じファイルを参照しているため、プログラムはリンクを開いてファイルを変更できます。 ファイルは、ファイル システムへのすべてのリンクが削除された後にのみ、ファイル システムから削除されます。 ハード リンクを作成した後、プログラムは他のファイル名と同様にハード リンクを使用できます。
Note
Windows エクスプローラーとコマンド プロンプトでは、リンクされているすべてのファイルが同じデータを共有し、実際にそのディスク領域を使用しない場合でも、リンクされているすべてのファイルが同じサイズとして表示されます。
ボリューム マウント ポイントとディレクトリ ジャンクションを使用すると、NTFS ボリューム上の空のフォルダーが別のボリュームのルートまたはサブフォルダーを指し示します。 Windows エクスプローラーと dir /s コマンドは、再解析ポイントに従い、宛先ボリューム上のすべてのファイルとフォルダーをカウントし、ホスト ボリュームの統計情報に含めます。 これにより、ホスト ボリュームで実際に使用されている領域よりも多くの領域が使用されていると誤解される可能性があります。
まとめると、chkdsk 出力、NTBackup GUI またはバックアップ ログ、ディスク クォータの表示を使用して、ボリュームでディスク領域がどのように使用されているかを判断できます。 ただし、Windows エクスプローラーと dir コマンドには、この目的で使用する場合、いくつかの制限と欠点があります。