そんな時、ディスクがいよいよ壊れる前触れかどうかを判断できていますか?
smartctlコマンドを使えば、HDDやSSDに内蔵されたSMART(Self-Monitoring, Analysis and Reporting Technology)情報を読み出して、ディスクの健康状態と故障の予兆を定量的に把握できます。
再起動やリプレースに踏み切る前に、まずこの1コマンドで現状を可視化するのが現場の定石です。
この記事では、RHEL 9.4 / Ubuntu 24.04 LTSで動作確認した上で、smartctlコマンドの実践的な使い方を解説します。
属性値の読み方、セルフテストの実行、SSD寿命の見積もり、cronでの定期監視まで、20年以上サーバーを運用してきた経験に基づいて現場で使う場面を一通りカバーします。
この記事のポイント
・smartctl -a /dev/sda で全属性とエラーログを一発取得できる
・Reallocated_Sector_Ctや Current_Pending_Sectorが増えたら交換準備
・smartctl -t short/long でセルフテストを実行できる
・SSDはWear_Levelingと総書き込み量で寿命を見積もる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜsmartctlが必要なのか?
ディスクは「突然壊れる」ように見えて、実際には数週間から数ヶ月前から兆候が出ていることがほとんどです。SMARTはディスク自身が自分の動作ログを蓄積し続ける仕組みで、代替セクタの増加、温度異常、読み取りエラー率などを属性値として保持しています。
smartctlはこれを人間が読める形で引き出すコマンドで、Linuxではsmartmontoolsパッケージに含まれます。
HDDだけでなくSATA SSD・NVMe SSDにも対応しているため、現代のサーバー環境では必須のツールです。
・ディスク故障の予兆検知:代替セクタ増加、Pending Sector、リードエラー率の異常
・SSDの寿命監視:総書き込み量(TBW)と摩耗度(Wear_Leveling)
・温度・稼働時間の可視化:ラック内のエアフロー問題の発見
・セルフテストによる実証:short(数分)・long(数時間)で実動作を検証
ハードウェア全体の情報把握には dmidecode でハードウェア情報を取得 も併用すると、マザーボードやRAIDコントローラの型番まで一気通貫で把握できます。
基本的な使い方
1. smartmontoolsをインストールする
最小構成のサーバーにはsmartctlが入っていないことがあります。まずはインストールから始めます。# RHEL / Rocky Linux / AlmaLinux系sudo dnf install smartmontools# Ubuntu / Debian系sudo apt install smartmontools# check smartctl versionsmartctl --version | head -1# 実行結果の例smartctl 7.3 2022-02-28 r5338 [x86_64-linux-5.14.0-362.el9.x86_64]
2. ディスクの基本情報を表示する
まずはディスクが SMARTに対応しているか、どんなモデルかを確認します。# デバイス基本情報の表示(要root)sudo smartctl -i /dev/sda# 実行結果の例=== START OF INFORMATION SECTION ===Model Family: Seagate Barracuda 7200.14 (AF)Device Model: ST2000DM001-1ER164Serial Number: W4Z1XXXXLU WWN Device Id: 5 000c50 0XXXXXXXXFirmware Version: CC26User Capacity: 2,000,398,934,016 bytes [2.00 TB]Sector Sizes: 512 bytes logical, 4096 bytes physicalRotation Rate: 7200 rpmForm Factor: 3.5 inchesDevice is: In smartctl database [for details use: -P show]ATA Version is: ACS-2, ACS-3 T13/2161-D revision 3bSATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)Local Time is: Sun Apr 19 14:02:30 2026 JSTSMART support is: Available - device has SMART capability.SMART support is: Enabled
sudo smartctl -s on /dev/sdaで有効化してください。仮想マシンのvirtio-blkや一部の安価なUSB接続ディスクでは SMARTが通らないことがあります。その場合は
-d satや-d scsiなど、後述のデバイスタイプ指定を試します。3. 属性値とエラーログを全て表示する(smartctl -a)
現場で最も使うのが-a(All)オプションです。情報・属性・セルフテスト結果・エラーログまで、必要な情報をまとめて取得できます。# 全情報を取得(HDDでもSSDでも基本これ)sudo smartctl -a /dev/sda# 実行結果の例(抜粋)SMART overall-health self-assessment test result: PASSEDVendor Specific SMART Attributes with Thresholds:ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 118 099 006 Pre-fail Always - 180224560 5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 078 060 030 Pre-fail Always - 68234561 9 Power_On_Hours 0x0032 088 088 000 Old_age Always - 10842 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 132190 Airflow_Temperature_Cel 0x0022 069 049 045 Old_age Always - 31194 Temperature_Celsius 0x0022 031 051 000 Old_age Always - 31197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
・PASSED:致命的な閾値超過はない(ただし安心はできない)
・FAILED!:ディスクメーカーが「交換を推奨する」と宣言している状態。即バックアップ+交換準備
SMART属性の読み方(要注意項目)
「PASSEDなら安心」ではありません。PASSEDでも特定の属性が悪化していれば、数週間以内に壊れる予兆です。現場で特に重要な属性を押さえておきましょう。
1. 交換を検討すべき危険属性(HDD)
| 属性名(ID) | RAW_VALUEの見方 |
|---|---|
| Reallocated_Sector_Ct (5) | 1以上で不良セクタ発生、増加傾向なら即交換 |
| Current_Pending_Sector (197) | 1以上は要注意、読み取り失敗中のセクタがある |
| Offline_Uncorrectable (198) | 1以上で訂正不能セクタあり、データ損失リスク |
| Reported_Uncorrect (187) | 1以上でコントローラが訂正できなかった読み取り |
| UDMA_CRC_Error_Count (199) | 増加ならSATAケーブル・コネクタ不良を疑う |
RAW_VALUE列を記録しておき、前回値と比較するのが実務的な運用です。
2. SSD特有の重要属性
SSDはHDDと異なり「書き込み寿命」があります。現場でよく見る属性は次のとおりです。・Wear_Leveling_Count (177):VALUEが徐々に減少、0に近づくほど寿命末期
・Percentage_Used (202/231):使用率%。100%超えは交換推奨
・Total_LBAs_Written (241):総書き込みLBA数。メーカー公称TBWと比較
・Media_Wearout_Indicator (233):Intel系SSDのVALUEが寿命残量(100→0)
NVMe SSDの場合は
smartctl -aの出力形式が異なり、「Percentage Used」「Available Spare」「Data Units Written」といった項目で表現されます。# NVMe SSDの場合sudo smartctl -a /dev/nvme0n1# 実行結果の例(抜粋)=== START OF SMART DATA SECTION ===SMART overall-health self-assessment test result: PASSEDSMART/Health Information (NVMe Log 0x02)Critical Warning: 0x00Temperature: 42 CelsiusAvailable Spare: 100%Available Spare Threshold: 10%Percentage Used: 8%Data Units Read: 12,345,678 [6.32 TB]Data Units Written: 8,765,432 [4.48 TB]Power On Hours: 7,234Unsafe Shutdowns: 3Media and Data Integrity Errors: 0
3. 温度と稼働時間
・Temperature_Celsius (194):45℃を常態的に超えるならエアフロー見直し・Power_On_Hours (9):HDDは5年(43,800時間)が一般的な寿命目安
稼働時間が長く温度も高いディスクは、属性値がまだ正常でも故障確率が跳ね上がっています。ラック内の物理配置やファン動作も併せて点検してください。ブートに異常に時間がかかる場合は systemd-analyze で起動時間計測 も組み合わせると、ディスクI/O遅延の切り分けに役立ちます。
セルフテストでディスクを実際に検証する
属性値は「過去の履歴」ですが、セルフテストは「今のディスクが読める/書ける」ことを実動作で確認する手段です。1. short テスト(数分・非破壊)
日常点検はこの short テストで十分です。オンラインのまま実行できます。# ショートテストを開始(1~2分で終わる)sudo smartctl -t short /dev/sda# 実行結果の例Sending command: "Execute SMART Short self-test routine immediately in off-line mode".Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.Testing has begun.Please wait 1 minutes for test to complete.Test will complete after Sun Apr 19 14:05:00 2026# テスト完了後に結果を確認sudo smartctl -l selftest /dev/sda# 実行結果の例SMART Self-test log structure revision number 1Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error# 1 Short offline Completed without error 00% 10842 -# 2 Short offline Completed without error 00% 10584 -
2. long テスト(全セクタ・数時間)
新品のディスクを本番投入する前や、異常の切り分けで徹底的に調べたい時は long テストを使います。# 全セクタを読むロングテスト(2TBで約4~6時間)sudo smartctl -t long /dev/sda# 進行中のテストを中止するsudo smartctl -X /dev/sda
3. テスト中の進行状況を確認する
# 現在のテスト進捗・次回スケジュールを確認sudo smartctl -c /dev/sda# 実行結果の例(抜粋)Self-test execution status: ( 249) Self-test routine in progress... 90% of test remaining.
smartdデーモンで定期監視する
手動でsmartctlを叩くだけでなく、smartdを常駐させておくと異常時にメール通知まで自動で飛ばせます。# /etc/smartmontools/smartd.conf (RHEL系は /etc/smartd.conf)# 全ディスクを監視し、SMART異常時にrootへメール通知DEVICESCAN -a -o on -S on -s (S/../.././02|L/../../6/03) -m root# サービス有効化sudo systemctl enable --now smartdsudo systemctl status smartd
/var/log/messagesまたはjournalctl -u smartdで追跡できます。監視ログやアラートログは時刻がズレていると原因調査が難しくなるため、NTPでの時刻同期を同時に整えておくのが定石です。併せて ntpd 時刻同期設定 も確認しておきましょう。
応用・実務Tips
RAID配下のディスクを個別に見る
LSI MegaRAIDやHPのSmart Arrayなど、ハードウェアRAIDコントローラ配下のディスクは/dev/sdaでは中身が見えません。-dでデバイスタイプを指定します。# MegaRAID配下の物理ディスク1番目sudo smartctl -a -d megaraid,0 /dev/sda# HPE Smart Array配下sudo smartctl -a -d cciss,0 /dev/sda# USB接続のSATAディスクsudo smartctl -a -d sat /dev/sdb
lspci | grep -i raidで型番を確認し、smartctlのマニュアル(man smartctl)で対応する-d値を調べます。前回値との差分を自動で取る
属性値は「絶対値」より「増えているかどうか」が重要です。日次でRAW_VALUEをログに残すスクリプトを書いておくと、予兆検知が早くなります。# 重要属性だけ抽出してCSVに追記する例LOG=/var/log/smart_daily.csvDATE=$(date +%F)for DEV in /dev/sd?; do sudo smartctl -A "$DEV" | awk -v d="$DATE" -v dev="$DEV" ' /Reallocated_Sector_Ct|Current_Pending_Sector|Offline_Uncorrectable/ { print d","dev","$2","$10 }' >> "$LOG"done
HGST/東芝/WDのメーカー固有属性に注意
メーカーによって同じID番号でも意味が違う属性があります。-P showallでsmartctlのデータベースに登録された解釈を確認すると、誤読を防げます。「SMART support is: Disabled」が出た時の対処法
# SMARTを有効化sudo smartctl -s on /dev/sda# オフラインデータ収集と属性自動保存も有効化(推奨)sudo smartctl -o on -S on /dev/sda
「Input/output error」で情報が取れない
SMARTコマンド自体がI/Oエラーを返す場合、ディスクがすでに瀕死の状態か、コントローラ側の問題です。即座にバックアップを開始し、別ディスクへデータを退避させてください。dmesgでsdaのリードエラーが多発していないかも同時に確認します。仮想マシンで「Unknown USB bridge」
KVMのvirtio-blkやVMware仮想ディスクではSMARTが通らないのが正常です。仮想環境ではハイパーバイザ側(ホストの物理ディスク)でsmartctlを実行してください。本記事のまとめ
smartctlコマンドは「ディスクの声を聞く」ためのツールです。20年以上サーバーを運用してきた経験から言うと、本当に突然壊れるディスクは稀で、ほとんどは Reallocated_Sector_Ct や Current_Pending_Sector が増えていく過程を経ています。
週1回でも
smartctl -aを流してRAW_VALUEを記録しておくだけで、計画停止での交換が可能になり、障害対応の疲弊から解放されます。| やりたいこと | コマンド |
|---|---|
| ディスクの全情報と属性・エラーログを表示 | sudo smartctl -a /dev/sda |
| NVMe SSDの健康状態と寿命を確認 | sudo smartctl -a /dev/nvme0n1 |
| ショートセルフテストを実行 | sudo smartctl -t short /dev/sda |
| ロングセルフテストを実行 | sudo smartctl -t long /dev/sda |
| セルフテスト結果を参照 | sudo smartctl -l selftest /dev/sda |
| RAIDコントローラ配下のディスクを見る | sudo smartctl -a -d megaraid,0 /dev/sda |
| SMARTを有効化する | sudo smartctl -s on /dev/sda |
| smartmontoolsをインストール(RHEL系) | sudo dnf install smartmontools |
「ディスク故障で夜中に叩き起こされる不安、手放せていますか?」
smartctlは予兆検知の決定打ですが、本当の安心は「壊れる前提で設計された運用」から生まれます。ディスク監視・RAID構成・バックアップ戦略・復旧手順まで、一つひとつ自分の手で確信を持って扱えるかが現場の分かれ目です。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます