🎮

Windows PCの空き容量に困ったら【ITエンジニア向け】

2024/12/07に公開

MMA Advent Calendar 2024 8日目の記事です

経緯


大変です!PCの容量が足りず,ゲームがダウンロードできません!どうしましょう.

ディスク全体の分析

ディスクの解析ツールを使って,どのファイルが容量を食っているかを分析します.

私のおすすめはDiskInfoです.

DiskInfoの使い方

インストールして起動したら,左上から解析

解析するドライブを選択して,OKをクリック.

すると解析が始まります.長いのでしばらく待ちましょう.

解析したら,以下のように棒グラフで表示されます.

サイズ,またはグラフのヘッダー行をクリックして容量順に並び替えましょう.

後はこの分析結果をもとに,どのファイルがいらないか,整理していきましょう.

エンジニア的ディスクを食い荒らす原因集

WSL


このフォルダが目立ってたらWSLのせいです.

WSLに入ってあらゆる掃除をしていきましょう.

WSLのお掃除

まずは容量を確認します.

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc       1007G   42G  915G   5% /

まあ,ほぼ一緒ですね.

つぎに,ncduで分析します.Linuxで使えるDiskInfoみたいなやつです.

$ sudo apt update
$ sudo apt install ncdu
$ cd /
$ sudo ncdu -x

-xオプションは必ずつけましょう.でないと,/mnt/c内も分析されてしまいます.


実際にやってみた結果

実際に子ディレクトリをたどって,原因をたどっていくと...

/var/lib
やっぱりDockerが悪さしていました.

というわけで,cacheを一通り掃除します.

## 全部一気にやる場合
$ docker system prune

## 個別でやる場合
$ docker buildx prune
Total:  9.491GB
$ docker image prune
Total reclaimed space: 0B
$ docker container prune
Total reclaimed space: 9.846kB
$ docker volume prune
Total reclaimed space: 2.617GB

あとはaptの掃除をしておきましょう

$ sudo apt autoclean
$ sudo apt autoremove

WSLのディスクの圧縮

ただ,中身がきれいになっても,外側が小さくなっていないため,Cドライブのディスク容量はそのままです.

今度はそっちをどうにかします.

まず,WSLをおとします.

PS > wsl --shutdown

WSLのディレクトリ内にある仮想ディスクのフルパスを控えておきます.DiskInfoの右クリックメニューにパス名をコピーフルパスでできるはずです.

おそらく,以下の感じになるはずです.

$HOME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx

Diskpartを起動します.

PS > diskpart

仮想ディスクを選択します.先ほど控えたフルパスをそのまま貼り付けます.

DISKPART> select vdisk file=<vhdxのパス>

あとはアタッチして圧縮してデタッチしておわりです.

DISKPART> attach vdisk readonly
DISKPART> compact vdisk
DISKPART> detach vdisk

これでWSLの掃除が完了しました.

Docker Desktop


実はわたし,Docker Desktopをあまり使いません

とにもかくにもDockerは容量を食い荒らします.掃除しましょう.

Docker Desktopの掃除

## 全部一気にやる場合
PS > docker system prune

## 個別でやる場合
PS > docker buildx prune
PS > docker image prune
PS > docker container prune
PS > docker volume prune

上述のコマンドでは,使われていそうなコンテナは消してくれないので,消してほしいコンテナは手動で消しましょう.

あとは,WSLの時と同じく,仮想ディスクの容量を縮めます.
その際,Docker desktopからエンジンを落とすのを忘れないようにしましょう.

PS > diskpart
DISKPART> select vdisk file=<Docker Desktopのvhdxのパス>
DISKPART> attach vdisk readonly
DISKPART> compact vdisk
DISKPART> detach vdisk

Python pip


あまり大した容量ではないですが

pipもcacheがあるので,消去して容量を確保しましょう.

PS > pip cache purge

Python pycache

今時venvで環境構築することが多い時代です.グローバルにあるpycacheぐらいは削除してもよさそうです.

まず,該当するグローバルのPythonのディレクトリに移動します.

PS > cd $ENV:LOCALAPPDATA\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0

そして一括で削除します.

PS > Get-ChildItem -r __pycache__ | Remove-Item -Recurse -Force

C:\直下で上のコマンドを実行するのも悪くないと思います.しかし,次回importする際に再生成のため時間がかかることに留意する必要があります.

Android Virtual Deviceのシステムイメージ


あまり使ってなくても占有率が多い

ディスクイメージなどが特に容量多いです.本当に必要なものだけ残して,いらないものはSdk Managerで消しておきましょう.

ついでに,Virtual Deviceも不要なものは消しておきましょう.

あとは基本

「ダウンロード」フォルダー


荒れがち

isoファイルなど,もう使わないファイルも多いと思います.
いらないものは消しましょう.

「ゴミ箱」


やたら謎ファイルが多い

DiskInfoで削除しても,完全には削除されず,ごみ箱に移されます.

必要なものがないか確認したら空にしておきましょう.

ディスクのクリーンアップ


Windows11では,ここにあります.

Windows11は自動クリーンアップ機能があるので,あまり効果はないかもしれません.

「システムファイルのクリーンアップ」をしようとしたが,雀の涙

おわりに

何とか掃除できましたー!

参考

https://qiita.com/developer-kikikaikai/items/7deaffd0c9b521e1366c

https://01futabato10.hateblo.jp/entry/2022/12/02/095031

https://qiita.com/hyt-sasaki/items/e2cbc4cfb5ae698de498

https://qiita.com/yknaka_/items/d9f444f37cb418088081

https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=7711-2922

Discussion