Linuxのディスク管理入門|dfとduで空き容量を確認する方法を初心者向けに解説

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > Linuxのディスク管理入門|dfとduで空き容量を確認する方法を初心者向けに解説
「サーバーが急に動かなくなった。原因を調べたら、ディスクが100%だった…」
Linux初心者がサーバー障害で最初にぶつかる壁が、ディスク容量の管理です。

Windowsならエクスプローラーで一目でわかる空き容量も、Linuxではコマンドで確認します。
覚えるコマンドはたった2つ。df(ディスク全体の空き容量)とdu(特定ディレクトリの使用量)です。

この記事では、dfとduの基本的な使い方から、「どのディレクトリが容量を食っているか」を特定する実践的な手順まで、完全初心者でも迷わないよう解説します。

この記事のポイント

・dfコマンドでディスク全体の空き容量を一覧で確認できる
・duコマンドで「どのディレクトリが容量を使っているか」を特定できる
・df -hとdu -sh */の組み合わせが現場で最もよく使われる
・ディスク満杯(100%)になる前に定期的に確認する習慣が重要


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

dfコマンドとduコマンドの違い

ディスク管理で使う2つのコマンドの違いを最初に整理しておきましょう。
コマンド 何を調べるか 主な用途
df ファイルシステム(マウントポイント)ごとの空き容量 「どのディスクが何%使われているか」を確認する
du 指定したディレクトリ・ファイルの使用量 「どのディレクトリが容量を食っているか」を特定する
Windowsのエクスプローラーに例えると、dfは「Cドライブ全体の空き容量バー」、duは「フォルダのプロパティで見るフォルダサイズ」に相当します。

ディスクが逼迫(ひっぱく)してきたら、まずdfで全体を把握し、次にduで原因のディレクトリを特定する、という流れが現場での定番手順です。

dfコマンドの使い方|ディスクの空き容量を確認する

1. 基本的なdfコマンドの実行

オプションなしで実行すると、1KB単位(デフォルト)で表示されます。

# dfコマンド(基本) $ df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 1024576 0 1024576 0% /dev tmpfs 1032148 0 1032148 0% /dev/shm tmpfs 1032148 9256 1022892 1% /run /dev/xvda1 20971008 4523016 16447992 22% / tmpfs 1032148 0 1032148 0% /sys/fs/cgroup /dev/xvdb 10485760 987392 9498368 10% /var/log tmpfs 206428 0 206428 0% /run/user/1000

各列の意味は以下のとおりです。
列名 意味
Filesystem デバイス名(/dev/xvda1 など)
1K-blocks ディスクの合計容量(1KBブロック単位)
Used 使用済み容量
Available 空き容量
Use% 使用率(100%に近いほど危険)
Mounted on マウントポイント(/ は「ルート」全体)

2. 人間が読みやすい単位で表示する(-h オプション)

現場ではほぼ必ず -h(human-readable)オプションを付けます。GB・MB単位で表示されるため、一目で容量を把握できます。

# -h オプションで人間が読みやすい単位に変換 $ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1001M 0 1001M 0% /dev tmpfs 1008M 0 1008M 0% /dev/shm tmpfs 1008M 9.1M 999M 1% /run /dev/xvda1 20G 4.4G 16G 22% / tmpfs 1008M 0 1008M 0% /sys/fs/cgroup /dev/xvdb 10G 965M 9.1G 10% /var/log

「/dev/xvda1 が 20GBのうち4.4GB使用、22%」という感じで、数字が直感的に理解できます。

現場では Use% が 80% を超えたら要注意、90% を超えたら緊急対応が目安です。

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

# ルートパーティション(/)だけを確認 $ df -h / Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 4.4G 16G 22% / # /var/log だけを確認 $ df -h /var/log Filesystem Size Used Avail Use% Mounted on /dev/xvdb 10G 965M 9.1G 10% /var/log

4. ファイルタイプ(ファイルシステム種別)も表示する(-T オプション)

# -T でファイルシステムの種別も表示 $ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1001M 0 1001M 0% /dev /dev/xvda1 xfs 20G 4.4G 16G 22% / /dev/xvdb ext4 10G 965M 9.1G 10% /var/log

ext4やxfsといったファイルシステムの種別が確認できます。サーバー構築時に「このディスクは何のフォーマットか?」を調べる際に役立ちます。

duコマンドの使い方|どのディレクトリが容量を使っているか特定する

dfで「ディスクが80%埋まっている」ことはわかりましたが、どのディレクトリが原因かはわかりません。その特定に使うのがduコマンドです。

1. 基本的なduコマンドの実行

# カレントディレクトリの使用量を表示 $ du 4 ./bash_history 8 ./.ssh 12 ./logs/access 156 ./logs 180 .

オプションなしだと KB 単位でサブディレクトリごとの使用量が再帰的に表示されます。ただし量が多いと見づらいので、通常は後述のオプションを組み合わせます。

2. 合計のみを人間が読みやすい単位で表示する(-sh オプション)

# -s(サマリー)+ -h(人間向け単位)で合計のみ表示 $ du -sh /var/log 2.8G /var/log # 複数のディレクトリをまとめて確認 $ du -sh /var /tmp /home 2.8G /var 124M /tmp 456M /home

3. 直下のディレクトリごとに使用量を確認する(-sh */)

「/var/log の中で、どのサブディレクトリが大きいか」を確認するときの実践的な使い方です。

# /var/log 直下の各ディレクトリの使用量を確認 $ du -sh /var/log/* 4.0K /var/log/audit 1.2G /var/log/httpd 156M /var/log/messages 48M /var/log/nginx 324K /var/log/secure 512M /var/log/yum.log

