smartctlでLinuxのディスクの健全性をチェックする方法

12分で読めます - 2026年5月18日

hero section cover
目次
  • Linuxでsmartctlを使用してディスクの状態を確認する方法
  • smartmontoolsのインストール
  • ドライブの特定とSMARTの有効化
  • ヘルスチェックとセルフテストの実行
  • 注目すべき主要なSMART属性
  • smartd による監視の自動化
共有

smartctlとsmartdを使用して、ドライブの健全性を監視し、SMARTテストを実行し、Linuxサーバ上で自動化されたアラートを設定します。 タグ: smartctl, smartmontools, SMART, ディスクヘルス, Linux, サーバモニタリング, smartd, NVMe, SSD, HDD.

Linuxでsmartctlを使用してディスクの状態を確認する方法

smartctl は、Linux上でストレージドライブの状態を監視するためのコマンドラインツールです。HDD、SSD、NVMeドライブからS.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology)データを読み取り、再割り当てセクタ、温度、エラーカウントなどの指標を追跡します。ドライブが故障に向かっている場合、 smartctl データが失われる前に警告サインを表示します。このガイドでは、インストール、ヘルスチェックとセルフテストの実行、主要なSMART属性の理解、および smartd.


smartmontoolsのインストール

smartctlsmartmontools パッケージの一部です。インストールおよびほとんどの smartctl コマンドの実行には、ハードウェアへの直接アクセスが必要となるため、root 権限または sudo 権限が必要です。

ディストリビューションディストリビューション
Debian / Ubuntu / Linux Mintsudo apt update && sudo apt install smartmontools -y
CentOS / RHEL / Rocky / Alma (8+)sudo dnf install smartmontools -y
CentOS / RHEL 7 以前sudo yum install smartmontools -y
Arch Linux / Manjarosudo pacman -S smartmontools
Fedorasudo dnf install smartmontools

次のコマンドでインストールを確認してください smartctl --version.

ドライブの特定とSMARTの有効化

何かを確認する前に、サーバーにどのドライブが搭載されているか、またそれらがSMARTに対応しているかを確認する必要があります。

すべてのブロックデバイスを一覧表示する:

lsblk

SMART対応ドライブのスキャン:

sudo smartctl --scan

これにより、デバイス名、タイプ、プロトコル(ATA、SCSI、NVMe)が返されます。SATAおよびSASドライブは /dev/sda, /dev/sdbなどとして表示されます。NVMeドライブは /dev/nvme0n1, /dev/nvme1n1.

特定のドライブでSMARTが利用可能かつ有効になっているか確認する:

sudo smartctl -i /dev/sda

出力に「SMART support is: Available」および「SMART support is: Enabled」があるか確認します。利用可能だが有効になっていない場合は、有効にします:

sudo smartctl -s on /dev/sda

この設定は再起動後も維持されます。

RAIDコントローラ経由のドライブについては、 -d フラグを使用してコントローラのタイプを指定します。MegaRAIDの場合: -d megaraid,N。HP Smart Arrayの場合: -d cciss,N。このフラグを指定しない場合、 smartctl 個々の物理ドライブは認識されません。

VPS環境の仮想ディスクや、ほとんどのUSBフラッシュドライブでは、SMARTモニタリングは利用できません。仮想化レイヤーまたはUSBエンクロージャーが、ハードウェアのテレメトリへのアクセスをブロックしているためです。

ヘルスチェックとセルフテストの実行

簡易ヘルスチェックでは、ドライブのファームウェアに問い合わせて重大な障害の有無を確認します:

sudo smartctl -H /dev/sda

PASSED」の結果は、ドライブが内部の故障閾値に達していないことを意味します。「FAILED」の結果は、ドライブが間もなく故障する見込みであることを意味します。直ちにデータをバックアップしてください。

すべての属性およびエラーログを含む完全なSMARTデータについては:

sudo smartctl -a /dev/sda

セルフテスト

smartctl では、3種類のセルフテストを実行できます。いずれもシステムを稼働させたままバックグラウンドで実行されます:

  • 簡易テスト(1~5分):電気的および機械的なコンポーネントをチェックします。 sudo smartctl -t short /dev/sda
  • ロングテスト(数時間):ドライブ上のすべてのセクタをスキャンします。 sudo smartctl -t long /dev/sda
  • 輸送テスト(約5分):輸送による物理的な損傷を検出します。 sudo smartctl -t conveyance /dev/sda

ロングテストを開始する前に、完了までの推定時間を確認してください:

sudo smartctl -c /dev/sda

テスト結果の確認:

sudo smartctl -l selftest /dev/sda

