treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

RaspberryPiのmicroSD容量が残り0

RaspberryPiの動作が不調になり、原因を探ったところ残容量がなくなっていたので対処しました。
今回はとりあえずの一次対処です。

RaspberryPiに発生した症状

ある日気づいたのが、sambaサーバを担っているRaspberryPiからアラートメールやcronの実行結果メールが配送されなくなっていた、という状況。

以前<https://blog.treedown.net/entry/2023/03/23/010000>にもあったように、アラートメールを配送する専用のSMTPサーバの故障で代替となるSMTPサーバに切り替えた影響かなと最初は思っていました。

ただ、SMTPサーバを切替後もしばらくは滞りなくアラートメールやcronの実行結果メールは配送されていたので、何かRaspberryPi内で発生している事象があるのかと考えて、調べて見ることにしました。

調べると…

OSが稼働するmicroSDの容量がなくなっていたことが動作の要因でした。

「df -h」の実行結果のなかに

/dev/root         15G   15G     0  100% /

と記載された行があるのが分かります。

上記の残容量確認のうち「/dev/root」の「残り:0」と残量がないことが動作しない要因のようです。
しかし、「/」を「du -sh *」で調べてみましたが、容量を使い切っているディレクトリが見つからず困りました。
容量のトップは「3.7G」を使っている"usr"で、次点が「1.9G」の"var"、他は全てMBクラス以下という状況でどうも10GBが何に使われているかが不明。

ただ、「/」の残量が0なので動作に支障があるというのは確実でした。アラートメールもspoolディレクトリが使えないから飛んでないということだと予想。

ひとまずの一次対処

「du」コマンドで容量を食っている場所を発見しようと思ったのですが、それらしいところをいくつか当たっても特に容量を食っているファイルやディレクトリは発見できませんでした。

このため、容量を食っているデータを削除か移動して退避するのを諦めはしたものの、このまま動作しないというのは困るので、別の方法で容量を確保することにしました。

「apt」コマンドを使用します。

# apt autoremove

不要なパッケージがあればこのコマンドで削除します。(使われてないパッケージの削除)

# apt-get clean

キャッシュに保存されているアーカイブ(*.tgzや*.gzなど)を削除します。(パッケージインストールの時に使われたアーカイブファイルをキャッシュしているのですが、それを削除しています。)

実行後の画面が以下。

わずか「1.1GB」ではありますが、空き容量が確保できました。これで正常動作を確認してみると、mailコマンドでメールも飛ぶし、ログも記録されることが確認できました。

ちょうどアップデートの適用があったので

# apt update
# apt upgrade

を実行してみて、残量を確認してみましたが、1.1GBの残容量を保持していました。

しばらくの期間が経過後の状態が以下。

1.0GBを切ってしまいましたが、すぐに残0になることはなさそうです。

根本的な解消策を考える

結論としては、OSがインストールされたmicroSD容量の不足でした。

ただ、サーバとしてユーザに公開しているサービスもあるためログは記録しておきたいですし、削れそうな機能もさしあたって思いつくものはなく、microSDをより容量の大きいものに入れ替えるしかないかなぁという感じがします。