テクノロジーガイド

smartmontools入門 — HDDのSMART監視とテスト

2 min read システム管理 更新されました 03 Oct 2025
smartmontools入門 — HDDのSMART監視とテスト
smartmontools入門 — HDDのSMART監視とテスト

概要

smartmontoolsは、ほとんどの現代的なATA/SCSIディスクに組み込まれている自己監視・解析・報告技術(SMART)を利用して、ストレージを制御・監視するためのツールセットです。主なコンポーネントは次の2つです。

  • smartctl: ディスクの情報取得、自己診断テストの起動、SMART属性の表示を行うコマンドラインツール。
  • smartd: 継続的にディスクを監視し、ログや通知を行うデーモン。

定義: SMARTとは、磁気ディスクやSSDが持つ自己診断情報の集合で、故障の兆候を早期に検出するためのものです。

重要: SMARTは万能ではありません。SMARTが異常を報告しないケースや、突発的に故障するケースもあります。常に冗長化と定期バックアップを組み合わせて運用してください。

インストール

Debian/Ubuntu系の例:

sudo apt-get install smartmontools

必要条件は、SMART対応のディスクとroot権限です。GUIが欲しい場合は後述のgsmartcontrolもインストールします。

sudo apt-get install gsmartcontrol

初回確認とディスク情報の取得

ディスクがSMART対応か確認するには次を実行します。

sudo smartctl -i /dev/sda

ここで/dev/sdaは実際のデバイス名に置き換えてください。出力の例(ディスク基本情報)を示します。

/dev/sda に対する smartctl -i の出力例(ディスク基本情報)

出力の最終行付近にSMARTが有効かどうかが表示されます。SMARTが無効なら次で有効化します。

sudo smartctl -s on /dev/sda

有効化コマンド実行後の表示例:

/dev/sda に対する SMART 有効化の確認画面

上記は既に有効であれば何もしません。

IDEとSATAでの情報取得の例:

sudo smartctl -a /dev/sda
sudo smartctl -a -d ata /dev/sda

ディスクの健康状態を簡易チェックするには:

sudo smartctl -H /dev/sda

出力でFAILEDや予期せぬエラーが出たら、直ちにバックアップを取ってください。

自己診断テストの種類と実行

smartctlは主に3種類の自己診断テストを扱います。

  • short: 短時間の基本テスト。
  • long: セクタ読み書きに基づく詳細テスト(時間がかかる)。
  • conveyance: 輸送によるダメージを検出する短めのテスト。

テスト可能な内容は次で確認できます。

sudo smartctl -c /dev/sda

出力例(サポートされるテストと所要時間):

/dev/sda に対するテストサポートと所要時間の出力例

各テストの開始コマンド:

sudo smartctl -l long /dev/sda
sudo smartctl -l short /dev/sda
sudo smartctl -l conveyance /dev/sda

ロングテスト実行後の出力例:

/dev/sda のロングテスト実行後の出力例

注意: 多くの自己診断テストはバックグラウンドで実行されます。進行状況は画面上に継続表示されないので、結果は後で確認します。

結果の確認:

sudo smartctl -l selftest /dev/sda

表示例(自己診断ログ):

smartctl の selftest ログ表示例

読み方に迷ったらmanを参照してください。

man 8 smartctl
man 8 smartd

smartdをデーモンとして運用する

手動で都度実行する代わりに、smartdをデーモンとして常駐させると自動監視と通知が可能です。設定は次のファイルを編集します。

sudo nano /etc/default/smartmontools

サービス起動フラグを有効にします。編集後の例のスクリーンショット:

/etc/default/smartmontools の起動設定例

次にsmartdの設定を行います。

sudo nano /etc/smartd.conf

設定ファイル例のスクリーンショット:

smartd.conf の例表示

システムによってはDEVICESCANが機能しない場合があります。その場合は個別に/dev/sdaのように指定してください。典型的な1行例:

/dev/sda -m root -M exec /usr/share/smartmontools/smartd-runner

説明:

  • -m root: エラー時にrootにメールを送る。メール送信先はローカルのrootアカウント。
  • -M exec /usr/share/smartmontools/smartd-runner: エラー時に指定のスクリプトを実行する。環境によりこのスクリプトが無いことがあるので、その場合は-Mオプションを省略。

スケジュール例を含めたより詳細な行:

DEVICESCAN -a -H -l error -l selftest -f -s(S/../.././02|L/../../6/03) -m root -M exec /usr/share/smartmontools/smartd-runner

この例の意味:

  • -a: 一般的によく使うオプションをまとめて有効化。
  • -H: SMARTの健康状態を確認。
  • -l error: エラーログの増加を報告。
  • -l selftest: selftestログの増加を報告。
  • -f: 使用中の属性に関する故障を検出。
  • -s(…): ショートとロングの自己診断テストのスケジュール。ここではショートを毎日02:00、ロングを毎週土曜03:00に設定。

詳細はmanを参照してください。

man 5 smartd.conf

GUI: GSmartControl

コマンドラインが苦手な場合はGSmartControlを使うとGUIでディスク一覧、属性、自己診断の起動が可能です。

/usr/share/gsmartcontrol の画面キャプチャ(ディスク一覧)

