Linuxを使っていてディスクの空きが0%になってしまったときの対処法を紹介します。
まず、x-windowシステムが使えなくなりました。そのためGUIでのログインができません。始めは何が起きたか理解できませんでした。ログインしてから画面の表示はあるけどアイコンなりタスクバー表示されない場合はディスクがいっぱいになっている可能性を疑うのもありかもしれません。
仕方ないのでsshでターミナルからログインします。ディスクの使用量を見るためにはdfコマンドを使用します。
1 2 3 4 5 6 7 8 9 10 |
$df -h Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 395M 1.2M 394M 1% /run /dev/sda1 12G 9.1G 2.6G 78% / tmpfs 2.0G 9.3M 2.0G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/loop0 88M 88M 0 100% /snap/core/5328 tmpfs 395M 4.0K 395M 1% /run/user/116 |
こんな感じで表示されると思います。-hオプションは –human-readable オプションで、人間が読みやすい表示にしてくれるものです。ここでは /dev/sda1が78%使用されていることがわかります。これが100%になっているとかつかつで何も動けなくなります。
私の場合は、キャッシュファイルが増えてディスクが圧迫されているのではないかというあたりをつけていたので、どのディレクトリがディスクを食っているのか調べることにしました。コマンドは du コマンドを使用します。
1 |
$sudo du -h --max-depth 1 /home |
–max-depth オプションはターゲットのディレクトリ(ここでは/home)から1階層下まで表示するというオプションです。これが無いと最下層まで表示されるので、見づらくなる場合があります。
duコマンドは標準のコマンドですが、ディレクトリごとのディスクサイズを調べる方法としてはもっと便利なコマンドがあります。それがncduです。標準では入っていませんのでまずインストールします。(最もディスクの空きがない場合はインストールできないので注意が必要です。)
1 |
$sudo apt install ncdu -y |
使い方は簡単で、ncdu ディレクトリ名 を入力すると一覧で表示されるうえにディレクト間を移動できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
ncdu 1.12 ~ Use the arrow keys to navigate, press ? for help --- / -------------------------------------------------------------------------- 3.7 GiB [##########] /usr . 1.8 GiB [#### ] /home . 1.4 GiB [### ] /var . 671.7 MiB [# ] /snap 168.9 MiB [ ] /lib 77.2 MiB [ ] /boot 18.1 MiB [ ] /sbin 15.8 MiB [ ] /bin . 14.5 MiB [ ] /etc . 1.1 MiB [ ] /run . 64.0 KiB [ ] /tmp ! 16.0 KiB [ ] /lost+found 4.0 KiB [ ] /lib64 e 4.0 KiB [ ] /srv ! 4.0 KiB [ ] /root |
これで調べた結果、Firefoxのキャッシュが肥大化してディスクを圧迫していることがわかりました。しかし、Xwindowが起動しないためFirefoxを起動させることができません。Firefoxが起動しないと設定メニューからキャッシュ削除ができません。
ここまでくると直接キャッシュを消すしかないので、~/.cache/mozilla/firefox ごと消すことになります。
1 |
rm -rf ~/.cache/mozilla/firefox |
これで私の場合はディスクの空き容量を回復することができました。