Windows PCの空き容量に困ったら【ITエンジニア向け】
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は自動クリーンアップ機能があるので,あまり効果はないかもしれません.
「システムファイルのクリーンアップ」をしようとしたが,雀の涙
おわりに
何とか掃除できましたー!
参考
Discussion