この例では /var/log/httpd が 1.2GB と最大であることが一目でわかります。

4. 使用量の大きい順に並び替えて表示する

ディレクトリが多い場合、sortと組み合わせると一番大きなディレクトリを上位に表示できます。

# 使用量の大きい順(降順)に並び替え $ du -sh /var/log/* | sort -rh 1.2G /var/log/httpd 512M /var/log/yum.log 156M /var/log/messages 48M /var/log/nginx 4.0K /var/log/audit 324K /var/log/secure

sort -rh-r は逆順(大きい順)、-h は人間向け単位(G・M・K)を正しく比較するオプションです。

5. 特定の深さまでのみ表示する(--max-depth オプション)

# /var の1階層下まで(直下のみ)表示 $ du -h --max-depth=1 /var 8.0K /var/db 52K /var/empty 2.8G /var/log 124K /var/run 488M /var/spool 3.3G /var

ディスク容量が逼迫した時の調査手順

実際に「ディスクが90%を超えた!」という場面での現場対応手順を整理します。

1. どのファイルシステムが逼迫しているか確認

$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 19G 180M 99% / # ← ここが問題! /dev/xvdb 10G 965M 9.1G 10% /var/log

2. 原因ディレクトリを絞り込む

# ルート直下のディレクトリを大きい順に確認 $ du -sh /* 2>/dev/null | sort -rh 12G /usr 4.2G /opt 1.8G /home ... # /opt の中をさらに掘り下げる $ du -sh /opt/* | sort -rh 3.5G /opt/app_logs 400M /opt/wordpress

3. 大きなファイルを直接探す

# 100MB以上のファイルを検索 $ find / -size +100M -type f 2>/dev/null /opt/app_logs/debug.log /var/core/core.12345

dfとduのオプションまとめ

やりたいこと コマンド
ディスク全体の空き容量を確認(人間向け単位) df -h
特定ディレクトリの合計使用量を確認 du -sh /path/to/dir
直下のディレクトリごとに使用量を確認 du -sh /path/to/dir/*
使用量の大きい順に並び替えて表示 du -sh /path/to/dir/* | sort -rh
特定の深さまでのみ表示 du -h --max-depth=1 /path
ファイルシステム種別も表示 df -hT
100MB以上のファイルを検索 find / -size +100M -type f 2>/dev/null

トラブルシュート|よくあるエラーと対処法

「df: /run/user/1000/gvfs: Permission denied」が出る

一般ユーザーで実行すると、アクセス権のないマウントポイントでこのエラーが表示されることがあります。表示は出ますが、他のファイルシステムの結果は正しく表示されるため、問題ありません。完全にエラーをなくしたい場合は sudo で実行します。

「du: cannot access 'xxx': No such file or directory」が出る

指定したディレクトリが存在しない場合のエラーです。パスのスペルを確認してください。

dfでは容量に余裕があるのにファイルを書き込めない

inode(アイノード)が枯渇している可能性があります。inode はファイルの管理情報を記録する領域で、小さなファイルを大量に作ると使い切ることがあります。以下のコマンドで確認できます。

# inode の使用状況を確認(-i オプション) $ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda1 1310720 1310720 0 100% / # ← inode が 100%!

IUse% が 100% になっていれば inode 枯渇が原因です。不要なファイル(特に小さなファイルが大量にあるディレクトリ)を削除することで解消できます。

本記事のまとめ

dfとduは、Linuxを使い始めたら最初に覚えるべきコマンドの一つです。
df -h:ディスク全体の空き容量を人間が読みやすい単位で確認する
du -sh /path/*:どのディレクトリが容量を消費しているかを特定する
du -sh /* | sort -rh:使用量の大きいディレクトリを上位から確認する
df -i:inode の使用状況を確認する(容量に余裕があるのに書けない時に使う)

セミナーで3,100名以上の受講生を指導してきた経験から言うと、「ディスク管理をきちんとできる人」と「なんとなく使っている人」の差は、このdfとduを使いこなせるかどうかにかかっています。障害が起きてから慌てるのではなく、定期的に確認する習慣をつけることが、現場で信頼されるエンジニアへの第一歩です。

Linuxのディスク管理をさらに深めたい方は、次のステップとして「tarコマンドで圧縮・解凍(展開)する方法」でファイルアーカイブを学ぶと、容量削減の実践力が身につきます。

関連する実務スキル記事

Linux入門として基礎を固めたら、以下の実務スキル記事でさらにステップアップしましょう。7つのテーマを体系的に学べます。

シェルスクリプト:crontabコマンドの設定と書き方|動かない時のログ確認まで ~ 定期的なディスク確認を自動化する
セキュリティ:chmodコマンドで権限を変更する方法|755と644の違いや一括変更も ~ ファイルのアクセス権を正しく設定する
サーバー構築:systemctlコマンドの使い方|サービスの起動・停止・自動起動設定 ~ サービス管理をマスターする
トラブルシューティング:psコマンドでプロセスを確認する方法|auxと-efの違いやgrep検索も ~ ディスクを使い切るプロセスを特定する
ネットワーク:ssコマンドでソケット情報を確認する方法|LISTEN・ESTABの見方やポート確認も ~ ネットワーク接続状態を把握する
ファイルシステム:tarコマンドで圧縮・解凍(展開)する方法|必須のzxvfやディレクトリ指定も ~ ファイルを圧縮して容量を節約する
現場コラム:grepコマンドで文字列を検索する方法|複数ファイルやディレクトリ除外も ~ ログファイルから問題箇所を素早く見つける
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
dfとduによるディスク管理をさらに深め、実務で使えるLinuxスキルを身につけたい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

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

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

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

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

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

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

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

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

この記事を書いた人

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

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

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