[Linux] dfコマンドの使い方 – ディスク容量の表示(使用中/空き容量)

dfコマンドは、Linuxでファイルシステムのディスク使用状況を確認するために使用されます。

デフォルトでは、各ファイルシステムの使用中容量、空き容量、全体容量を表示します。

dfを単独で実行すると、バイト単位で表示されますが、-hオプションを付けると、容量が人間に読みやすい形式(KB、MB、GBなど)で表示されます。

df -Tでファイルシステムの種類も確認可能です。

この記事でわかること
  • dfコマンドの基本的な使い方
  • 各種オプションの活用法
  • ディスク使用状況の確認方法
  • dfコマンドと他のコマンドの違い
  • 注意点やトラブルシューティングの知識

目次から探す

dfコマンドとは

dfコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるコマンドの一つで、ディスクの使用状況を表示するために利用されます。

このコマンドを使うことで、システム内のファイルシステムの容量、使用中の容量、空き容量、マウントポイントなどの情報を簡単に確認することができます。

特に、サーバーやデスクトップ環境でのディスク管理において、ディスクの空き容量を把握することは非常に重要です。

dfコマンドは、システムのパフォーマンスを維持し、不要なディスク使用を防ぐための基本的なツールとして広く利用されています。

コマンドの出力は、オプションによってカスタマイズ可能で、さまざまな形式で情報を表示することができます。

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

-hオプション:人間に読みやすい形式で表示

-hオプションを使用すると、ディスク容量の表示が人間にとって読みやすい形式(KB、MB、GBなど)で行われます。

これにより、数値が大きくなっても直感的に理解しやすくなります。

df -h
Filesystem      Size  Used Avail Use% Mounted on
none             16G     0   16G   0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none             16G  4.0K   16G   1% /mnt/wsl
drivers         1.9T  1.1T  737G  61% /usr/lib/wsl/drivers
/dev/sdc       1007G  1.4G  955G   1% /
none             16G   92K   16G   1% /mnt/wslg
none             16G     0   16G   0% /usr/lib/wsl/lib
rootfs           16G  2.2M   16G   1% /init
none             16G  568K   16G   1% /run
none             16G     0   16G   0% /run/lock
none             16G     0   16G   0% /run/shm
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
none             16G   76K   16G   1% /mnt/wslg/versions.txt
none             16G   76K   16G   1% /mnt/wslg/doc
C:\             1.9T  1.1T  737G  61% /mnt/c
tmpfs           3.2G   16K  3.2G   1% /run/user/1000

-Tオプション:ファイルシステムの種類を表示

-Tオプションを使うと、各ファイルシステムの種類(ext4、xfsなど)を表示することができます。

これにより、どのファイルシステムが使用されているかを確認できます。

df -T
Filesystem     Type     1K-blocks       Used  Available Use% Mounted on
none           overlay   16389028          0   16389028   0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none           tmpfs     16389028          4   16389024   1% /mnt/wsl
drivers        9p      1952732156 1180439320  772292836  61% /usr/lib/wsl/drivers
/dev/sdc       ext4    1055762868    1446108 1000613288   1% /
none           tmpfs     16389028         92   16388936   1% /mnt/wslg
none           overlay   16389028          0   16389028   0% /usr/lib/wsl/lib
rootfs         rootfs    16385612       2208   16383404   1% /init
none           tmpfs     16389028        568   16388460   1% /run
none           tmpfs     16389028          0   16389028   0% /run/lock
none           tmpfs     16389028          0   16389028   0% /run/shm
tmpfs          tmpfs         4096          0       4096   0% /sys/fs/cgroup
none           overlay   16389028         76   16388952   1% /mnt/wslg/versions.txt
none           overlay   16389028         76   16388952   1% /mnt/wslg/doc
C:\            9p      1952732156 1180439320  772292836  61% /mnt/c
tmpfs          tmpfs      3277804         16    3277788   1% /run/user/1000

-iオプション:inodeの使用状況を表示

-iオプションを使用すると、各ファイルシステムのinodeの使用状況を表示します。

inodeはファイルやディレクトリのメタデータを管理するためのデータ構造で、inodeが不足すると新しいファイルを作成できなくなります。

