dfコマンドでディスク容量を確認する方法|使用率の見方や容量不足の対処も

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > dfコマンドでディスク容量を確認する方法|使用率の見方や容量不足の対処も
「サーバーのディスク容量が足りなくなっているかもしれないけど、どうやって確認すればいいの?」
「dfコマンドを実行したけど、tmpfsが大量に並んで肝心のディスク情報が見づらい」
Linuxサーバーの運用で、こうした場面に遭遇したことはないでしょうか。ディスク容量の問題を放置すると、サービス停止やデータ消失にまで発展するため、日常的な確認作業が欠かせません。

この記事では、Linuxの df コマンドを使ってディスク容量や使用率を確認する実践的な手順を解説します。
基本的なオプション(-h・-T・-i)の使い方から、tmpfsを除外して見やすくする方法、dfとduの違い、iノード枯渇への対処、ディスク使用率の自動監視スクリプトまで、現場で必要な知識をまとめました。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済み

この記事のポイント

・df -h でパーティションごとの空き容量を人間が読みやすい形式で確認できる
・df -T でファイルシステムの種類(xfs・ext4など)を表示できる
・df -i でiノード使用率を確認し、容量はあるのに書き込めない原因を特定できる
・duコマンドと組み合わせて「どのディレクトリが容量を食っているか」を調べる



「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

dfコマンドとは? ディスク容量を確認する基本コマンド

df(disk free)は、マウントされているファイルシステムごとに、ディスクの総容量・使用量・空き容量・使用率を表示するコマンドです。

サーバー運用では「ディスクがいっぱいになっていないか」を日常的に確認する必要があります。ログファイルの肥大化やバックアップデータの蓄積など、気づかないうちに容量を圧迫しているケースは珍しくありません。df はその確認の第一歩として、最も頻繁に使われるコマンドの一つです。

dfが特に有効なのは以下のようなシーンです。

ディスク容量不足の検知:どのパーティションが何%使っているかを瞬時に把握できる
ログ肥大化の原因調査:/var が独立パーティションなら、そこだけ逼迫しているかを確認できる
ファイルシステム種別の確認:xfsなのかext4なのかを一覧で把握できる

# dfコマンドの実行(オプションなし) $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 51343840 8234512 40472528 17% / devtmpfs 1998648 0 1998648 0% /dev tmpfs 2015680 0 2015680 0% /dev/shm tmpfs 2015680 9012 2006668 1% /run /dev/sda1 508588 169536 339052 34% /boot

出力の各列の意味を整理します。

