Cドライブ容量不足|消す前に測ったらDockerは4.8GB

Cドライブの空きが2割を切っとりました。Dockerも21GBあるから、そこも削れるはず。そう思って測り直したら、回収できるのは4.8GBだけでした。

Cドライブの容量不足は、消す前にフォルダごとのサイズを測るのが先です。僕のPCでは、原因はゲーム1本のフォルダ(119GB)で、Cの約4分の1を占めとった。別のSSDへコピーして、設定ファイルの1行を書き換えて、元を消す。それで空きは18.6パーセントから44.2パーセントに戻りました。Dockerのほうは割に合わんので、手を付けてません。

なんで気にしたかというと、このPCは毎日決まった時刻に自動の処理がいくつも走るからです。ディスクが埋まると、ログが書けんまま黙って失敗する。壊れとるのに気づけん形になるのが、一番怖い。

Cドライブの容量不足は、まずフォルダごとに測る

Cドライブの中身を大きい順に並べた棒グラフ。ゲーム1本が119GBで最大、Program Files65GB、Windows49GB、Docker21GBと続く
測ってみると一番重いのはゲーム1本だった

AIと一緒に、Cの中の大きいフォルダを順に測りました。大きいものを抜き出すとこうです。

  • ゲーム1本のフォルダ:119GB(Cの約4分の1)
  • Program Files(入れたソフト全般):65GB
  • Windows本体:49GB
  • Docker:21GB
  • AppData の Local\Microsoft(EdgeやOfficeのキャッシュ):12.5GB
  • ダウンロード:3.4GB
  • npmのキャッシュ:2.0GB

119GBが飛び抜けとる。ダウンロードを全部片付けても3.4GBで、一番大きいファイルでも0.44GB。119GBの前では誤差です。

測り方はPowerShellです。使ったのはこの形(フォルダ名も出るように少し足してます)。

Get-ChildItem 'C:\Program Files' -Directory | ForEach-Object { $_.Name; (Get-ChildItem $_.FullName -Recurse -File -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum }

出てくる数字はバイトです。注意が1つ。C全体を一度に測ると、2分たっても終わらんかった。フォルダを1段ずつ下りて測るほうが早いです。

119GBのフォルダは消さずに別のSSDへ移した

消すんやなく、動かすことにしました。また遊ぶゲームなので、消したら入れ直しになる。

移し先で一回迷いました。Dドライブは空きが2.9TBあるけど、中身は昔ながらのHDD。ゲームを置くと読み込みが遅くなる。もう1台のGドライブがNVMeのSSDで空きが468GBあったので、そっちにしました。

コピーはWindowsに最初から入っとる robocopy です。

robocopy (元のフォルダ) (移し先のフォルダ) /E /COPY:DAT /MT:16

/E はサブフォルダごと、/MT:16 は16本並べてコピーする指定です。119GBが33秒で終わりました。SSD同士やと、ここまで速い。

あえて使わんかったのが /MIR。元と先をそっくり同じにするオプションで、先にしか無いものは消されます。移し先のフォルダには別のゲームがもう入っとったので、/MIR やとそっちが消えてまう。

もう1つ。robocopy は終わった時に「1」を返しました。普通のコマンドなら1は失敗の合図やけど、robocopy の1は「ファイルを正常にコピーした」。失敗は8以上です。終了コードだけ見て慌てんように。

元を消す前に、両側のファイル数とバイト数を数え直す

コピーが終わっても、すぐには消しません。robocopy の自己申告やなく、元と先の両方を数え直しました。どっちも262ファイル、127,743,870,425バイト(Windowsの表示では約119GB)。1バイトまで一致です。

次に、ゲームの場所を書いてある設定を探しました。書き換えが要ったのは、設定ファイル1つの中の1行だけ。キャラの設定などは自分のユーザーフォルダ側にあるので、動かさんでええ。

書き換える前にバックアップを取って、文字列の置き換えだけで直しました。JSONを読み込んで書き戻す形にすると、整形が変わってアプリが読めんくなる恐れがあるからです。そのあと実機で起動して、ログインや画面の表示まで5項目を確かめました。

消す直前の最終確認で、数字が1つズレました。G側だけ1.66GB増えとる。ファイル数は262のまま。調べたら、約90秒の間に128ファイルの日時が更新されとった。ゲームが更新の確認をG側で走らせた跡です。同じ時刻、C側は1バイトも変わってへん。つまり、ゲームはもうG側を使っとる。ズレが、逆にいちばん欲しい証拠になりました。

C側の削除は、管理者のPowerShellで自分の手でやりました。空きは86.7GB(18.6パーセント)から205.6GB(44.2パーセント)へ。118.9GB戻りました。

Dockerの21GBのうち、回収できるのは4.8GBだけやった

次はDockerです。Docker Desktopのフォルダは21GB。ただ、これは全部込みの大きさで、使ってへん分だけの数字やない。docker system df で回収できる量を見たら、こうでした。

  • イメージ:4.216GB
  • ボリューム:0.611GB
  • コンテナ:0.019GB

合わせて約4.8GB。残りの大半は今も使っとる分です。AIの仕組みを試すのに入れたDifyだけで、約9.6GBありました。

しかもWindowsのDocker Desktopは、中身を1つの仮想ディスク(docker_data.vhdx、21.04GB)にまとめて持っとる。prune(使ってへんものの一括削除)をしても、このファイルは自動では縮まらん、とAIと調べて分かりました。縮める手順を別に踏まんと、Cの空きは増えんようでした。

Cの空きはもう44.2パーセントある。4.8GBのために縮める手順まで踏むのは割に合わん。Dockerは「やらん」と決めて終わりにしました。縮め方は試してへんので、ここでは書きません。

Cがまた細ってきたら、次も大きい順に測るところから始めるつもりです。

よくある質問

Cドライブの容量不足、まず何をすればいい?

消す前に、フォルダごとのサイズを測るのが先です。うちは119GBのフォルダ1個がCの約4分の1でした。ダウンロードを全部消しても3.4GB。大きい1個を動かすほうが、細かい掃除を重ねるより早く戻ります。

Docker Desktopの容量はpruneで減る?

使ってへんイメージなどは消せます。ただ、うちで回収できる量は21GBのうち約4.8GBでした。うちで調べた範囲では、Windowsの仮想ディスク(vhdx)は自動では縮まらんようなので、Cの空きを増やすには縮める手順が別に要りそうです。

大きいフォルダを別のドライブへ移す時の注意は?

移し先に別のものが入っとるなら、robocopy の /MIR は使わんほうが安全です。コピーのあとは、元と先のファイル数とバイト数を数え直してから消す。設定の書き換えは、うちは1行で済みましたが、アプリによって違います。

あわせて読みたい