GUIのデバイス情報画面例:

GSmartControl のデバイス情報表示例

右クリックメニューからテスト開始や詳細表示ができます。

運用チェックリスト(役割別)

運用者向け簡易チェックリスト:

  • インストールと初期確認を実行したか。
  • smartdをデーモンとして有効にしたか。
  • 通知先(メールや監視システム)を設定したか。
  • 定期バックアップが有効であるか。
  • テストスケジュールが業務時間に影響しない時間帯か確認したか。

管理者(SRE/システム管理者)向け:

  • smartd.confでDEVICESCANか個別指定かを決定したか。
  • -mで通知先が期待通りかテストしたか。
  • smartd-runnerやメール送信の実行権限を確認したか。
  • 監視システム(Prometheus, Nagios等)と連携する場合はログ取りの仕組みを用意したか。

テストケースと受け入れ基準

運用導入後の簡単な受け入れテスト:

  • ステップ1: /dev/sdXの情報がsmartctl -iで取得できること。
  • ステップ2: smartctl -HでOKが返ること(正常なディスクの場合)。
  • ステップ3: smartdを起動後、設定したスケジュールで自己診断が開始され、ログが増えていること。
  • ステップ4: 故障条件を模擬した場合に通知が送られること(テストメール送信で確認)。

受け入れ基準: 上記4点が満たされ、バックアップ手順が検証済みであること。

トラブルシューティングとよくあるケース

問題: smartctlがデバイスを認識しない

対処:

  • デバイス名が正しいかを確認する。
  • USB-SATA変換経由のディスクは-dオプションで適切なドライバ指定が必要な場合がある。
  • パススルーやRAIDコントローラ配下のディスクは、コントローラによっては直接アクセスできない。

問題: smartd の通知が来ない

対処:

  • -mで指定したメールアドレスにローカルMTAがメールを送れるか確認する。
  • smartd-runnerを使っている場合は実行権限とパスを確認する。
  • syslog/journalを確認してエラーメッセージを探す。

いつ失敗するか(限界):

  • SMARTは読み取りベースの指標が中心なので、制御系の突発故障や電源系の問題は検知しない場合がある。
  • RAID配下の物理ディスクはコントローラ越しで情報が隠蔽されることがある。

代替アプローチと互換性

  • ハードウェアベンダー製ツール: 一部のNASやサーバーベンダーは独自の診断ツールを提供しており、コントローラ付き環境ではそちらが適切な場合がある。
  • 監視統合: PrometheusやZabbixにSMARTのメトリクスを取り込むExportersやスクリプトを使うとRCAや履歴把握に便利。
  • RAID/ハードウェアコントローラ: HBAやRAIDカード経由のディスクはsmartmontoolsで直接アクセスできない場合がある。コントローラの管理ツールを優先する。

互換性メモ: SATA/ATAのディスクは-d ata指定が必要な場合がある。NVMeデバイスはsmartctlでnvmeサポートがあり、コマンドが一部異なる。

小さな運用SOP(導入〜初期運用)

  1. インストール: apt/パッケージ管理でsmartmontoolsを導入。
  2. 初期確認: smartctl -iでSMART対応を確認。
  3. 有効化: smartctl -s onでSMARTをONに。
  4. ベースライン: smartctl -aで属性を保存し、ベースラインを記録。
  5. 自動監視: /etc/default/smartmontoolsでデーモン有効化、/etc/smartd.confでスケジュール設定。
  6. テスト: short/longを実行し、結果をselftestで確認。
  7. 通知経路: ローカルメールまたは監視システムへ連携を行い、メール送信テストを実施。
  8. 定期レビュー: 属性の傾向を週次/月次で確認し、異常があればエスカレーション。

参考とリンク

  • 公式: smartmontools.org
  • manページ: smartctl と smartd の man を参照

1行用語集

  • SMART: 磁気ディスクやSSDが保持する自己診断・監視情報の規格。
  • smartctl: SMART情報の表示と自己診断開始を行うコマンド。
  • smartd: SMARTを継続監視するデーモン。

まとめ: smartmontoolsはディスク障害の早期発見に有効なツール群です。万能ではない点に注意しつつ、定期バックアップと監視体制を整えることで、運用の信頼性を高められます。

短い告知文: smartmontoolsを使えば、ディスクのSMART情報取得と自己診断の自動化が可能です。まずはインストールと/dev/sdXの初回確認を試してみてください。

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

複雑なデータをわかりやすいインフォグラフィックに変える方法
デザイン

複雑なデータをわかりやすいインフォグラフィックに変える方法

スマホで映画的映像を作る7つの実践コツ
ビデオ制作

スマホで映画的映像を作る7つの実践コツ

Chrome を高速化する最良の方法
ブラウザ最適化

Chrome を高速化する最良の方法

EA AntiCheatの互換ドライバーエラーを完全修正
トラブルシューティング

EA AntiCheatの互換ドライバーエラーを完全修正

Androidをモデムにする方法(ルート不要)
チュートリアル

Androidをモデムにする方法(ルート不要)

Chromebookに任意のLinuxをインストールする完全ガイド
チュートリアル

Chromebookに任意のLinuxをインストールする完全ガイド