Filesystem:デバイス名(/dev/sda3 など)
1K-blocks:パーティションの全体容量(1KBブロック単位)
Used:使用済みの量
Available:空き容量
Use%:使用率(80%を超えたら要注意、90%超は危険水域
Mounted on:マウントポイント(どのディレクトリに割り当てられているか)

オプションなしの場合、容量は1Kブロック単位で表示されます。人間には読みづらいため、実務では後述する -h オプションを付けるのが一般的です。

dfコマンドの基本オプション

1. -h(人間が読みやすい単位で表示)

最もよく使うオプションです。容量をK(キロバイト)・M(メガバイト)・G(ギガバイト)で自動的に表示してくれます。

# 人間が読みやすい単位で表示 $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 49G 7.9G 39G 17% / devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 8.9M 2.0G 1% /run /dev/sda1 497M 166M 332M 34% /boot

-h は「human-readable」の略です。現場では df -h をまず実行する、というのが定番の流れです。

-h は1024を基準にした単位(1G = 1,048,576K)を使います。ディスクメーカーが表記する1000基準の容量と合わせたい場合は、-H(1G = 1,000,000K)を使ってください。

2. -T(ファイルシステムの種類を表示)

-T を付けると、各ファイルシステムの種類(xfs・ext4・tmpfs等)が表示されます。

# ファイルシステムの種類を表示 $ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 xfs 49G 7.9G 39G 17% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 8.9M 2.0G 1% /run /dev/sda1 xfs 497M 166M 332M 34% /boot

RHEL系ではデフォルトのファイルシステムがxfs、Ubuntu/Debian系ではext4が使われます。ファイルシステムの種類によって管理コマンドが異なるため(xfs_growfsとresize2fs等)、-T で種類を把握しておくと障害対応時にスムーズです。

3. -i(iノードの使用状況を表示)

-i は容量ではなく、iノード(ファイルやディレクトリの管理番号)の使用状況を表示します。

# iノードの使用状況を表示 $ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda3 3276800 125340 3151460 4% / /dev/sda1 256000 310 255690 1% /boot

ディスク容量に空きがあっても、iノードが枯渇するとファイルを新しく作成できなくなります。詳しくは後述の「iノード枯渇」セクションで解説します。

4. -x(特定のファイルシステムを除外)

df -h を実行すると、tmpfsやdevtmpfsなど実ディスクとは関係のない仮想ファイルシステムが大量に表示されることがあります。-x オプションでこれらを除外すると、本当に確認したいディスクだけが残ります。

# tmpfsとdevtmpfsを除外して表示 $ df -h -x tmpfs -x devtmpfs Filesystem Size Used Avail Use% Mounted on /dev/sda3 49G 7.9G 39G 17% / /dev/sda1 497M 166M 332M 34% /boot

実務では df -h -x tmpfs -x devtmpfs をエイリアスに登録しておくと便利です。

# .bashrcにエイリアスを追加する例 alias dfd='df -h -x tmpfs -x devtmpfs'

5. --total(合計行を追加)

--total を付けると、最終行にすべてのファイルシステムの合計が表示されます。サーバー全体のディスク使用状況をざっくり把握したい場合に便利です。

# 合計行を追加して表示 $ df -h --total -x tmpfs -x devtmpfs Filesystem Size Used Avail Use% Mounted on /dev/sda3 49G 7.9G 39G 17% / /dev/sda1 497M 166M 332M 34% /boot total 49G 8.0G 39G 17% -

6. 特定のパスを指定する

df にパスを渡すと、そのパスが属するファイルシステムの情報だけが表示されます。

# /var/log が属するファイルシステムを確認 $ df -h /var/log Filesystem Size Used Avail Use% Mounted on /dev/sda3 49G 7.9G 39G 17% /

「このディレクトリはどのパーティションに属しているのか?」を調べたい場面で重宝します。

dfとduの違い ~ ディスク全体 vs ディレクトリ単位 ~

ディスク容量の確認でよく混同されるのが dfdu です。役割が明確に異なるため、使い分けを整理しておきましょう。

df:ファイルシステム全体の空き容量・使用率を表示する。「ディスクがあとどれくらい使えるか」を確認するコマンド
du:ディレクトリやファイル単位の使用量を表示する。「どのディレクトリが容量を食っているか」を特定するコマンド

実務での使い分けは明確です。まず df -h でどのパーティションが逼迫しているかを確認し、次に du でそのパーティション内のどのディレクトリが容量を消費しているかを特定する、という流れになります。

# まずdfでディスク全体の使用率を確認 $ df -h # 次にduで容量の大きいディレクトリを特定(上位10件) $ du -sh /var/* 2>/dev/null | sort -rh | head -10

さらに掘り下げて、容量を食っている原因ファイルを特定するにはfindを使います。

# /var/log 配下で100MB以上のファイルを検索する # find /var/log -type f -size +100M -exec ls -lh {} \; -rw-r--r--. 1 root root 4.8G Apr 10 09:12 /var/log/messages-20260406 -rw-r--r--. 1 root root 1.2G Apr 9 23:59 /var/log/secure-20260406

なお、dfdu の合計値が一致しないことがあります。これは、プロセスが掴んだまま削除されたファイル(deleted but open)がdfには反映されるがduには表示されないためです。この場合、該当プロセスを再起動すると領域が解放されます。

実務で使えるdfの応用テクニック

1. LVM環境でのdf出力の読み方

RHEL/CentOS/AlmaLinuxの標準インストールでは、LVM(Logical Volume Manager)が使われます。この場合、dfの出力のFilesystem列が /dev/mapper/rl-root/dev/mapper/cs-root のような表記になります。

# LVM環境でのdf出力例 $ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/rl-root xfs 45G 8.2G 37G 19% / /dev/mapper/rl-home xfs 20G 1.5G 19G 8% /home /dev/sda1 xfs 960M 233M 728M 25% /boot

この rl-root は「ボリュームグループ名-論理ボリューム名」の形式です。LVM環境では lvsvgs コマンドで論理ボリュームの詳細を確認できます。

# 論理ボリュームの一覧と容量を確認 $ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% home rl -wi-ao---- 20.00g root rl -wi-ao---- 45.00g swap rl -wi-ao---- 4.00g # ボリュームグループの空き容量を確認 $ sudo vgs VG #PV #LV #SN Attr VSize VFree rl 1 3 0 wz--n- <70.00g 1.00g

VFreeに空きがあれば、lvextend で論理ボリュームを拡張し、xfs_growfs(xfsの場合)でファイルシステムを拡張できます。

2. ディスク使用率の監視スクリプト

ディスクが90%を超えたら警告メールを送る、という監視はサーバー運用の基本です。Zabbixなどの監視ツールがない環境でも、シェルスクリプトとcronで簡単に実現できます。

#!/bin/bash # ディスク使用率が指定値を超えたらアラートを出すスクリプト THRESHOLD=90 MAILTO="admin@example.com" HOSTNAME=$(hostname) df -h -x tmpfs -x devtmpfs | awk 'NR>1 {print $5, $6}' | while read usage mount; do # %記号を除去して数値に変換 percent=${usage%\%} if [ "$percent" -ge "$THRESHOLD" ] 2>/dev/null; then echo "WARNING: ${mount} is ${usage} full on ${HOSTNAME}" | \ mail -s "[DISK ALERT] ${HOSTNAME} ${mount} ${usage}" "$MAILTO" fi done

このスクリプトをcronに登録して定期実行すれば、容量不足に早く気づけます。

# cronに登録する例(毎時0分に実行) 0 * * * * /root/scripts/disk_check.sh

3. iノード枯渇の問題と対処

ディスク容量に余裕があるのに「No space left on device」エラーが出る場合、iノードの枯渇を疑ってください。

iノードはファイルやディレクトリごとに1つ消費されます。小さなファイルが大量にあるディレクトリ(メールスプールやセッションファイル等)では、容量の前にiノードが不足するケースがあります。

# iノードの使用率を確認 $ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda3 3276800 3276800 0 100% / # IUse%が100%ならiノードが枯渇している

対処としては、不要なファイルを削除してiノードを解放します。どのディレクトリにファイルが集中しているかは、以下のコマンドで調査できます。

# ディレクトリごとのファイル数を調査(上位10件) $ find / -xdev -type d -exec sh -c 'echo "$(find "$1" -maxdepth 1 -type f | wc -l) $1"' _ {} \; 2>/dev/null | sort -rn | head -10

※ xfsファイルシステムではiノードが動的に割り当てられるため、ext4に比べて枯渇しにくい特徴があります。

4. watchコマンドで容量の変化をリアルタイム監視する

大きなファイルの転送中やログが急増している状況では、watchコマンドと組み合わせて容量の推移を監視できます。

# 5秒間隔でディスク容量の変化を監視する $ watch -n 5 'df -h /var' Every 5.0s: df -h /var web01: Fri Apr 10 10:30:00 2026 Filesystem Size Used Avail Use% Mounted on /dev/sda5 20G 15G 5.9G 71% /var

Ctrl+C で監視を終了します。容量が急速に増えている場合は、別ターミナルで原因調査を進めてください。

トラブルシュート ~ dfでエラーが出る場合 ~

1. 「No such file or directory」「cannot access」が表示される

df 実行時に以下のようなエラーが出ることがあります。

df: /mnt/nfs_share: No such file or directory

これは、/etc/fstab に記載されたマウントポイントが実際には存在しない、またはNFSなどのネットワークファイルシステムが応答していない場合に発生します。

対処方法:
マウントポイントが存在しない場合:mkdir -p /mnt/nfs_share でディレクトリを作成してからマウントする
NFSサーバーが応答しない場合:NFSサーバー側の状態を確認する。dfが長時間止まる場合は df -l(ローカルファイルシステムのみ表示)で回避できる

2. dfの使用率が100%なのにduの合計と合わない

先述のとおり、プロセスが掴んだまま削除されたファイルが原因です。

# 削除済みだがプロセスが掴んでいるファイルを確認 $ sudo lsof +L1 | grep deleted httpd 1234 root 4w REG 8,3 2147483648 0 /var/log/httpd/access_log (deleted)

この場合、該当プロセス(上記の例ではhttpd)を再起動すれば領域が解放されます。

# プロセスを再起動して領域を解放 $ sudo systemctl restart httpd

もう一つの原因として、ext4ファイルシステムの予約領域(Reserved blocks)があります。ext4ではデフォルトでディスク全体の5%がroot用に予約されており、一般ユーザーから見ると使えない領域としてカウントされます。

# 予約領域の割合を確認する(ext4のみ) # tune2fs -l /dev/sda3 | grep -i reserved Reserved block count: 655360 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) # 予約領域を1%に変更する(空き容量を増やしたい場合) # tune2fs -m 1 /dev/sda3

3. Use%が0%でSizeも0のファイルシステムが表示される

devtmpfsやtmpfsなど、メモリベースの仮想ファイルシステムです。実ディスクではないため、前述の -x オプションで除外して構いません。

4.【重要】Use%が100%に達した時の緊急対処

ディスクが完全に埋まると、ログ書き込み失敗・サービス停止・OS自体の動作不安定が発生します。緊急時は以下の手順で対処してください。

1. 不要なログファイルを圧縮または削除する

# 古いログファイルを確認する # ls -lhS /var/log/*.log /var/log/*.gz 2>/dev/null | head -10 # 7日以上前のログを圧縮する # find /var/log -name "*.log" -mtime +7 -exec gzip {} \;

2. yum/dnfのキャッシュを削除する

# パッケージマネージャのキャッシュを削除する # dnf clean all # du -sh /var/cache/dnf/ 0 /var/cache/dnf/

3. 古い不要なカーネルを削除する(RHEL系)

# 現在のカーネルバージョンを確認する $ uname -r 5.14.0-427.13.1.el9_4.x86_64 # 古いカーネルの一覧を確認する # dnf list installed kernel-core

本記事のまとめ

やりたいこと コマンド
ディスク使用率を見やすい単位で確認 df -h
ファイルシステムの種類も表示 df -hT
iノードの使用状況を確認 df -i
tmpfs等の仮想FSを除外して表示 df -h -x tmpfs -x devtmpfs
合計行を追加して表示 df -h --total
特定パスが属するFSを確認 df -h /var/log
ローカルFSのみ表示(NFS除外) df -l
容量を食っているディレクトリを特定 du -sh /var/* | sort -rh | head -10
削除済みファイルを保持するプロセスを確認 lsof +L1
ディスク容量の変化をリアルタイム監視 watch -n 5 'df -h /var'
関連コマンドも合わせて覚えておくと、ディスク管理の引き出しが増えます。

lsblkコマンドでブロックデバイスを一覧表示する方法
mountコマンドでファイルシステムをマウントする方法

ディスク管理を含むLinuxサーバー運用の基本を、体系的に学びませんか?

dfコマンドによるディスク容量の確認は、サーバー管理の入り口にすぎません。本番環境の運用には、LVM・パーティション設計・ログローテーションなど、知っておくべきことがまだまだあります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。