【Linux】意外と気付かないディスク容量圧迫の原因:Trash

【Linux】意外と気付かないディスク容量圧迫の原因:Trash Linux
スポンサーリンク

今回は、先日ディスク容量に悩まされたので、ディスク容量圧迫の原因についてまとめます。

先日仮想環境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% /

容量の原因は「ゴミ箱」

ディスク容量がいっぱいになった時は、以下のファイルパスを確認してみてください。

ファイルパス: /home/User/.local/share/Trash/

(※Userは皆さん使用している環境のユーザー名を入力してください。)

以下のようなGUIを使用している人は、よく見る「ゴミ箱」ではありません。

Linux_Trash

このファイルパスにあるゴミ箱は、「管理者のゴミ箱」です。

どのタイミングで、「管理者のゴミ箱」にファイルが格納されるのでしょうか。

答えは、「ログインユーザーが管理者権限でファイルを削除したとき」です。(まんまですね。)

ログインユーザーでファイルの削除をする場合

・rmコマンドのみで削除できるファイル:ユーザーのゴミ箱(上記の画像)

・sudo rmで管理者権限を伴い削除したファイル:ユーザのゴミ箱にはいかず、「管理者のゴミ箱」に移動

上記のファイルパスを確認してみると以下の3つのディレクトリがあります。

このディレクトリの容量を調べてみましょう。

ここがディスク容量を圧迫していた原因でした。

それぞれ説明していきます。

/home/User/.local/share/Trash/expunged

このディレクトリに関する情報は、調べても一切ヒットしなかったので、まとめます。

私の環境でディスク容量が圧迫していた原因は、.local/share/Trash/expungedにありました。

このファイルに何が入っていたかと調べてみました。

何やら、謎の数値ファイルが格納されていました。

この内容を確認すると、ルートファイルシステムを作成に失敗したときの残骸が残っていました。

作成したルートファイルシステムの全てが入っいたわけではなく、ルートファイルシステムの一部が入っていました。

そのファイルは、管理者でないと削除できない場合や、ファイルに実行権(chmod -x)が付与されていないファイル群がありました。

このことから、実行権の関係で削除できなかったファイル、もしくはrootユーザー以外では削除しきれないファイルがここへ移動するみたいです。

その結果、ごみが積もりに積もってディスク容量を圧迫していました。

このディレクトリ以下のファイルは削除しても、システムに問題ありません。

Linuxのディスク容量を圧迫している場合は、削除してももんだないでしょう。

以下のコマンドで削除できます。

/home/User/.local/share/Trash/files

このディレクトリには、管理者で削除された実際のファイルが存在します。

このディレクトリに存在するファイルは、ログインユーザーのゴミ箱には移動せず、このディレクトリに移動します。

このディレクトリもディスク容量圧迫の原因になるので、削除しても構いません。

以下のコマンドで削除してしまいましょう。

/home/User/.local/share/Trash/info

このディレクトリは、削除されたファイル情報が書かれたファイルが存在します。

先程の/home/User/.local/share/Trash/files/に対応したファイルに関する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

duコマンド

ディスク使用量をファイルごとに算出します。

基本的に

私がおすすめなのが、以下の使い方です。

アクセス制限を避けるためsudoコマンドを使用し、duコマンドの結果を降順に表示します。

/*の部分は、自分が検索したいファイルパスを指定します。例:/etc/*など

sudo du -s -h /* |sort -n

こちらは、先ほどと違いduコマンドの結果を、昇順に並び替えます。

sudo du -s -h /* |sort -nr

コマンドの勉強で参考にした本は以下の本を使いました。

Linuxシステム全体を把握するためには、以下の本がおススメ。

最後に

今回は、意外に見落としがちなディスク容量を圧迫する原因として、ゴミ箱を紹介しました。

私は、この存在に気付かずに、いつの間にかディスク容量が圧迫していました。

もし、あまり容量をとるようなファイルを置いてないのに、ディスク容量が圧迫してきたなと感じたら、「管理者のゴミ箱」を確認してみてください。

コメント

  1. しまお より:

    本ページ、大変参考になりました。

    一点、ファイル削除のコマンドはlsではなく、rmではないでしょうか?
    lsだとファイルの表示のみでとどまってしまいます。

    sudo ls -l /home/User/.local/share/Trash/expunged/*
    の箇所を

    sudo rm -rv /home/User/.local/share/Trash/expunged/*

    に修正されると良いかと思います。

    以上、よろしくお願いいたします。

タイトルとURLをコピーしました