Ubuntuのディスク使用量を確認するコマンド【df/du/ncdu】

コマンド

Ubuntuを使っていると、「ディスクが残りどのくらいあるか確認したい」「どのディレクトリが容量を食っているか調べたい」という場面が頻繁に出てきます。

結論として、ファイルシステム全体の空き容量は df -h、ディレクトリごとの使用量は du -sh で確認できます。より視覚的に確認したい場合は ncdu が便利です。

本記事では Ubuntu 24.04 LTS の Docker 公式イメージで実際にコマンドを実行し、その出力をそのまま載せています。数字はすべて実測値です。

この記事のポイント

  • ファイルシステムの空き容量確認は df -h、詳細は df -Tdf -i
  • ディレクトリごとの使用量は du -shsort -rh で大きい順に並べられる
  • ncduapt install で 49.3 kB だけで入る軽量ツール。カーソルキーで掘り下げ確認が可能
  • Ubuntu 24.04 では coreutils 9.4・ncdu 1.19 が入る(22.04 は coreutils 8.32・ncdu 1.15)
  • 検証環境:Docker 公式イメージ ubuntu:24.04(2026-06-13 実測)

目次

  1. df コマンドでファイルシステム単位の使用量を確認する
  2. du コマンドでディレクトリごとの使用量を確認する
  3. ncdu をインストールして視覚的に確認する
  4. Ubuntu 22.04 と 24.04 のバージョン比較
  5. よくあるエラーと対処法
  6. まとめ

前提環境

本記事の全コマンドは以下の環境で実行・確認しています。

  • OS:Ubuntu 24.04.2 LTS(Docker 公式イメージ ubuntu:24.04)
  • coreutils:9.4-3ubuntu6.2(dfdu を含む)
  • ncdu:1.19-0.1
  • 実行日:2026-06-13

注意

本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 LTS でも基本的な使い方は同じですが、df --output の一部オプション名が異なる場合があります。

df コマンドでファイルシステム単位の使用量を確認する

df(disk free)は、マウントされたファイルシステム全体の空き容量・使用量を一覧表示するコマンドです。coreutils に含まれるため、Ubuntu には最初から入っています。

①df -h の基本的な使い方

まず最もよく使う df -h を実行してみます。-h は「human-readable(人間が読みやすい単位)」の意味で、バイト数ではなく G や M で表示してくれます。




ubuntu@linuxlab: ~
$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 59G 34G 23G 61% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/vda1 59G 34G 23G 61% /etc/hosts
tmpfs 5.9G 0 5.9G 0% /sys/firmware
df -h の実行結果(Ubuntu 24.04 LTS・実測)
df -h の実行結果(Ubuntu 24.04 LTS・実測)

各列の意味は次の通りです。

  • Filesystem:ファイルシステムのデバイス名(overlay は Docker の内部FS)
  • Size:パーティションの合計容量
  • Used:現在使用中の容量
  • Avail:実際に書き込み可能な残り容量
  • Use%:使用率。80% を超えてきたら要注意のサインです
  • Mounted on:マウントポイント(どのパスに対応しているか)

特定のパスだけ見たいときは df -h / のようにパスを引数に渡せます。




ubuntu@linuxlab: ~
$ df -h /
Filesystem Size Used Avail Use% Mounted on
overlay 59G 34G 23G 61% /

②よく使うオプション一覧

覚えておくと便利なオプションをまとめます。実際にすべて Ubuntu 24.04 で実行して確認しました。

コマンド 説明 おもな用途
df -h 人間が読みやすい単位(G/M/K)で表示 日常的な確認に最適
df -T ファイルシステムの種別(ext4・tmpfsなど)を表示 FSタイプを確認したいとき
df -i iノードの使用状況を表示 「容量はあるのに書き込めない」ときに確認
df --total -h 全FSの合計行を末尾に追加 全体の使用率を一目で把握
df -H 1000 基数(SI単位)で表示(-h は 1024 基数) 厳密なバイト数を確認したいとき

