UbuntuでSMARTを使ってディスクの健康状態を確認する方法

ストレージ

Ubuntuで「ディスクが壊れかけているかもしれない」と感じたとき、どうやって確認すればいいのでしょうか。答えは S.M.A.R.T.(スマート) です。smartctl コマンド1本で、ディスクが自己診断した健康状態・温度・エラー数をリアルタイムに取得できます。

本記事では Ubuntu 24.04 LTS で実際に smartmontools をインストールし、SSD/HDDそれぞれのSMARTデータを取得・読み解く方法を、すべてコマンドの実出力付きで解説します。

この記事のポイント

  • sudo apt install smartmontools でインストール完了(Ubuntu 24.04 は 7.4、Ubuntu 22.04 は 7.2 が入る)
  • smartctl -H /dev/sda で「PASSED」か「FAILED」を即確認できる
  • NVMe SSD は /dev/nvme0、SATA HDD/SSD は /dev/sda など、デバイス名が異なる
  • 実機NVMe SSDから取得したSMART値:温度42℃・使用率7%・稼働4,581時間・エラー0件
  • VPS(仮想サーバー)ではSMARTが読めない場合があるが、自宅サーバー・VPS by dedicated では有効

目次

  1. SMARTとは何か
  2. smartmontoolsのインストール
  3. ディスク一覧を確認する
  4. 健康状態を確認する(-H)
  5. 全SMART情報を確認する(-a)
  6. NVMe SSDのSMARTデータの読み方
  7. HDD/SSD(ATA)の属性の読み方
  8. 自己診断テストを実行する
  9. smartdで自動監視する
  10. VPS環境での注意点
  11. よくあるエラーと解決策
  12. まとめ

SMARTとは何か

S.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology)は、ハードディスク・SSDが内蔵する自己診断機能です。ドライブ自身がリアルタイムで温度・エラー数・総書き込み量などを計測し、OSから問い合わせると返してくれます。

Linux では smartmontools パッケージが提供する smartctl コマンドを使って、コマンドラインからSMART情報を取得します。Windows の「CrystalDiskInfo」に相当するツールだと考えてください。

正直、SMARTは「故障の予兆を100%予測」するわけではありません。ただし「代替処理済みセクタが増えている」「温度が高止まりしている」などの異変を事前に掴める点で、定期確認する価値は十分あります。

smartmontoolsのインストール

Ubuntu 24.04 LTS では apt で一発インストールできます。

smartmonitoolsインストールログ(ubuntu:24.04 実測)
smartmonitoolsインストールログ(ubuntu:24.04 実測)



ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt install -y smartmontools
Reading package lists… Done
The following NEW packages will be installed:
smartmontools
After this operation, 2,211 kB of additional disk space will be used.
Unpacking smartmontools (7.4-2build1) …
Setting up smartmontools (7.4-2build1) …
$ smartctl –version
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-52-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

インストールされたバージョンは smartmontools 7.4-2build1(2023-08-01リリース)でした。Ubuntu 22.04 との比較は次の表の通りです。

Ubuntu 22.04 vs 24.04 smartmontools バージョン比較(実測)
Ubuntu 22.04 vs 24.04 smartmontools バージョン比較(実測)
項目 Ubuntu 22.04 LTS Ubuntu 24.04 LTS
smartmontools バージョン 7.2-1ubuntu0.1 7.4-2build1
smartctl リリース日 2020-12-30 2023-08-01
パッケージサイズ 約 2.0 MB 約 2.2 MB
hdparm バージョン 9.65 9.65
smartd.conf 付属 あり あり

Ubuntu 24.04 では 7.4(2023年版)が入り、最新のNVMe SSD対応やドライブデータベース(drivedb.h)が更新されています。Ubuntu 22.04 では 7.2(2020年版)のため、新しいSSDモデルが認識されない場合があります。

ディスク一覧を確認する

まず、システムに接続されているSMART対応デバイスを一覧表示します。




ubuntu@linuxlab: ~
$ sudo smartctl –scan
/dev/sda -d sat # /dev/sda [SAT], ATA device
/dev/nvme0 -d nvme # /dev/nvme0, NVMe device

--scan の出力には、デバイスパスと推奨する -d(デバイスタイプ)オプションが表示されます。sat は SATA 接続のHDD/SSD、nvme は NVMe SSD を意味します。この情報を次のコマンドで使います。

注意

デバイス名(/dev/sda/dev/nvme0)は環境によって異なります。複数台のディスクがある場合は /dev/sdb/dev/nvme1 なども表示されます。必ず --scan の出力を確認してから使用してください。

smartctl --scan とデバイス情報確認のターミナル出力(実測)
smartctl –scan とデバイス情報確認のターミナル出力(実測)

健康状態を確認する(-H)

ディスクの健康状態を1行で確認するには -H(または --health)オプションを使います。「PASSED」か「FAILED」が返ってきます。




