Linuxディスク容量確認の決定版:dfコマンド必須オプション5選と現場で役立つトラブルシューティング

概要

インフラ運用中に突如発生する「No space left on device」アラートに対し、一次切り分けで真っ先に実行すべきコマンドが df です。本稿では、直感的にサイズを把握できる単位変換の指定方法をはじめ、ノイズとなる仮想ファイルシステムの除外手法、さらには空き容量が存在するにもかかわらず新規書き込みが失敗する「Inode枯渇」の検知手順まで、現場目線で体系的に解説します。あわせて、ファイル削除後にもかかわらず容量が解放されないケースなど、df と du で値が乖離する仕組みと対処手順についても掘り下げます。

1. 基本的な空き領域の把握と可読性に優れた単位表示 (df -h)

マウント済みファイルシステム全体のディスク消費状況を俯瞰する際、標準ツールとなるのが df コマンドです。
引数なしで実行した場合、ブロックサイズは1KB単位(1K-blocks)で出力されるため、即座に実容量を直感把握するのは困難を極めます。
⚙️ [実務で重宝する主要オプション一覧]

-h : 容量サイズを人間にとって馴染み深い単位(K、M、Gなど)に自動スケール変換します。
-T : マウントされているファイルシステム規格(ext4、xfs、overlay等)を列に追加します。
-i : データ領域の消費量ではなく、ファイル作成上限に関わるInodeの使用ステータスを表示します。
-t : 条件指定したファイルシステム形式のみを抽出して表示対象とします。
-x : 調査に不要なファイルシステム形式を画面出力から排除します。

dfコマンドのデフォルト出力

可読性を向上させたい場面では、--human-readable を意味する -h オプションを付与して df -h を実行します。
実行結果からも明らかな通り、無機質な1KB区切りの数値群がメガバイト(M)やギガバイト(G)単位へと整形され、ボリュームごとの空き状況が一目で判断できるようになります。

df -hコマンドによる可読性の高い出力

2. 仮想ファイルシステムのノイズ排除と特定ストレージの抽出 (df -h -x / -t)

df -h -x tmpfs -x devtmpfs -x squashfs のように -x(--exclude-type)を複数連結することで、物理ストレージ以外の出力行をまとめてフィルタリングできます。
特にUbuntu環境では、Snapパッケージが生成する squashfs や、RAMベースの一時領域である tmpfs・devtmpfs が画面を埋め尽くし、肝心の実ディスク領域が埋もれてしまいがちです。
これらの一時的・仮想的なマウントポイントを非表示にすることで、物理ドライブやクリティカルなボリュームの空き容量だけを効率的に精査できます。

不要なファイルシステムを除外したdf実行例

一方で、特定規格のボリュームに絞って状況を追跡したい場合には、-t(--type)を指定した df -h -t ext4 が威力を発揮します。
Linux環境で主流の ext4 フォーマットのみをピンポイントで抜き出すため、膨大なマウント一覧に惑わされることなく、プライマリストレージの消費ペースや残量をスマートに監視可能です。

ext4ファイルシステムのみを抽出したdf実行例

3. ストレージ容量に空きがあるのに書き込めない罠:Inode消費の診断 (df -i)

Inodeの枯渇現象を検証・把握するため、まずはテスト環境となる作業用ディレクトリを用意し、空のテキストファイルを10個生成してみます。

検証用ディレクトリとテストファイルの作成

指定したターゲットパスのInode消費ステータスをピンポイントで確認するには、df -i /tmp/df-test を実行します。
ファイルシステムには「保存可能なデータ容量」とは別に「作成可能なファイル総数の上限(Inode数)」が設定されており、データ容量が十分に残っていてもInodeが100%(IUse% が満杯)になると新規ファイルの作成が完全に遮断されます。
出力欄の Inodes(割り当て総数)、IUsed(消費数)、IFree(残枠)を照合することで、無数の極小ファイル滞留による制限超過が発生していないかを的確に判定できます。

df -iコマンドによる特定ディレクトリのInode確認

検証作業が完了した後は、環境をクリーンな状態に戻すため rm -rf /tmp/df-test を実行して検証用リソースを削除します。

検証用リソースの削除処理

4. トラブルシューティング:削除済みファイルによるdfとduの不整合

プロセスが掴んでいるファイルハンドルを追跡できるよう、検証に先立ってシステム内に lsof ユーティリティが存在するかを判定し、未導入であればインストールを実施します。

lsofコマンドの存在確認とインストール

lsof +L1 を実行すると、ファイルシステム上では unlink(削除)されリンクカウントが0になっているにもかかわらず、プロセスが開き続けているため解放されないファイル群をリストアップできます。
運用現場でよくあるトラブルとして、「rm で巨大なログファイルを削除したのに df 上で空き領域が全く増えない」という事象があります。これは、アプリケーションやデーモンがファイルディスクリプタを保持したままであることが原因です。
本コマンドで取得した出力結果から該当プロセスのPIDを特定し、サービスのリロードまたは再起動を実行してファイルハンドルを正しく開放することで、保留されていたディスクブロックがOS側に返却され、空き容量が正常に復帰します。

lsof +L1による未解放プロセスの追跡

本記事では、Linuxシステム管理における基礎でありながら奥が深い df コマンドの代表的な活用テクニックと、障害発生時に役立つ実践的なノウハウを紹介しました。
システムの利用状況や監視対象に合わせて適切なオプションを使い分け、予期せぬディスクフル障害を未然に防ぐ安定稼働体制を整えていきましょう。