Linux/UbuntuのsmartctlでS.M.A.R.T.対応HDD/SSDの診断情報を表示する
いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
今回は「Linux/UbuntuのsmartctlでS.M.A.R.T.対応HDD/SSDの診断情報を表示する」です。
ハードディスク(HDD)やSSDはS.M.A.R.T.と呼ぶ仕組みで、自己診断用のデーターを持っています。このデーターを読み取ることで、HDDやSSDの、いわゆる健康状態を知ることができ、稼働停止への備えができます。
Linuxでもsmartctlコマンドで、HDDやSSDのS.M.A.R.T.情報を読み出すことができます。SATA接続とPCIe-SSD(SATAではない)、USB-DVDドライブ接続で動作を確認しています。
以下、このブログでは等幅フォントの指定ができないので、コマンドの実行結果の部分が乱れています。メモ帳などにコピーし、等幅フォントで見ると見やすくなります。
■Ubuntuでのsmartctlのインストール
UbuntuにS.M.A.R.T.情報にアクセスするコマンドをインストールします。Ubuntuの場合はsmartmontoolsとして配布されています。
$ sudo apt-get install smartmontools
■Linux/Ubuntuにつながっているディスクを確認する
起動中のLinuxが認識しているディスクを確認します。今回のシステムには、
/dev/sda = 2T HDD / SATA
/dev/sdb = 2T HDD / SATA
/dev/sdc = 128G SSD / PCIe-SSD
が認識されています。
確認方法は以下の二つの方法があります。
$ sudo lshw -short | grep disk
/0/1/0.0.0 /dev/sda disk 2TB WDC WD20EARX-00P
/0/2/0.0.0 /dev/sdb disk 2TB WDC WD20EARS-00S
/0/3/0.0.0 /dev/sdc disk 128GB PLEXTOR PX-AG128
/0/5/0.0.0 /dev/cdrom disk CDDVDW SN-208BB
$ sudo fdisk -l
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
ヘッド 255, セクタ 63, シリンダ 243201, 合計 3907029168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスク識別子: 0x9b3ee2a1
ディスク /dev/sda は正常なパーティションテーブルを含んでいません
Disk /dev/sdb: 2000.4 GB, 2000397852160 bytes
ヘッド 255, セクタ 63, シリンダ 243201, 合計 3907027055 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x817a829d
ディスク /dev/sdb は正常なパーティションテーブルを含んでいません
Disk /dev/sdc: 128.0 GB, 128035676160 bytes
ヘッド 255, セクタ 63, シリンダ 15566, 合計 250069680 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00028447
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 * 2048 234346495 117172224 83 Linux
/dev/sdc2 234348542 250068991 7860225 5 拡張領域
/dev/sdc5 234348544 250068991 7860224 82 Linux スワップ / Solaris
$
■S.M.A.R.T.機能の動作を確認し、稼働状態にする
S.M.A.R.T.の情報を取得してみます。S.M.A.R.T.の情報収集機能を使うか否かの設定は、HDD/SSD側にあり、Linuxの場合はsmartctlコマンドで操作します。
1)smartctlコマンドを実行して"Disabled"と応答
とりあえず、様子見でコマンドを実行してみます。
samrtctl -s on /dev/sdaを実行して"enable"にするよう促されました。
$ sudo smartctl -A /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-49-lowlatency] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
SMART Disabled. Use option -s with argument 'on' to enable it.
(override with '-T permissive' option)
2)S.M.A.R.T.を"enable"にする
smartctlでS.M.A.R.T.情報を読み取れるように設定します。
$ sudo smartctl -s on /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-49-lowlatency] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
3)S.M.A.R.T.情報の機器情報を読みとる
smartctlでS.M.A.R.T.情報の機器情報を読みとります。
smartctl -iでディスクのハードウエア情報を表示することができます。
ハードディスクのメーカー、種類、シリアル番号、容量、通信仕様などが表示されています。以下の表示ではSATAのリンク種別(3G,6G)と現在のリンク速度(3G)が判ります。
$ sudo smartctl -i /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-49-lowlatency] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Green (AF, SATA 6Gb/s)
Device Model: WDC WD20EARX-00PASB0
Serial Number: WD-WCAZAF410282
LU WWN Device Id: 5 0014ee 2072fe995
Firmware Version: 51.0AB51
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is: Sun Apr 19 05:30:06 2015 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
4)S.M.A.R.T.情報の全部の情報を読み取る
smartctlでS.M.A.R.T.情報の全部の情報を読み取ります。
$ sudo smartctl -a /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-49-lowlatency] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Green (AF, SATA 6Gb/s)
Device Model: WDC WD20EARX-00PASB0
Serial Number: WD-WCAZAF410282
LU WWN Device Id: 5 0014ee 2072fe995
Firmware Version: 51.0AB51
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is: Sun Apr 19 14:35:53 2015 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (37980) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 366) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x3035) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 182 170 021 Pre-fail Always - 5900
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 30
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 087 087 000 Old_age Always - 9832
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 30
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 22
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 1356
194 Temperature_Celsius 0x0022 115 094 000 Old_age Always - 35
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
以上です。