WSL2 で No disk space left on device が出た時の対処法
問題
WSL2 で python スクリプトを動作させていたところ、突然以下のエラーが出てしまった。
1No space left on device
ひとまずdf -h
でディスクの使用量を確認すると、以下のようになっていた。(値は例です)
1Filesystem Size Used Avail Use% Mounted on 2/dev/sdb 250G 250G 0 100% / 3...
Windows の容量は十分余裕があったが、WSL2 のディスク容量は Winsows のものとは切り離されており、250GB しかありませんでした。 この容量は増加させることもできるのですが、何が原因か気になったのでそれを調査しました。
原因
コマンドで容量を調べていってもいいのですが、GUI の方が分かりやすいと思ったのでエクスプローラーで確認していきます。
まず、エクスプローラーのアドレスバーに以下のように入力します。Ubuntu の部分は各自の Distro 名に置き換えてください。
1\\wsl.localhost\Ubuntu
その後、適当な範囲でフォルダを右クリしてファイル容量を調べます。適当に2分探索しました。
すると、どうやら.cache
フォルダが原因のようでした。その中のhuggingface
フォルダが大半の容量を占めていることが分かりました。
ここまでついてやっと原因が分かりました。huggingface で様々なモデルをダウンロードしていたのですが、そのモデルの容量が大きすぎてディスク容量を圧迫していたようです。(例えば MPT-30 は 50GB ぐらいある)
無事このモデルを削除したところ、ディスク容量が解放されました。