システムボリューム情報フォルダの扱いは、Windowsがほとんどの管理者にとってさえも厳重に管理しているため、少々厄介な場合があります。このフォルダには、復元ポイント、シャドウコピー、インデックスデータベース、その他回復とパフォーマンスに不可欠なシステムデータなどが保存されるはずです。しかし、このフォルダが数百GBに膨れ上がっているのに気づいたら、確かにディスク容量を大量に消費している可能性があります。原因は、不要になった古いシャドウコピーやバックアップが残っているだけの場合も少なくありません。これらを削除すればディスク容量を節約できますが、復元ポイントや重要なシステム情報を壊さないよう注意が必要です。そこで、このガイドでは、システムを壊すことなくフォルダの中を覗き込み、不要なファイルを整理する方法をいくつか紹介します。
Windows でシステムボリューム情報フォルダを管理およびクリーンアップする方法
フォルダに安全にアクセスし、その内容を理解する
まず、このフォルダはWindowsが誰にも変更できないように隠し保護されていることに気づくでしょう。このフォルダを表示するには、エクスプローラーを開き、「オプション」→ 「表示」を開き、「保護されたオペレーティングシステムファイルを表示しない(推奨)」のチェックを外します。これで、ドライブのルートにシステムボリューム情報が表示されますが、通常通り開こうとすると、「場所が利用できません…アクセスが拒否されました」のようなエラーが表示されます。これは当然のことながら、Windowsがアクセスを必要以上に困難にしているからです。
内部にアクセスするには、所有権を取得し、完全な制御権を与える必要があります。ある環境では、コマンドプロンプト(管理者)で次のコマンドを実行することでこれが実現しました。
takeown /f "C:\System Volume Information" & icacls "C:\System Volume Information" /grant %USERNAME%:F
これにより、あなたは所有者となり、完全な権限が付与されます。ただし…注意!フォルダをこのように開いたままにしておくのは、システムファイルや復元ポイントを誤って削除してしまう可能性があるため、あまり意味がなく、リスクも伴います。権限を通常の状態に戻すには、以下を実行してください。
icacls "C:\System Volume Information" /setowner "NT Authority\System" & icacls "C:\System Volume Information" /remove %USERNAME%
あるいは、 PsExecを使用して PowerShell を SYSTEM として実行し、より詳細な情報を取得することもできます。管理者特権のコマンドプロンプトで以下を実行します。
PsExec.exe -i -s powershell.exe
SYSTEM権限でPowerShellウィンドウが開きます。そこから以下のコマンドでフォルダの内容を一覧表示できます。
Get-ChildItem 'C:\System Volume Information\' -Force | Sort-Object Length -Descending | Select-Object Name, @{Name='Size(Mb)'; Expression={[int]($_. Length / 1MB)}}
使用されているスペースの量を確認したい場合は、次のコマンドですべてのファイルを合計します。
(Get-ChildItem 'C:\System Volume Information\' -Force | Measure-Object -Property Length -Sum).Sum / 1GB
これにより、何がスペースを占有しているのかがわかります。通常、古いシャドウコピーやバックアップが主な原因です。
システムの古いシャドウコピーを削除する
多くの場合、フォルダのサイズが急増するのは、古いシャドウコピーやバックアップが原因です。特にシステムの復元が有効になっている場合や、バックアップが自動で実行されている場合は顕著です。シャドウストレージの割り当て状況は、以下の方法で確認できます。
vssadmin list shadowstorage
これにより、ドライブごとにシャドウコピー用に予約されている最大容量が表示されます。容量が制限されていないか非常に大きい場合は、フォルダが巨大化している原因である可能性があります。
空き容量を増やすには、古いシャドウコピーのサイズを変更したり削除したりします。例えば、Cドライブのシャドウストレージを2GBに制限するには、次のコマンドを実行します。
vssadmin resize shadowstorage /on=c: /for=c: /maxsize=2GB
または、ディスク容量の 10% に制限するには、次のようにします。
vssadmin resize shadowstorage /on=c: /for=c: /maxsize=10%
完了したら、次のコマンドで既存のシャドウ コピーを一覧表示します。
VSSADMIN list shadows /for=c:
不要になった古いスナップショットが見つかった場合は、次のように削除します。
vssadmin delete shadows /for=C: /oldest
または、C: のすべてのシャドウ コピーを消去します (これを実行してもよいかどうか確認してください)。
vssadmin delete shadows /for=C: /all
システムのプロパティ(「ファイル名を指定しsystempropertiesprotectionて実行」と入力)では、復元ポイントの容量を調整したり、一時的に保護を無効にしたり、ディスク容量が不足している場合はすべての復元ポイントを削除したりすることもできます。ただし、回復オプションを削除することになるので、その影響を理解しないまま実行しないでください。
Windows Server 上の重複排除チャンクストアのクリーンアップ
Windows Server をご利用で、システムボリューム情報内に巨大なDedup\ChunkStoreディレクトリが表示される場合、それはデータ重複除去が有効になっているためです。これは、重複するデータチャンクをリンクに置き換えることで動作し、時間の経過とともに容量を節約しますが、ファイルを不適切に移動または削除すると、これらのチャンクがそのまま残ってしまうことがあります。
今すぐクリーンアップを開始する必要がありますか?次の PowerShell を実行してください。
start-dedupjob -Volume C: -Type GarbageCollection
これにより、未使用のチャンクがスキャンされ、削除されます。その後、次のコマンドを実行できます。
start-dedupjob -Volume C: -Type DataScrubbing
整合性をチェックします。進捗状況を確認するには、 を確認してくださいGet-DedupJob。安全であることが確実でない限り、重複排除を無効にしないでください。実際には、負荷の高いサーバーではストレージ効率が向上する可能性があります。
スペースを解放する別のテクニック
シャドウコピーや重複排除の調整に加えて、WinSxSフォルダのクリーンアップ、古いWindows Updateの削除、未使用のユーザープロファイルの削除、キャッシュファイルや一時ファイルの削除なども検討してみてください。ディスククリーンアップ( と入力cleanmgr.exe)を使用するか、以下のコマンドを実行してください。
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
これにより、古くなったシステム ファイルが削除され、全体のサイズが削減されます。