df -i
Filesystem       Inodes   IUsed    IFree IUse% Mounted on
none            4097257       4  4097253    1% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none            4097257       2  4097255    1% /mnt/wsl
drivers             999 -999001  1000000     - /usr/lib/wsl/drivers
/dev/sdc       67108864   49364 67059500    1% /
none            4097257      40  4097217    1% /mnt/wslg
none            4097257       5  4097252    1% /usr/lib/wsl/lib
rootfs          4096403      12  4096391    1% /init
none            4097257     529  4096728    1% /run
none            4097257       2  4097255    1% /run/lock
none            4097257       1  4097256    1% /run/shm
tmpfs              1024      19     1005    2% /sys/fs/cgroup
none            4097257      50  4097207    1% /mnt/wslg/versions.txt
none            4097257      50  4097207    1% /mnt/wslg/doc
C:\                 999 -999001  1000000     - /mnt/c
tmpfs            819451      34   819417    1% /run/user/1000

-aオプション:全てのファイルシステムを表示

-aオプションを使うと、通常は表示されない特殊なファイルシステムも含めて、全てのファイルシステムの情報を表示します。

これにより、隠れたファイルシステムの状況も把握できます。

df -a
Filesystem      1K-blocks       Used  Available Use% Mounted on
none             16389028          0   16389028   0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none             16389028          4   16389024   1% /mnt/wsl
drivers        1952732156 1180439612  772292544  61% /usr/lib/wsl/drivers
/dev/sdc       1055762868    1446108 1000613288   1% /
none             16389028         92   16388936   1% /mnt/wslg
/dev/sdc       1055762868    1446108 1000613288   1% /mnt/wslg/distro
none             16389028          0   16389028   0% /usr/lib/wsl/lib
rootfs           16385612       2208   16383404   1% /init
none             16385612          0   16385612   0% /dev
sysfs                   0          0          0    - /sys
proc                    0          0          0    - /proc
devpts                  0          0          0    - /dev/pts
none             16389028        568   16388460   1% /run
none             16389028          0   16389028   0% /run/lock
none             16389028          0   16389028   0% /run/shm
...省略

-lオプション:ローカルファイルシステムのみ表示

-lオプションを使用すると、ローカルファイルシステムのみを表示し、ネットワークファイルシステム(NFSなど)は除外されます。

これにより、ローカルのディスク状況を簡単に確認できます。

df -l
Filesystem      1K-blocks       Used  Available Use% Mounted on
none             16389028          0   16389028   0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none             16389028          4   16389024   1% /mnt/wsl
drivers        1952732156 1180440004  772292152  61% /usr/lib/wsl/drivers
/dev/sdc       1055762868    1446108 1000613288   1% /
none             16389028         92   16388936   1% /mnt/wslg
none             16389028          0   16389028   0% /usr/lib/wsl/lib
rootfs           16385612       2208   16383404   1% /init
none             16389028        568   16388460   1% /run
none             16389028          0   16389028   0% /run/lock
none             16389028          0   16389028   0% /run/shm
tmpfs                4096          0       4096   0% /sys/fs/cgroup
none             16389028         76   16388952   1% /mnt/wslg/versions.txt
none             16389028         76   16388952   1% /mnt/wslg/doc
tmpfs             3277804         16    3277788   1% /run/user/1000

-xオプション:特定のファイルシステムを除外して表示

-xオプションを使うと、指定したファイルシステムを除外して表示することができます。

これにより、特定のファイルシステムの情報を無視して、他のファイルシステムの状況を確認できます。

df -x tmpfs
Filesystem      1K-blocks       Used  Available Use% Mounted on
none             16389028          0   16389028   0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
drivers        1952732156 1180440928  772291228  61% /usr/lib/wsl/drivers
/dev/sdc       1055762868    1446108 1000613288   1% /
none             16389028          0   16389028   0% /usr/lib/wsl/lib
rootfs           16385612       2208   16383404   1% /init
none             16389028         76   16388952   1% /mnt/wslg/versions.txt
none             16389028         76   16388952   1% /mnt/wslg/doc
C:\            1952732156 1180440928  772291228  61% /mnt/c

-Pオプション:POSIX準拠のフォーマットで表示

-Pオプションを使用すると、POSIX準拠のフォーマットで出力されます。

これにより、スクリプトなどでの処理が容易になります。

