【Linux】ディスク使用状況・デバイス情報系コマンドまとめ|df・du・lsdev・smartctlの使い分け

Linux

どーも!marusukeです!

この記事では、Linuxでディスクの使用状況やデバイス情報を確認するための主要コマンドをまとめて解説します。

この記事で分かることは次のとおりです。

  • ファイルシステム単位のディスク使用状況を確認するコマンド(df)
  • ファイル・ディレクトリ単位の使用容量を確認するコマンド(du)
  • 認識されているデバイス情報を確認するコマンド(lsdev)
  • ディスクの健康状態(故障予兆)を確認するコマンド(smartctl)
  • それぞれの使い分けと注意点

ディスク使用状況・デバイス情報系コマンドの全体像

これらのコマンドは、大きく3つの目的に分かれます。

目的コマンド役割
容量確認(ファイルシステム単位)dfどのディスク/パーティションがどれだけ使われているかを確認
容量確認(ファイル・ディレクトリ単位)duどのファイルやディレクトリが容量を使っているかを確認
デバイス確認lsdev認識されているハードウェア(CPU・メモリ・ディスクなど)の情報を確認
健康状態確認smartctlHDD/SSDの故障予兆・劣化状況を確認

「ディスク容量が足りない」というトラブルでは、まずdfで全体を確認し、duで原因のディレクトリを特定する、という流れがよく使われます。ハードウェア構成や故障予兆を調べたい場合はlsdevsmartctlを使います。

ファイルシステム単位の使用状況:df

df [オプション] [ファイル]

dfコマンドは、ファイルシステムのディスク使用状況を確認するコマンドです。「どのディスクがどれだけ使われているか」「空き容量はどれくらいあるか」を確認できます。Linuxサーバーの運用やトラブルシューティングで、ディスク容量不足の確認によく使われます。

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   20G   28G  42% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sdb1       100G   70G   26G  73% /data

-hオプションで人間に読みやすい単位(GB/MB)で表示しています。

dfの主なオプション

オプション説明
-h容量を人間が読みやすい形式(GB・MBなど)で表示
-H-hと似ているが、単位に1000の倍数を使用(例:1KB=1000B)
-T各ファイルシステムの種類も表示
-aマウントされていないファイルシステムも含めてすべて表示
--total最後に合計の使用量を表示
-iディスク容量ではなくinode(ファイル数の上限)の使用状況を表示

💡 inodeとは、ファイルシステムでファイルごとに管理される情報の単位です。inodeが不足すると、ディスク容量に余裕があっても新しいファイルが作れなくなります。df -iで確認できます。

詳しくはdfコマンドの記事を参照してください。

ファイル・ディレクトリ単位の使用容量:du

du [オプション] [ファイルまたはディレクトリ]

duコマンドは、ファイルやディレクトリが使用しているディスク容量(サイズ)を表示するコマンドです。dfで容量不足が分かったあと、「どのディレクトリが容量を使っているか」を特定するために使います。

du -h /home/user
4.0K    /home/user/Downloads
8.0K    /home/user/Documents
12K     /home/user

duの主なオプション

オプション説明
-hサイズを人間が読みやすい単位(K/M/G)で表示
-s各ディレクトリの合計サイズのみを表示
-aディレクトリだけでなくファイルごとのサイズも表示
-c合計サイズも最後に表示
--max-depth=N表示するディレクトリの階層の深さを制限

初心者にもおすすめの組み合わせは次の通りです。

du -h --max-depth=1

指定したディレクトリの1階層下のフォルダサイズが分かりやすく表示されます。

詳しくはduコマンドの記事を参照してください。

デバイス情報の確認:lsdev

lsdev [オプション]

lsdevコマンドは、Linuxで認識されているデバイス情報(CPU・メモリ・ディスク・シリアルポート・ネットワークデバイスなど)を一覧表示するコマンドです。ハードウェア構成の確認やデバイスが正しく認識されているかの調査に使われます。

