今回は、先日ディスク容量に悩まされたので、ディスク容量圧迫の原因についてまとめます。
先日仮想環境VirtualBoxでDebianを使用していたら、
知らぬ間にディスク容量が95%になっており、何が原因がつかめず悩みました。
しかし、調べまくった結果、原因は「ゴミ箱」でした。
それでは、詳しく解説します。
発生した問題と開発環境
問題が起きた原因は、以下の環境です。
仮想環境:VirtualBox【バージョン 6.0.14 r133895 (Qt5.6.2)】
LinuxOS:Debina
ホストOS:Windwos10
ディスク容量の状況
User@Debian:~$ df -h
/dev/mapper/Debian–vg-root 31G 27G 1.7G 95% /
容量の原因は「ゴミ箱」
ディスク容量がいっぱいになった時は、以下のファイルパスを確認してみてください。
以下のようなGUIを使用している人は、よく見る「ゴミ箱」ではありません。

このファイルパスにあるゴミ箱は、「管理者のゴミ箱」です。
どのタイミングで、「管理者のゴミ箱」にファイルが格納されるのでしょうか。
答えは、「ログインユーザーが管理者権限でファイルを削除したとき」です。(まんまですね。)
上記のファイルパスを確認してみると以下の3つのディレクトリがあります。
1 2 3 4 5 |
User@Debian:~$ ls -l /home/User/.local/share/Trash/ 合計 28 drwx------ 22 User User 4096 5月 30 14:50 expunged drwx------ 6 User User 12288 5月 30 14:51 files drwx------ 2 User User 12288 5月 30 14:51 info |
このディレクトリの容量を調べてみましょう。
1 2 3 4 |
User@Debian:~$ sudo du -s -h /home/User/.local/share/Trash/* |sort -n 5.8M /home/User/.local/share/Trash/files 15G /home/User/.local/share/Trash/expunged 44K /home/User/.local/share/Trash/info |
ここがディスク容量を圧迫していた原因でした。
それぞれ説明していきます。
/home/User/.local/share/Trash/expunged
このディレクトリに関する情報は、調べても一切ヒットしなかったので、まとめます。
私の環境でディスク容量が圧迫していた原因は、.local/share/Trash/expungedにありました。
このファイルに何が入っていたかと調べてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
User@Debian:~$ sudo ls -l /home/User/.local/share/Trash/expunged/ 合計 80 drwx------ 14 User User 4096 5月 28 13:34 1267574603 drwx------ 14 User User 4096 5月 28 11:12 1436928464 drwx------ 4 User User 4096 5月 28 14:10 2197676137 drwx------ 13 User User 4096 4月 1 08:19 2781978847 drwx------ 14 User User 4096 5月 27 11:58 2803165290 drwxrwxrwx 4 root root 4096 4月 1 08:19 2899766730 drwx------ 13 User User 4096 4月 1 08:19 3227185015 drwx------ 14 User User 4096 5月 28 13:53 3259714353 drwxrwxrwx 4 root root 4096 4月 1 08:19 3472617615 drwx------ 14 User User 4096 5月 28 14:37 3506982058 drwx------ 13 User User 4096 4月 1 08:19 3630424732 drwx------ 3 User User 4096 4月 1 08:19 3637541275 drwx------ 14 User User 4096 5月 28 15:28 3773794587 drwx------ 14 User User 4096 4月 1 08:19 3847952378 drwx------ 13 User User 4096 4月 1 08:19 461281774 drwx------ 12 User User 4096 4月 1 08:19 501081716 drwx------ 14 User User 4096 5月 27 11:58 725418797 drwx------ 14 User User 4096 5月 28 14:13 936609419 drwx------ 14 User User 4096 5月 27 11:58 972273848 drwx------ 14 User User 4096 4月 1 08:19 974106353 |
何やら、謎の数値ファイルが格納されていました。
この内容を確認すると、ルートファイルシステムを作成に失敗したときの残骸が残っていました。
作成したルートファイルシステムの全てが入っいたわけではなく、ルートファイルシステムの一部が入っていました。
そのファイルは、管理者でないと削除できない場合や、ファイルに実行権(chmod -x)が付与されていないファイル群がありました。
このことから、実行権の関係で削除できなかったファイル、もしくはrootユーザー以外では削除しきれないファイルがここへ移動するみたいです。
その結果、ごみが積もりに積もってディスク容量を圧迫していました。
このディレクトリ以下のファイルは削除しても、システムに問題ありません。
Linuxのディスク容量を圧迫している場合は、削除してももんだないでしょう。
以下のコマンドで削除できます。
1 |
User@Debian:~$ sudo ls -l /home/User/.local/share/Trash/expunged/* |
/home/User/.local/share/Trash/files
このディレクトリには、管理者で削除された実際のファイルが存在します。
1 2 3 4 5 6 7 8 9 |
User@Debian:~$ ls -l /home/User/.local/share/Trash/files/ 合計 489996 -rw-r--r-- 1 User User 210 2月 4 00:59 sample.c -rw-r--r-- 1 User User 35 3月 1 22:03 sudo -rw-r--r-- 1 User User 8278 2月 12 00:24 temp.2.txt -rw-r--r-- 1 User User 11351 2月 12 01:07 temp.3.txt -rw-r--r-- 1 User User 10066 2月 11 23:41 temp.txt -rw-r--r-- 1 User User 2 2月 3 01:04 test 多いため割愛 |
このディレクトリに存在するファイルは、ログインユーザーのゴミ箱には移動せず、このディレクトリに移動します。
このディレクトリもディスク容量圧迫の原因になるので、削除しても構いません。
以下のコマンドで削除してしまいましょう。
1 |
User@Debian:~$ sudo ls -l /home/User/.local/share/Trash/files/* |
/home/User/.local/share/Trash/info
このディレクトリは、削除されたファイル情報が書かれたファイルが存在します。
1 2 3 4 5 6 7 |
User@Debian:~$ ls -l /home/User/.local/share/Trash/info/ -rw-r--r-- 1 User User 73 3月 1 12:46 sample.c.trashinfo -rw-r--r-- 1 User User 124 4月 18 09:37 sudo.trashinfo -rw-r--r-- 1 User User 145 2月 12 00:30 temp.2.txt.trashinfo -rw-r--r-- 1 User User 145 2月 12 01:09 temp.3.txt.trashinfo -rw-r--r-- 1 User User 145 2月 11 23:55 temp.txt.trashinfo -rw-r--r-- 1 User User 74 3月 1 12:46 test.trashinfo |
先程の/home/User/.local/share/Trash/files/に対応したファイルに関するinfoファイルが格納されています。
このファイルに何が書かれているのか確認しましよう。
1 2 3 4 |
User@Debian:~$ cat /home/User/.local/share/Trash/info/sample.c.trashinfo [Trash Info] Path=/home/User/sample.c DeletionDate=2020-03-01T12:46:31 |
書かれている内容は、「削除前のファイルパス」「削除したときのタイムスタンプ」が書かれています。
もちろんこのディレクトリ以下のファイルも削除しましょう。
1 |
User@Debian:~$ sudo ls -l /home/User/.local/share/Trash/info/* |
/home/User/.local/share/Trash/を整理した結果
管理者のゴミ箱:/home/User/.local/share/Trash/を整理した結果、以下の通りディスク容量が増えました。
User@Debian:~E$ df -h
/dev/mapper/Debian–vg-root 31G 7.8G 21G 28% /
いやー、これで一安心ですよ。
Linuxディスク容量圧迫原因を調べる
以下に個人的にオススメな、Linuxディスク容量を確認するために使用したコマンドを紹介します。
ハードディスクのベンチマークを知る方法も以下にまとめたので、参考にしてみてください。
dfコマンド
オプション-hを使用すると、Linuxディスク空き容量を人に見やすい形式で出力してくれます。
私はオプション-hよく使用します。
【コマンド】 df -h
1 2 3 4 5 6 7 8 9 10 11 |
mint@mint-VirtualBox:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 457M 0 457M 0% /dev tmpfs 99M 1.1M 98M 2% /run /dev/sda1 16G 6.7G 8.2G 46% / tmpfs 492M 0 492M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 492M 0 492M 0% /sys/fs/cgroup tmpfs 99M 16K 99M 1% /run/user/1000 /dev/sr0 74M 74M 0 100% /media/mint/VBox_GAs_6.0.14 |
duコマンド
基本的に
私がおすすめなのが、以下の使い方です。
アクセス制限を避けるためsudoコマンドを使用し、duコマンドの結果を降順に表示します。
/*の部分は、自分が検索したいファイルパスを指定します。例:/etc/*など
sudo du -s -h /* |sort -n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
mint@mint-VirtualBox:~$ sudo du -s -h /* |sort -n 0 /dev 0 /initrd.img 0 /initrd.img.old 0 /proc 0 /sys 0 /vmlinuz 1.1M /run 4.0K /cdrom 4.0K /lib64 4.0K /mnt 4.0K /srv 4.6G /usr 7.5M /home 15M /etc 16K /lost+found 16M /bin 19M /sbin 21M /opt 36K /root 72K /tmp 74M /media 82M /boot 601M /lib 630M /var 760M /swapfile |
こちらは、先ほどと違いduコマンドの結果を、昇順に並び替えます。
sudo du -s -h /* |sort -nr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
760M /swapfile 630M /var 601M /lib 82M /boot 74M /media 72K /tmp 36K /root 21M /opt 19M /sbin 16M /bin 16K /lost+found 15M /etc 7.5M /home 4.6G /usr 4.0K /srv 4.0K /mnt 4.0K /lib64 4.0K /cdrom 1.1M /run 0 /vmlinuz 0 /sys 0 /proc 0 /initrd.img.old 0 /initrd.img 0 /dev |
コマンドの勉強で参考にした本は以下の本を使いました。
Linuxシステム全体を把握するためには、以下の本がおススメ。
最後に
今回は、意外に見落としがちなディスク容量を圧迫する原因として、ゴミ箱を紹介しました。
私は、この存在に気付かずに、いつの間にかディスク容量が圧迫していました。
もし、あまり容量をとるようなファイルを置いてないのに、ディスク容量が圧迫してきたなと感じたら、「管理者のゴミ箱」を確認してみてください。
コメント
本ページ、大変参考になりました。
一点、ファイル削除のコマンドはlsではなく、rmではないでしょうか?
lsだとファイルの表示のみでとどまってしまいます。
sudo ls -l /home/User/.local/share/Trash/expunged/*
の箇所を
sudo rm -rv /home/User/.local/share/Trash/expunged/*
に修正されると良いかと思います。
以上、よろしくお願いいたします。