Windowsパソコンのシステムドライブとして使っているHDDまたはSSDがある日を境に、日に日に空き容量が少なくなり、ついにはたった数日で空き容量が0MBになったという症状に遭遇しました。
特にCドライブにはWindowsとアプリケーションをインストールしているくらいで、他に巨大なデータを溜め込んでいるわけもなく500GBある容量が残り0MBになってしまい。以下のようなエラー表示が出るようになりました。
ドライブC:\に0 MBの空き領域しかありません。 情報の損失およびパフォーマンスの問題を防ぐには、空き領域を増やす必要があります。 詳細についてはヘルプとサポートを参照してください。
ウィルスに感染した感じもなく。ゴミ箱を空にしてみたり、ディスクのクリーンアップや、IEの一時ファイルの削除などを行いましたが、空き容量が数百MBしか増えず、まったく効果がありませんでした。
原因は予想もしていないところにあり、解決方法がみつかったのでメモ。
原因は大量のログファイル
そこでいろいろ調べて分かった原因が大量のログデータの発生でした。ログの圧縮の失敗でログファイルが削除されず生成され続けるために、ディスク容量を食いつぶしてしまうという障害のようです。詳しくは以下のサイトが参考になります。
大量のログファイルを削除
以下のファイルを確認したところ、全部で約350GBくらいありました。これを削除したらすっきり空き容量が増えました。
- C:\Windows\Logs\CBS\CbsPrersist_***************.cab
- C:\Windows\Logs\CBS\CbsPrersist_***************.log
- C:\Windows\Temp\cab_***_*(拡張子なし)
削除後は再起動しても通常通りの起動でき、システムに影響は特に見当たりませんでした。数日は様子を見ていますが今のところ再発もありません。
削除を自動化するバッチファイル
上記の350GB分のログファイルは大量ですので、手動で削除するのはちょっと手間です。そこで削除を自動で行えるバッチファイルを作成してみたのでメモ。forfilesコマンドでファイル抽出してdelコマンドで削除します。
いきなり削除する場合
実行中は画面に何もアクションがなく、該当するファイルを削除しまくります。30日以上古いファイルを対象に削除するように作っています。
@echo off forfiles /P C:\Windows\Logs\CBS /D -30 /M CbsPrersist_*.cab /C "cmd /c del @file" forfiles /P C:\Windows\Logs\CBS /D -30 /M CbsPrersist_*.log /C "cmd /c del @file" forfiles /P C:\Windows\Temp /D -30 /M cab_* /C "cmd /c del @file" pause
/D -30の部分が日数を指定している部分で省略すれば古い新しいに関係なく、マッチするファイル名のファイルをすべて削除します。
削除対象のファイルを確認したい場合
どのくらい削除するファイルがあるか事前に見たい場合はdel @fileの前にechoを挿入すると削除せず、対象ファイルを表示してくれます。
@echo off forfiles /P C:\Windows\Logs\CBS /D -30 /M CbsPrersist_*.cab /C "cmd /c echo del @file" forfiles /P C:\Windows\Logs\CBS /D -30 /M CbsPrersist_*.log /C "cmd /c echo del @file" forfiles /P C:\Windows\Temp /D -30 /M cab_* /C "cmd /c echo del @file" pause
ログを残したい場合
削除したファイルをログに残したい場合は>> C:\DeleteFile.logといった感じでログのファイルパスを最後に追加すればOKです。
forfiles /P C:\Windows\Logs\CBS /D -30 /M CbsPrersist_*.cab /C "cmd /c del @file" >> C:\DeleteFile.log
肥大化しているファイルを探せるフリーソフト
Windowsのログ以外で100GB以上の肥大化したファイルがある場合もあるようです。その場合はどこのファイルが肥大化しているのか探すのが大変です。それを調べるフリーソフトがあるようなので試してはいませんが、参考にメモ。
Windowsの場合
MacOSの場合
まとめ
今回、Windows 7 のPCでこの症状が発生しました。Windows 10/8.1/8 でも起こる障害かもしれません。もし、何もしていないのに急にシステムドライブ(Cドライブ)の空き容量が0MBになったら、これが原因かもしれません。