$ lsdev

Device            DMA   IRQ  I/O Ports
--------------------------------------
timer                   0
keyboard                1    0x060-0x06f
serial                  4    0x3f8-0x3ff
ide0                    14   0x1f0-0x1f7

lsdevは内部的に/proc/interrupts/proc/dma/proc/ioportsの情報を読み取り、見やすくまとめて表示しています。

lsdevの主なオプション

オプション説明
-dDMA情報を表示
-iIRQ情報を表示
-pI/Oポート情報を表示
-C指定クラスのデバイスを表示
-hヘルプを表示

⚠ 最近のLinuxディストリビューションではlsdevが標準インストールされていないことも多く、代わりにlspci(PCIデバイス)、lsusb(USBデバイス)、lsblk(ディスク・パーティション)、lshw(詳細ハードウェア情報)が使われるのが一般的です。

詳しくはlsdevコマンドの記事を参照してください。

ディスクの健康状態:smartctl

smartctl [オプション] デバイス名

smartctlは、HDDやSSDの健康状態を確認するコマンドです。ディスクに内蔵されているS.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology)情報を取得し、故障予兆をチェックできます。ディスクの寿命・劣化状況、不良セクタの有無、温度、自己診断テストの実行などが可能です。

💡 S.M.A.R.TはLinuxの機能ではなく、HDD/SSD側に内蔵された自己診断機能です。smartctlはその情報を読み取るツールです。

# 詳細情報の確認
$ sudo smartctl -a /dev/sda

# 簡易健康チェック
$ sudo smartctl -H /dev/sda
SMART overall-health self-assessment test result: PASSED

smartctlの主なオプション

オプション説明
-aすべてのSMART情報を表示
-H健康状態の概要を表示
-iデバイス情報を表示
-t short短時間の自己診断テストを実行
-t long詳細な自己診断テストを実行
-l selftestテスト結果の履歴を表示

多くの環境では標準インストールされていないため、別途パッケージの導入が必要です。

# Debian/Ubuntu系
sudo apt install smartmontools

# RHEL/CentOS/Rocky Linux
sudo dnf install smartmontools

💡 ディスクは突然壊れることもありますが、多くの場合は劣化の兆候があります。smartctlを定期的に実行(cronなどで自動化)することで、事前に異常を検知し、データ消失を防ぐことができます。

詳しくはsmartctlコマンドの記事を参照してください。

コマンド比較表

コマンド確認対象主な用途標準インストール
dfファイルシステムディスク全体の空き容量・使用率の確認標準
duファイル・ディレクトリ容量を使っている場所の特定標準
lsdevデバイス(IRQ/DMA/I/O)ハードウェア認識状況の確認環境により未収録
smartctlHDD/SSD本体故障予兆・健康状態の確認別途インストールが必要

典型的な使用フロー

  1. df -hでディスク全体の使用率・空き容量を確認する
  2. 容量不足が見つかったら、対象パーティション配下でdu -h --max-depth=1を実行し、容量を使っているディレクトリを特定する
  3. 必要に応じてdf -iでinode不足も確認する
  4. デバイスが正しく認識されているか確認したい場合はlsdev(またはlspcilsusblsblk)を使う
  5. ディスク自体の故障予兆が気になる場合はsmartctl -Hで簡易チェック、必要なら-aで詳細確認する
  6. 重要なディスクはsmartctlを定期実行(cron等)し、異常の早期発見につなげる

まとめ

ディスク使用状況・デバイス情報系コマンドは、「容量確認(df・du)」と「デバイス・健康状態確認(lsdev・smartctl)」に分けて理解すると整理しやすくなります。容量不足のトラブルはdfduの流れで原因を特定し、ハードウェアの異常はlsdevsmartctlで早期に発見しましょう。

以上です!

ここまで読んでいただきありがとうございました!

コメント

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