Ubuntuでディスク容量不足になった時の調査方法

Ubuntuでディスク容量不足になった時の調査方法

Ubuntuサーバーやデスクトップ環境でディスク容量不足が発生すると、ログイン不能やサービス停止、アップデート失敗など様々な問題が発生する。まずは「どのパーティションが不足しているのか」「どのディレクトリが容量を消費しているのか」を特定することが重要となる。ここではUbuntuでディスク使用量を調査する基本的な手順をまとめる。

現在のディスク使用状況を確認する

最初にファイルシステム全体の使用率を確認する。

df -h

実行例

確認ポイント

・Use%が90%以上になっているパーティションを確認する
・特に「/」や「/var」が満杯になりやすい
・どのマウントポイントで不足しているかを把握する

容量を大量消費しているディレクトリを探す

ルートディレクトリ直下の使用量を調査する。

sudo du -h --max-depth=1 / | sort -hr

実行例

20G /var
15G /home
8.0G /usr

容量が大きいディレクトリが見つかったらさらに掘り下げる。

sudo du -h --max-depth=1 /var | sort -hr

大きなディレクトリを順番に確認して原因を特定する。

大容量ファイルを検索する

1GB以上のファイルを探す場合。

sudo find / -type f -size +1G 2>/dev/null

サイズ付きで確認する場合。

sudo find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null

ログファイルやバックアップファイルが肥大化しているケースが多い。

/var/logのログ肥大化を確認する

Ubuntuではログファイルが大量に蓄積されることがある。

sudo du -sh /var/log/*

特に以下を確認する。

/var/log/syslog
/var/log/kern.log
/var/log/auth.log

巨大化している場合はログローテーション設定も確認する。

sudo logrotate -d /etc/logrotate.conf

aptキャッシュを確認する

パッケージキャッシュが蓄積している場合がある。

使用量確認

sudo du -sh /var/cache/apt

不要なキャッシュ削除

sudo apt clean

古いパッケージ削除

sudo apt autoremove

Snapパッケージの世代管理を確認する

UbuntuではSnapが古いバージョンを保持するため容量を消費することがある。

インストール済み一覧

snap list --all

無効化された古いバージョンを確認

snap list --all | awk '/disabled/{print $1, $3}'

不要な古いリビジョンを削除することで数GB以上空くこともある。

Docker利用時の容量調査

Docker環境ではイメージやコンテナログが肥大化しやすい。

使用状況確認

docker system df

詳細確認

docker system df -v

不要データ削除

docker system prune

すべての未使用イメージも削除

docker system prune -a

ジャーナルログの容量確認

systemd-journaldのログが大量に蓄積している場合がある。

使用量確認

journalctl --disk-usage

古いログ削除

sudo journalctl --vacuum-time=7d

またはサイズ指定

sudo journalctl --vacuum-size=500M

対話形式で調査するならncduが便利

容量調査ではncduが非常に便利である。

インストール

sudo apt install ncdu

実行

sudo ncdu /

ディレクトリごとの使用量を画面上で確認でき、容量を消費している場所を素早く特定できる。

よくある容量不足の原因

・ログファイル肥大化
・Dockerイメージやコンテナログ
・古いSnapリビジョン
・aptキャッシュ蓄積
・バックアップファイル保存忘れ
・大量の一時ファイル
・データベースログ肥大化
・ユーザーディレクトリ内の不要データ

調査時の基本手順まとめ

まず以下の順番で調査すると効率が良い。

  1. df -h で満杯のパーティションを確認
df -h
  1. duで大きなディレクトリを特定
sudo du -h --max-depth=1 / | sort -hr
  1. findで巨大ファイルを検索
sudo find / -type f -size +1G 2>/dev/null
  1. Docker、Snap、ログファイルを重点的に確認

この流れで調査すると、多くの場合は短時間で容量不足の原因を特定できます。