③df -T でファイルシステムの種別を確認する

df -T を使うと、各ファイルシステムの種別(Type 列)が追加されます。




ubuntu@linuxlab: ~
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
overlay overlay 61255492 34994200 23119968 61% /
tmpfs tmpfs 65536 0 65536 0% /dev
shm tmpfs 65536 0 65536 0% /dev/shm
/dev/vda1 ext4 61255492 34994200 23119968 61% /etc/hosts
tmpfs tmpfs 6125132 0 6125132 0% /sys/firmware

実際の VPS やサーバーであれば /dev/sda1/dev/vda1ext4 として表示されるのが一般的です。

④df -i でiノードの使用状況を確認する

「ディスクに空きがあるのにファイルを作れない」という状況では、iノード(ファイルの管理情報)が枯渇していることがあります。




ubuntu@linuxlab: ~
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 3907584 960496 2947088 25% /
tmpfs 1531283 16 1531267 1% /dev
shm 1531283 1 1531282 1% /dev/shm

IUse% が 100% に近い場合は、小さなファイルが大量に作られてiノードが枯渇しています。find / -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head でどのディレクトリにファイルが集中しているか確認できます。

du コマンドでディレクトリごとの使用量を確認する

du(disk usage)は、特定のディレクトリ・ファイルが実際に占めている容量を確認するコマンドです。df がFS全体を見るのに対し、du はどのディレクトリが容量を食っているかを調べるときに使います。

①du -sh の基本的な使い方

最もよく使う書き方が du -sh です。-s(summary:合計のみ表示)と -h(human-readable)の組み合わせです。




ubuntu@linuxlab: ~
$ du -sh /var /usr /etc /tmp 2>/dev/null
100M /usr
4.8M /var
1.6M /tmp
672K /etc
# 2>/dev/null で Permission denied エラーを非表示

実測では /usr が 100M とダントツで大きく、/etc は 672K と小さいことが確認できました。

②sort と組み合わせて大きい順に並べる

容量の多いディレクトリを特定する最強パターンdu -sh * | sort -rh です。