df -P
Filesystem     1024-blocks       Used  Available Capacity Mounted on
none              16389028          0   16389028       0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none              16389028          4   16389024       1% /mnt/wsl
drivers         1952732156 1180440672  772291484      61% /usr/lib/wsl/drivers
/dev/sdc        1055762868    1446108 1000613288       1% /
none              16389028         92   16388936       1% /mnt/wslg
none              16389028          0   16389028       0% /usr/lib/wsl/lib
rootfs            16385612       2208   16383404       1% /init
none              16389028        568   16388460       1% /run
none              16389028          0   16389028       0% /run/lock
none              16389028          0   16389028       0% /run/shm
tmpfs                 4096          0       4096       0% /sys/fs/cgroup
none              16389028         76   16388952       1% /mnt/wslg/versions.txt
none              16389028         76   16388952       1% /mnt/wslg/doc
C:\             1952732156 1180440672  772291484      61% /mnt/c
tmpfs              3277804         16    3277788       1% /run/user/1000

dfコマンドの応用例

特定のディレクトリのディスク使用状況を確認する

特定のディレクトリのディスク使用状況を確認するには、dfコマンドにそのディレクトリのパスを指定します。

これにより、指定したディレクトリがマウントされているファイルシステムの情報が表示されます。

df /home
Filesystem      1K-blocks    Used  Available Use% Mounted on
/dev/sdc       1055762868 1446108 1000613288   1% /

特定のファイルシステムのディスク使用状況を確認する

特定のファイルシステムのディスク使用状況を確認するには、dfコマンドにファイルシステムのデバイス名を指定します。

これにより、そのファイルシステムの詳細な情報が得られます。

df /dev/sda1
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       102400000 30720000  71680000  30% /

ディスク使用状況を定期的に監視する方法

ディスク使用状況を定期的に監視するには、watchコマンドと組み合わせて使用します。

これにより、指定した間隔でdfコマンドの出力を更新して表示できます。

watch -n 60 df -h

このコマンドは、60秒ごとにディスク使用状況を更新して表示します。

dfコマンドの出力を他のコマンドと組み合わせる

dfコマンドの出力を他のコマンドと組み合わせることで、より便利な情報を得ることができます。

例えば、grepコマンドを使って特定のファイルシステムだけを表示することができます。

df -h | grep '/dev/sda1'
/dev/sda1       100G   30G   70G  30% /

スクリプトでdfコマンドを活用する

dfコマンドをスクリプト内で活用することで、ディスク使用状況を自動的にチェックし、アラートを出すことができます。

以下は、ディスク使用率が80%を超えた場合に警告を表示する簡単なスクリプトの例です。

#!/bin/bash
# ディスク使用率をチェック
threshold=80
usage=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ "$usage" -gt "$threshold" ]; then
    echo "警告: ディスク使用率が${usage}%を超えました!"
fi

このスクリプトを定期的に実行することで、ディスクの使用状況を監視できます。

dfコマンドの注意点

マウントされていないファイルシステムは表示されない

dfコマンドは、マウントされているファイルシステムの情報のみを表示します。

したがって、マウントされていないファイルシステムやデバイスは出力に含まれません。

これにより、システムに接続されているが使用されていないストレージデバイスの状況を把握することはできません。

新しいストレージデバイスを追加した場合は、必ずマウントを行ってからdfコマンドを実行する必要があります。

バインドマウントの扱い

バインドマウントは、既存のディレクトリを別の場所にマウントする方法です。

dfコマンドは、バインドマウントされたディレクトリも表示しますが、元のディレクトリと同じファイルシステムとして扱われます。

これにより、バインドマウントの影響を受けたディレクトリの使用状況を正確に把握することが難しくなる場合があります。

バインドマウントを使用する際は、どのディレクトリがどのファイルシステムに属しているかを明確に理解しておくことが重要です。

ディスク使用量とdfの表示が一致しない場合の原因

dfコマンドで表示されるディスク使用量と、実際のディスク使用量が一致しない場合があります。

これは、以下のような理由によるものです。

  • キャッシュの影響:Linuxカーネルは、ディスクの読み書きを効率化するためにキャッシュを使用します。

このため、dfコマンドが表示する使用量は、実際のディスクの使用量とは異なる場合があります。

  • 削除中のファイル:ファイルが削除されている最中に、そのファイルがまだプロセスによって使用されている場合、dfコマンドはそのファイルの使用量を表示し続けます。
  • ファイルシステムの不整合:ファイルシステムが不整合な状態にある場合、dfコマンドの出力が正確でないことがあります。

この場合、fsckコマンドを使用してファイルシステムのチェックと修復を行う必要があります。

これらの要因を考慮し、dfコマンドの出力を解釈する際には注意が必要です。

dfコマンドと他のコマンドの比較

duコマンドとの違い