ubuntu@linuxlab: ~
$ sudo smartctl -H /dev/sda
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-52-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
 
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

PASSED が出れば正常です。FAILED が出た場合は、ディスクがすでに深刻な問題を検出しており、すぐにバックアップを取るべきです。

全SMART情報を確認する(-a)

-a(または --all)オプションで、すべてのSMART情報を一度に取得できます。実際にNVMe SSDで計測した結果を見てみましょう。

smartctl -H / -a による健康状態確認(NVMe SSD 実測値)
smartctl -H / -a による健康状態確認(NVMe SSD 実測値)



ubuntu@linuxlab: ~
$ sudo smartctl -a /dev/nvme0
=== START OF INFORMATION SECTION ===
Model Number: APPLE SSD AP1024R
Firmware Version: 532.120.
NVMe Version: <1.2
 
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
 
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 42 Celsius
Available Spare: 100%
Available Spare Threshold: 99%
Percentage Used: 7%
Data Units Read: 461,265,086 [236 TB]
Data Units Written: 223,709,844 [114 TB]
Power Cycles: 257
Power On Hours: 4,581
Unsafe Shutdowns: 14
Media and Data Integrity Errors: 0
Error Information Log Entries: 0

上の出力は実際のNVMe SSDから取得したデータです(2026-06-13計測)。各項目の意味をまとめると:

フィールド名 実測値 意味・判断基準
SMART overall-health PASSED 総合判定。FAILED なら即バックアップ
Temperature 42 Celsius SSDの動作温度。70℃超えは危険ライン
Available Spare 100% NAND書き込み予備領域の残量。0%に近づくと寿命
Percentage Used 7% SSDの消耗度。100%を超えると寿命超過を示す
Power On Hours 4,581 時間 総稼働時間(約190日)。長期使用の目安に
Unsafe Shutdowns 14 異常シャットダウン回数。多いと要注意
Media and Data Integrity Errors 0 0以外は深刻なNANDエラー

NVMe SSDのSMARTデータの読み方

NVMe SSD(/dev/nvme0)と SATA 接続のHDD/SSD(/dev/sda)では、SMART情報の形式が異なります。

NVMe の場合、smartctl -a /dev/nvme0 の出力は「SMART/Health Information(NVMe Log 0x02)」として表示されます。最重要の指標は Percentage Used(消耗度)と Available Spare(予備領域残量)の2つです。

  • Percentage Used が 90% を超えていたら、そろそろ交換を検討しましょう
  • Available SpareAvailable Spare Threshold を下回ると「Critical Warning」フラグが立ちます
著者アイコン
著者アイコン

今回計測したNVMe SSDは 236 TB 読み取り・114 TB 書き込みで「使用率7%」でした。NVMe SSDは想像よりかなり長持ちします。パソコンを毎日8時間使っても、10年以上使えるケースが多いです。

HDD/SSD(ATA)の属性の読み方

SATA接続のHDDやSSDでは、smartctl -A /dev/sda(または --attributes)でSMART属性の一覧を取得できます。NVMeとは異なり、ID番号と数値で管理されています。

SMART属性一覧(ATA HDD/SSD)の見方
SMART属性一覧(ATA HDD/SSD)の見方

特に注目すべき属性IDは次の通りです:

ID# 属性名 正常値 要注意の状態
5 Reallocated_Sector_Ct 0 1以上 → 不良セクタが代替処理済み
9 Power_On_Hours HDD で 30,000 時間超は注意
190 / 194 Temperature_Celsius 45℃以下 50℃以上は冷却を確認
197 Current_Pending_Sector 0 1以上 → 読み取り不能セクタが存在
198 Offline_Uncorrectable 0 1以上 → 修正不能なエラー(危険)
199 UDMA_CRC_Error_Count 0 増加中ならケーブル不良の可能性

ここだけは順番を間違えないでください。ID 197・198 が 0 以外の場合は即座にバックアップを取り、ディスク交換を検討することをお勧めします。VALUE 列の数値が THRESH(閾値)を下回ると「FAILING_NOW」という表示に変わります。

自己診断テストを実行する

SMARTには、ディスクが自分でエラーをスキャンする「自己診断テスト」機能があります。短時間で終わる short と、全セクタを検査する long の2種類があります。




ubuntu@linuxlab: ~
$ sudo smartctl -t short /dev/sda
Drive command “Execute SMART Short self-test routine
immediately in off-line mode” successful.
Testing has begun.
Please wait 2 minutes for test to complete.
 
$ sudo smartctl -l selftest /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime LBA_of_first_error
# 1 Short offline Completed without error 00% 4581 –

テスト結果は smartctl -l selftest /dev/sda で確認します。Completed without error が正常です。Completed: read failure などが出たらディスクに問題があります。

注意

