Ubuntuのディスク容量・空き容量を確認する方法【df/du/baobab】

Ubuntuのディスク容量・空き容量を確認する方法【df/du/baobab】 コマンド

「Ubuntu のディスク容量を確認したい」——そのとき使うべきコマンドは df -h です。ファイルシステム全体の空き容量をわかりやすく表示してくれます。特定のディレクトリがどれだけ使っているか調べるには du -sh を組み合わせると便利です。

本記事では実際に ubuntu:24.04ubuntu:22.04 の Docker コンテナで各コマンドを実行した結果をそのまま掲載しています。VPS・WSL・実機の Ubuntu でも同じコマンドが使えます。

この記事のポイント

  • ディスク全体の確認は df -h、ディレクトリ別の確認は du -sh
  • df -T でファイルシステムの種類(ext4・xfs など)も同時に確認できる
  • df -i で iノードの枯渇を確認できる(容量はあるのに書けないトラブルの原因)
  • du -sh /* | sort -rh でサーバー全体から大きいディレクトリを探せる
  • Ubuntu 24.04 は GNU coreutils 9.4、22.04 は 8.32(実測確認済み)

目次

  1. 前提環境
  2. df -h でディスク全体を確認する
  3. df の便利なオプション
  4. df -i でiノードを確認する
  5. du コマンドの基本
  6. 大きいディレクトリを探す(du + sort)
  7. 大きいファイルを探す(find コマンド)
  8. Ubuntu 22.04 と 24.04 のバージョン差
  9. よくあるエラーと対処法
  10. まとめ

前提環境

本記事の検証は以下の環境で実施しました。

  • Docker公式イメージ ubuntu:24.04(GNU coreutils 9.4-3ubuntu6.2)
  • Docker公式イメージ ubuntu:22.04(GNU coreutils 8.32-4.1ubuntu1.3)
  • 実行日: 2026-06-13

VPS・WSL・実機の Ubuntu でも同じコマンドが動きます。コンテナ内の df 出力はホストのファイルシステムを反映するため、数値は環境によって異なります。

df -h でディスク全体を確認する

df(disk free)はディスクパーティションの使用状況を一覧表示するコマンドです。日常的に使うのは -h オプション付きの df -h で、単位が G/M/K で表示されて読みやすくなります。




ubuntu@linuxlab: ~
$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 453G 54G 376G 13% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/vda1 453G 54G 376G 13% /etc/hosts
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware
df -h の実行結果(Ubuntu 24.04 LTS)実測
df -h の実行結果(Ubuntu 24.04 LTS)実測

出力の読み方は次のとおりです:

  • Filesystem:デバイス名(/dev/vda1 が実際のディスク、tmpfs はRAM上の仮想領域)
  • Size:パーティションの総容量
  • Used:使用中の容量
  • Avail:空き容量
  • Use%:使用率——80〜90%を超えたら対処が必要なサインです
  • Mounted on:マウントポイント(/ がルートパーティション)

注意

Use% が 100% になるとファイルの書き込みが一切できなくなり、ログイン自体が難しくなる場合があります。80% を超えたら不要ファイルの削除や容量追加を検討してください。

特定のマウントポイントだけ確認する

ルートパーティション(/)だけを素早く確認したいときは、マウントポイントをそのまま引数に渡します。




ubuntu@linuxlab: ~
$ df -h /
Filesystem Size Used Avail Use% Mounted on
overlay 453G 54G 376G 13% /

VPS のルートだけ見たい場合によく使います。スクリプトで空き容量を取得するにはさらに awk を組み合わせます:




ubuntu@linuxlab: ~
$ df -h / | awk ‘NR==2 {print $4}’
376G

# NR==2 で2行目(データ行)の $4(Avail)を取り出す

df の便利なオプション

実測した主要オプションをまとめました。

df コマンドオプション早見表(実測確認済み)
df コマンドオプション早見表(実測確認済み)

-T でファイルシステムの種類を表示する

df -T を使うと、ファイルシステムの種類(ext4・xfs・tmpfs など)が Type 列に追加されます。VPS やサーバーのセットアップ時にパーティションの構成を把握するのに役立ちます。




ubuntu@linuxlab: ~
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
overlay overlay 474044488 55703524 394187316 13% /
tmpfs tmpfs 65536 0 65536 0% /dev
shm tmpfs 65536 0 65536 0% /dev/shm
/dev/vda1 ext4 474044488 55703524 394187316 13% /etc/hosts
tmpfs tmpfs 4012236 0 4012236 0% /proc/scsi
tmpfs tmpfs 4012236 0 4012236 0% /sys/firmware
df -T の実行結果(Ubuntu 24.04 LTS)実測
df -T の実行結果(Ubuntu 24.04 LTS)実測

実際のディスク(/dev/vda1)のファイルシステムが ext4 であることが確認できます。tmpfs はRAM上に展開される一時ファイルシステムで、再起動するとデータは消えます。

–total で合計行を追加する

複数パーティションがある場合、--total を付けると最終行に合計が表示されます。




ubuntu@linuxlab: ~
$ df –total -h
Filesystem Size Used Avail Use% Mounted on
overlay 453G 54G 376G 13% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/vda1 453G 54G 376G 13% /etc/hosts
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware
total 912G 107G 760G 13% –

df -i でiノードを確認する

正直、これは詰まりやすいポイントです。「df -h を見ると空き容量があるのにファイルが書けない」——その原因の多くが iノード(inode)の枯渇です。df -i で確認できます。




ubuntu@linuxlab: ~
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 30179328 975279 29204049 4% /
tmpfs 1003059 16 1003043 1% /dev
shm 1003059 1 1003058 1% /dev/shm
/dev/vda1 30179328 975279 29204049 4% /etc/hosts
tmpfs 1003059 1 1003058 1% /proc/scsi
tmpfs 1003059 1 1003058 1% /sys/firmware

$ df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 29M 954K 28M 4% /
tmpfs 980K 16 980K 1% /dev
shm 980K 1 980K 1% /dev/shm
/dev/vda1 29M 954K 28M 4% /etc/hosts

iノードとは、ファイルの属性情報(名前・サイズ・パーミッション・タイムスタンプなど)を格納する領域のことです。大量の小さいファイルを作るとiノードが尽きることがあります。IUse% が 90% を超えていたら要注意です。

iノード枯渇の実例

メールサーバー(Postfix・Dovecot)を運用していると、スパムメールが大量に届いてiノードが枯渇するケースがあります。df -h で容量に余裕があっても df -i で IUse% が 100% になっていた——そんなトラブルは珍しくありません。

du コマンドの基本

du(disk usage)はディレクトリやファイルが使っているディスク容量を調べるコマンドです。df がパーティション全体を見るのに対し、du は特定のディレクトリにフォーカスします。

du -sh でディレクトリの合計を確認する

最もよく使うのが du -sh <ディレクトリ> です。




ubuntu@linuxlab: ~
$ du -sh /tmp/testdir
908K /tmp/testdir

$ du -sh /tmp/testdir/*
516K /tmp/testdir/sub1
260K /tmp/testdir/sub2
128K /tmp/testdir/top.bin

# -s = summarize(ディレクトリの合計のみ表示)
# -h = human-readable(G/M/K 単位)

–max-depth で階層を指定する

--max-depth=N を使うと、N 階層分まで展開して表示できます。




ubuntu@linuxlab: ~
$ du -h –max-depth=1 /tmp/testdir
260K /tmp/testdir/sub2
516K /tmp/testdir/sub1
908K /tmp/testdir

# –max-depth=1 で1段下のサブディレクトリまで展開
# 最終行が対象ディレクトリの合計

システム主要ディレクトリの使用量を確認する

Ubuntu の主要ディレクトリを一気に確認できます。




ubuntu@linuxlab: ~
$ du -sh /var /usr /etc /tmp 2>/dev/null
4.8M /var
100M /usr
672K /etc
912K /tmp

# 実測: Ubuntu 24.04 最小イメージでは /usr が最大
# 本番では /var(ログ・DB)が膨らみやすい

大きいディレクトリを探す(du + sort)

「どこが容量を使っているか分からない」——そんなときは du -sh /* | sort -rh の組み合わせが鉄板コマンドです。




ubuntu@linuxlab: ~
$ du -sh /* 2>/dev/null | sort -rh | head -10
100M /usr
4.8M /var
912K /tmp
672K /etc
20K /home
16K /run
12K /root
4.0K /srv
4.0K /opt
4.0K /mnt
du sort による大きいディレクトリの特定(Ubuntu 24.04 LTS)実測
du sort による大きいディレクトリの特定(Ubuntu 24.04 LTS)実測

オプションの意味は次のとおりです:

  • 2>/dev/null:権限がなくて読めないディレクトリのエラーを非表示にする
  • sort -rh-r(逆順、大→小)+ -h(G/M/K などを人間可読サイズで比較)
  • head -10:上位10件だけ表示

サーバーで実際によく膨らむ場所は /var/log(ログファイル)、/var/lib(データベース・Docker イメージ)、/home(ユーザーデータ)です。

特定ディレクトリをさらに深く調べる




ubuntu@linuxlab: ~
$ du -h –max-depth=2 /var | sort -rh | head -10
# /var の2階層下まで展開して大きい順に並べる

$ du -sh /var/log/*
# /var/log 内のファイル・ディレクトリ別に確認

大きいファイルを探す(find コマンド)

ディレクトリではなくファイル単位で探したいときは find を使います。




ubuntu@linuxlab: ~
$ find / -type f -size +100M 2>/dev/null
# 100MB 以上のファイルを全体から探す

$ find /var/log -type f -size +10M -exec ls -lh {} \;
# /var/log 内の10MB超ファイルをサイズ付きで表示

$ find /tmp/demo -type f -size +100k -exec ls -lh {} \;
-rw-r–r– 1 root root 200K Jun 13 05:29 /tmp/demo/cache/cache.bin
-rw-r–r– 1 root root 1.0M Jun 13 05:29 /tmp/demo/data/raw/dataset.bin
-rw-r–r– 1 root root 300K Jun 13 05:29 /tmp/demo/logs/app.log

-size +100M+ は「以上」を意味します。単位は k(KB)、M(MB)、G(GB)です。

Ubuntu 22.04 と 24.04 のバージョン差

両バージョンで dfdu のバージョンを実際に確認しました。

coreutils バージョン比較:Ubuntu 22.04 vs 24.04(実測)
coreutils バージョン比較:Ubuntu 22.04 vs 24.04(実測)
項目 Ubuntu 22.04 LTS Ubuntu 24.04 LTS
coreutils バージョン 8.32-4.1ubuntu1.3 9.4-3ubuntu6.2
df バージョン GNU coreutils 8.32 GNU coreutils 9.4
du バージョン GNU coreutils 8.32 GNU coreutils 9.4
df -h 出力形式 同じ 同じ
基本的な使い方 両バージョンで変わらない

日常的なコマンド(df -hdu -sh)の使い方は 22.04 と 24.04 で同じです。バージョンアップで一部オプションの改善はありますが、基本動作に違いはありません。

よくあるエラーと対処法

「No space left on device」が出る

ファイルを書き込もうとしたときに出るエラーです。df -h で使用率を確認してください。




ubuntu@linuxlab: ~
bash: echo: write error: No space left on device

$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 20G 0 100% /

# Avail が 0、Use% が 100% → ディスクが満杯

対処法:

  1. du -sh /* 2>/dev/null | sort -rh | head -20 で大きいディレクトリを特定する
  2. find /var/log -type f -name "*.log" -size +100M で大きいログファイルを探す
  3. 古いログファイルを削除:sudo journalctl --vacuum-size=500M(systemd ログ)

容量があるのにファイルが書けない(iノード枯渇)

df -h では空きがあるのにファイルが書けない場合は iノード不足を疑います。




ubuntu@linuxlab: ~
$ df -i /
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda1 1310720 1310720 0 100% /

# IFree が 0、IUse% が 100% → iノード枯渇

iノード枯渇の主な原因は大量の小ファイルです。find / -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head -20 でファイル数が多いディレクトリを特定できます。

注意

du の実行は時間がかかることがあります。大規模なサーバーで全体スキャン(du -sh /*)をすると数分かかる場合があります。業務サーバーでの実行は負荷を考慮してください。

まとめ

Ubuntu のディスク容量確認は、用途によって使うコマンドが変わります。

  • ディスク全体の使用状況を確認したい → df -h
  • ファイルシステムの種類も一緒に確認したい → df -T
  • 容量があるのにファイルが書けないときは → df -i(iノード確認)
  • 特定ディレクトリの使用量を確認したい → du -sh <パス>
  • どこが容量を圧迫しているか探したい → du -sh /* | sort -rh | head -10
  • 大きいファイルをピンポイントで探したい → find / -type f -size +100M

VPS を借りて Ubuntu サーバーを運用しているなら、定期的に df -h を確認する習慣をつけましょう。Use% が 80% を超えたら早めの対処が肝心です。

本格的にサーバーを運用するなら、まず安定していて安価な VPS を借りることをおすすめします。

VPS の選び方や料金比較については、VPS比較記事もあわせてご覧ください。

コメント

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