「エラーなしで完了」と表示されることを確認してください。テストに失敗した場合、出力には LBA_of_first_errorというメッセージが表示され、ディスク上のどの箇所に損傷があるかが特定されます。

注目すべき主要なSMART属性

合格/不合格のヘルスチェックは有用ですが、限界もあります。個々の属性の状態が悪化しているにもかかわらず、ドライブ全体が「合格」と報告される場合があります。最も重要な属性は以下の通りです:

  • 再割り当てセクタ数(ID 5):ドライブがスペアセクタと交換した不良セクタの数。値がゼロ以外であれば、物理的な摩耗を示しています。古いドライブにおいて、再割り当てセクタが1つ程度であれば必ずしも緊急を要するわけではありませんが、その数が増加している場合は明確な警告となります。
  • 現在の保留セクター数(ID 197):ドライブが読み書きできず、再マッピング待ちとなっているセクター。この数値が増え続ける場合、ドライブの劣化が進んでいます。
  • オフライン修正不能エラー (ID 198):バックグラウンドスキャン中に検出された修正不可能なエラー。表面の損傷を示しています。
  • UDMA CRCエラー数 (ID 199): データ転送エラー。これは通常、ドライブの故障ではなく、SATAケーブルの不良やコネクタの緩みを示しています。まずケーブルを確認してください。

SSDおよびNVMeドライブの場合は、代わりに「利用可能なスペア」と「使用率」を確認してください。「使用率」が100%に近づくと、ドライブの書き込み耐用限界に達したことを意味します。

温度も重要な要素です。HDDは50°Cを超えると信頼性が低下します。SSDはより高い温度に耐えられますが、70°C以下に保つ必要があります。 smartctl -A /dev/sda、または最近のコマンド失敗を確認するには smartctl -l error /dev/sda.

smartd による監視の自動化

ドライブの手動チェックは、単発の診断には適しています。継続的な監視には、 smartdsmartmontoolsに同梱されているデーモンであるsmartdを使用してください。デフォルトでは30分ごとにドライブをポーリングし、属性の変更をsyslogに記録します。

設定ファイルを /etc/smartd.conf (または /etc/smartmontools/smartd.conf RHEL/CentOSの場合)。 DEVICESCAN による自動検出に任せるのではなく、ドライブを明示的にリストアップしてください。これにより、互換性のないデバイスによるフリーズを回避できます。

設定例:

/dev/sda -a -m [email protected] -s (S/../.././02|L/../../6/03) -W 4,45,55
/dev/sdb -a -m [email protected] -n standby,q

各オプションの機能:

  • -a: すべてのSMART属性を監視
  • -m: 障害発生時にメールアラートを送信
  • -s: 毎日午前2時に簡易テストを、毎週土曜日の午前3時に詳細テストをスケジュールする
  • -W 4,45,55: 4°Cの温度変化をログに記録、45°Cで警告、55°Cで重大アラート
  • -n standby,q: 不要なスピンアップを避けるため、スタンバイモードのドライブはポーリング対象から除外

RAIDコントローラ背後のドライブについては、ドライブごとにタイプを指定してください:

/dev/sda -d megaraid,0 -a -m [email protected]
/dev/sda -d megaraid,1 -a -m [email protected]

サービスを有効にして起動する:

sudo systemctl enable --now smartd

Debianベースのシステムでは、以下の行のコメントも解除してください start_smartd=yes/etc/default/smartmontools.

メールアラートをテストするには、設定行に -M test を構成行に追加し、 smartdし、その後削除します。サービスを再起動せずに設定変更を反映させるには killall -HUP smartd.

毎日の簡易テストは1〜2分で完了し、表面的な不具合のほとんどを検出できます。毎週行う長時間テストでは、すべてのセクタを網羅します。これをメールアラートと組み合わせることで、ドライブが完全に故障する前に、確実な早期警告を得ることができます。

background image
サーバーが成長を妨げていませんか?

遅いデプロイメントや帯域幅の制限にうんざりしていませんか?FDC Serversは、瞬時の専用電源、グローバルリーチ、あらゆる規模に対応する柔軟なプランを提供します。

今すぐアップグレード

ブログ

今週の特集

その他の記事
Linuxのゾンビ・プロセス:見つける、削除する、防ぐ

Linuxのゾンビ・プロセス:見つける、削除する、防ぐ

Linuxでゾンビプロセスを特定、削除、防止する方法を学びます。サーバー管理者のためのコマンド、コード修正、監視のヒント。

15分で読めます - 2026年5月19日

Linuxサーバー・ハードニング・チェックリスト

15分で読めます - 2026年5月8日

その他の記事
background image

ご質問またはカスタムソリューションが必要ですか?

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開