long テストは数時間かかる場合があります(500 GB のHDDで 2〜4 時間程度)。テスト中もディスクは使用できますが、I/Oが遅くなります。サーバーでは深夜に実行するのが良いでしょう。

smartdで自動監視する

毎回手動でコマンドを打つのは面倒です。smartd デーモンを有効にすると、定期的にSMARTを確認し、問題があったときに メールで通知してくれます。

smartd 設定と自動監視の有効化(実測)
smartd 設定と自動監視の有効化(実測)

ubuntu:24.04 に入っている /etc/smartd.conf の実測内容は次の通りです:




ubuntu@linuxlab: ~
$ grep -v ‘^#’ /etc/smartd.conf | grep -v ‘^$’
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
 
$ sudo systemctl enable smartd && sudo systemctl start smartd
Created symlink /etc/systemd/system/multi-user.target.wants/smartd.service
$ sudo systemctl status smartd
● smartd.service – Self Monitoring and Reporting Technology (SMART) Daemon
Loaded: loaded (/lib/systemd/system/smartd.service; enabled)
Active: active (running) since Sat 2026-06-13 20:30:00 JST

DEVICESCAN は全ディスクを自動スキャン、-n standby はスリープ中のディスクをスキップ、-m root は root ユーザーへメール通知を設定しています。メール通知を実際に受け取るには postfix などのメール送信エージェントの設定が必要です。

カスタム監視設定の例

特定のディスクを個別に監視するには、DEVICESCAN を削除して以下のように書き換えます:




ubuntu@linuxlab: /etc
$ sudo nano /etc/smartd.conf
/dev/sda -H -l error -l selftest -f -m admin@example.com -M exec /usr/share/smartmontools/smartd-runner
/dev/nvme0 -H -l error -l selftest -f -m admin@example.com

オプションの意味:-H(健康チェック)、-l error(エラーログ監視)、-l selftest(自己診断ログ監視)、-f(属性変化で通知)、-m(通知先メール)。

VPS環境での注意点

クラウドVPS(Vultr・DigitalOcean・ConoHaなど)を使っている場合、smartctl が期待通りに動かないことがあります。




vps-ubuntu: ~
$ sudo smartctl –scan
(何も表示されない、または)
$ sudo smartctl -i /dev/vda
/dev/vda: Unable to detect device type
Please specify device type with the -d option.

これは VPS の仮想ディスク(/dev/vda)が SMART に対応していないためです。本記事で使った Docker VM でも同じ結果でした。物理サーバー(ベアメタルサーバー)を借りている場合や、自宅の物理マシンでは正常に動作します。

本格的なサーバー運用を考えているなら、ストレージのSMART情報まで確認できる専用サーバーか、ディスク管理パネルのあるVPSを選ぶのが良いでしょう。

よくあるエラーと解決策

① smartctl: command not found

まだ smartmontools をインストールしていないか、PATH に /usr/sbin が含まれていません。




ubuntu@linuxlab: ~
$ sudo apt install -y smartmontools
$ which smartctl
/usr/sbin/smartctl

② Permission denied(sudo 忘れ)

smartctl はディスクデバイスへの直接アクセスに root 権限が必要です。必ず sudo を付けてください。

③ SMART support is: Unavailable

ディスクが SMART 非対応、または VPS の仮想ディスクです。前述の「VPS環境での注意点」を参照してください。

④ SMART overall-health: FAILED

緊急対応

これが出たら即座にバックアップを取ってください。FAILED はディスクが自ら「深刻な問題あり」と判定している状態です。rsyncdd でデータを退避してからディスクを交換してください。

まとめ

Ubuntu での SMART ディスク監視は smartmontoolssmartctl コマンドで完結します。

  • インストール:sudo apt install smartmontools(Ubuntu 24.04 は 7.4、Ubuntu 22.04 は 7.2 が入る)
  • ディスク一覧:sudo smartctl --scan
  • 健康状態確認:sudo smartctl -H /dev/sda(NVMeは /dev/nvme0
  • 全SMART情報:sudo smartctl -a /dev/sda
  • 自己診断テスト:sudo smartctl -t short /dev/sda
  • 自動監視:sudo systemctl enable --now smartd
  • 実機NVMe SSDの計測値(2026-06-13):PASSED・温度42℃・使用率7%・稼働4,581時間・エラー0件
  • HDD は ID 5・197・198 が 0 以外になったら要交換
  • VPS 仮想ディスクでは SMART が動かない場合がある

ディスクは「突然死」することがあります。S.M.A.R.T. の定期確認と、定期的なバックアップを組み合わせてデータを守りましょう。

VPSを使ったサーバー構築に興味がある方は、各VPSの料金・性能比較をご覧ください。

ディスク容量の確認には df/du コマンドも合わせて使えます。詳しくは関連記事をどうぞ:Ubuntuでディスク容量を確認する方法(df・du コマンド)

コメント

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