du(Disk Usage)コマンドは、指定したディレクトリやファイルのディスク使用量を表示するためのコマンドです。

dfコマンドがファイルシステム全体の使用状況を表示するのに対し、duコマンドは特定のディレクトリやファイルのサイズを詳細に確認することができます。

以下は、両者の主な違いです。

スクロールできます
コマンド機能出力内容
dfファイルシステムの全体的な使用状況を表示各ファイルシステムのサイズ、使用中、空き容量
du特定のディレクトリやファイルのサイズを表示指定したディレクトリ内のファイルやサブディレクトリのサイズ
du -sh /home/user
30G /home/user

lsblkコマンドとの違い

lsblk(List Block Devices)コマンドは、システム内のブロックデバイス(ディスクやパーティション)の情報を表示します。

dfコマンドがファイルシステムの使用状況を表示するのに対し、lsblkコマンドはデバイスの構造やマウントポイントを確認するために使用されます。

以下は、両者の主な違いです。

スクロールできます
コマンド機能出力内容
dfファイルシステムの使用状況を表示各ファイルシステムのサイズ、使用中、空き容量
lsblkブロックデバイスの情報を表示デバイス名、サイズ、マウントポイント、タイプ
lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 100G  0 disk 
└─sda1   8:1    0 100G  0 part /

fdiskコマンドとの違い

fdiskコマンドは、ディスクパーティションの管理を行うためのコマンドです。

dfコマンドがファイルシステムの使用状況を表示するのに対し、fdiskコマンドはディスクのパーティションテーブルを表示したり、パーティションの作成や削除を行ったりします。

以下は、両者の主な違いです。

スクロールできます
コマンド機能出力内容
dfファイルシステムの使用状況を表示各ファイルシステムのサイズ、使用中、空き容量
fdiskディスクパーティションの管理パーティションテーブル、パーティションのサイズ、タイプ
fdisk -l
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

これらのコマンドはそれぞれ異なる目的を持っており、システム管理やディスク管理において適切に使い分けることが重要です。

よくある質問

dfコマンドで表示される「使用率」が100%を超えることはある?

dfコマンドで表示される「使用率」は、通常は100%を超えることはありません。

しかし、特定の状況下では、ファイルシステムのメタデータやキャッシュの影響により、表示される使用率が100%を超えることがあります。

これは、ファイルシステムが一時的に不整合な状態にある場合や、削除中のファイルがまだ使用中である場合に発生することがあります。

このような場合は、fsckコマンドを使用してファイルシステムのチェックと修復を行うことが推奨されます。

dfコマンドで表示される「使用中」と「空き容量」が合計と一致しないのはなぜ?

dfコマンドで表示される「使用中」と「空き容量」の合計が、ファイルシステムの総容量と一致しない場合があります。

これは、以下の理由によるものです。

  • 予約領域:Linuxでは、ファイルシステムの一部が特定のユーザー(通常はroot)によって予約されており、一般ユーザーには使用できません。

このため、実際の使用可能な空き容量が表示される数値と異なることがあります。

  • キャッシュの影響:Linuxカーネルは、ディスクの読み書きを効率化するためにキャッシュを使用します。

このため、dfコマンドが表示する使用量は、実際のディスクの使用量とは異なる場合があります。

dfコマンドで特定のファイルシステムが表示されないのはなぜ?

dfコマンドで特定のファイルシステムが表示されない場合、以下の理由が考えられます。

  • マウントされていない:表示されないファイルシステムがマウントされていない場合、dfコマンドには表示されません。

新しいストレージデバイスを追加した場合は、必ずマウントを行ってからdfコマンドを実行する必要があります。

  • フィルタリングdfコマンドに特定のオプション(例:-xオプション)を指定している場合、特定のファイルシステムが除外されて表示されないことがあります。

オプションを確認し、必要に応じて変更してください。

  • 権限の問題:特定のファイルシステムに対するアクセス権限が不足している場合、表示されないことがあります。

rootユーザーで実行することで、すべてのファイルシステムの情報を確認できる場合があります。

まとめ

この記事では、dfコマンドの基本的な使い方やオプション、応用例、注意点、他のコマンドとの比較について詳しく解説しました。

これにより、ディスクの使用状況を把握し、効率的なシステム管理を行うための手段を提供しています。

今後は、実際にdfコマンドを活用して、システムのディスク容量を定期的に確認し、必要に応じて適切な対策を講じることをお勧めします。

  • URLをコピーしました!
目次から探す