ubuntu@linuxlab: ~
$ du -sh /demo/* | sort -rh
1.1M /demo/data
304K /demo/logs
204K /demo/cache
# sort -rh : 人間が読みやすい数値を逆順(大→小)でソート
du + sort の実行結果(Ubuntu 24.04 LTS・実測)
du + sort の実行結果(Ubuntu 24.04 LTS・実測)

sort -h は「-h(human-numeric-sort)」オプションで、1.1M304K のような単位付き数値を正しくソートしてくれます。-r で逆順(大きい順)にします。これが正直かなり便利で、ディスクが逼迫したときの調査に重宝します。

③–max-depth でディレクトリの深さを指定する

デフォルトの du はサブディレクトリを再帰的にたどって全ファイルを列挙するため、出力が長くなりがちです。--max-depth で深さを制限すると見やすくなります。




ubuntu@linuxlab: ~
$ du -h –max-depth=1 /demo
1.1M /demo/data
304K /demo/logs
204K /demo/cache
1.6M /demo
# 末尾行が /demo 全体の合計

まず --max-depth=1 でざっくり確認し、大きなディレクトリを見つけたら --max-depth=2 で一段深く調べる、という手順が実用的です。

ncdu をインストールして視覚的に確認する

ncdu(NCurses Disk Usage)は、ターミナル上でカーソルキーを使いながらディレクトリを掘り下げられるインタラクティブなディスク使用量ビューアーです。du との違いは「どこを掘るかをリアルタイムに選べる」点です。

①ncdu のインストール

Ubuntu の標準リポジトリから入れられます。ncdu 本体は 49.3 kB と非常に軽量です。




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://ports.ubuntu.com/ubuntu-ports noble InRelease

$ sudo apt install ncdu
The following NEW packages will be installed:
ncdu
Need to get 49.3 kB of archives.
After this operation, 158 kB of additional disk space will be used.
Setting up ncdu (1.19-0.1) …
ncdu インストールと実行(Ubuntu 24.04 LTS・実測)
ncdu インストールと実行(Ubuntu 24.04 LTS・実測)

実測でインストール完了まで約 1 秒でした。追加で入る依存パッケージはなく、158 KB の追加消費のみです。

②ncdu の基本的な使い方

インストール後、調べたいディレクトリを引数に渡すだけです。




ubuntu@linuxlab: ~
$ ncdu /
# ターミナル画面がフルスクリーンに切り替わりインタラクティブ表示
# ↑↓ キーで移動 / Enter で中に入る / q で終了
# ? でヘルプ表示
# d でカーソル下のディレクトリ/ファイルを削除(要確認)

起動するとディレクトリがバーグラフで大きい順に並び、Enter でどんどん掘り下げられます。使い終わったら q で終了します。

サーバーで直接操作できないときは -o オプションで JSON にエクスポートし、手元で確認することもできます。




ubuntu@linuxlab: ~
$ ncdu -o /tmp/disk_report.json /
ncdu export done
$ ncdu -f /tmp/disk_report.json
# エクスポート済みの JSON を手元で閲覧

Ubuntu 22.04 と 24.04 のバージョン比較

よく使われる Ubuntu 22.04 LTS(Jammy)と 24.04 LTS(Noble)で coreutils・ncdu のバージョンが異なります。Docker で両方のコンテナを起動して実測しました。

Ubuntu 22.04 vs 24.04 バージョン比較(実測)
Ubuntu 22.04 vs 24.04 バージョン比較(実測)
df/du/ncdu コマンド比較表(実測)
df/du/ncdu コマンド比較表(実測)
項目 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
ncdu(apt candidate) 1.15.1-1 1.19-0.1
基本的な使い方の互換性

coreutils 9.4 で df --output オプションの列名に若干の変更がありますが、本記事で紹介した df -hdf -Tdf -i はどちらのバージョンでも同じように動きます。

よくあるエラーと対処法

①「df: cannot read table of mounted file systems」が出る

コンテナ環境や一部のシステムで見られるエラーです。df/proc/mounts を読もうとしますが、権限がない場合に発生します。実際のVPS上では出ません。

対処法

rootユーザーまたは sudo df で実行してください。Dockerコンテナの場合は --privileged オプションが必要な場合があります。

②「du: cannot access ‘…’: Permission denied」が出る

du/root/proc など権限のないディレクトリにアクセスしようとすると発生します。




ubuntu@linuxlab: ~
$ du -sh /* 2>/dev/null | sort -rh | head -10
# 2>/dev/null でエラーを捨てて、正常な出力だけ使う

2>/dev/null でエラーメッセージを捨てるのが最も実用的な対処法です。全ディレクトリを調べたいときは sudo du で実行してください。

③「空き容量があるのにファイルを作れない」

iノードの枯渇が原因のことがあります。df -iIUse% が 100% になっていたら、小さなファイルが大量に溜まっている状態です。




ubuntu@linuxlab: ~
$ df -i /
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 3907584 960496 2947088 25% /
# IUse% が 100% に近いとiノード枯渇

まとめ

Ubuntu のディスク使用量確認コマンドを整理します。

  • df -h:ファイルシステム全体の空き容量を人間が読みやすい形式で表示。毎日使う基本コマンド
  • df -T:FS種別(ext4 など)を合わせて表示。df -i でiノード枯渇を確認
  • du -sh ディレクトリ:特定のディレクトリの使用量を確認。sort -rh と組み合わせると大きい順に並べられる
  • ncduapt install ncdu で入る 49.3 kB の軽量ツール。カーソルキーで視覚的にディレクトリを掘り下げられる
  • Ubuntu 24.04 では coreutils 9.4・ncdu 1.19 が入る(22.04 は coreutils 8.32・ncdu 1.15)

ディスク満杯のトラブルに備えて、VPS を借りるときは最初から余裕のあるプランを選ぶのがおすすめです。

コメント

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