smartctlの見方を覚えよう!【ハードディスクの自己診断】

LinkStation LinkStation

LinkStation LS-QLシリーズの内蔵ハードディスクが壊れて、新しいHDDに入れ替えました。

壊れたハードディスクは捨てるのか?というと、再利用を検討した方がお得です。

古いハードディスクが寿命で壊れる時というのは「不良セクタ」が出来ていて、そこを読むときにリトライやエラーや遅延が発生します。

明らかに不良セクタが出来ているハードディスクに対しては、少し時間がかかりますが「low level formatする」ことがオススメです。

一方、不良セクタがあるかないか分からないハードディスクに対しては、S.M.A.R.T. というハードディスクの自己診断機能を使って調査しましょう。

SMARTを使えば、ハードディスクに不良セクタがあるかどうか?どのくらい寿命に近いか?が分かります。

本記事では、Linux上で使えるSMARTツール「smartctl」の使い方(オプション指定方法)、結果の見方について詳しく解説します。

Linux上でのSMART:smartctl

Linux上での S.M.A.R.T. ツールは「smartctl」あるいは「smartmontools」という名称で出て来る。

smartmontoolsがパッケージ名でsmartctlがコマンド名である。
つまり、この2つは同じものである。

smartctlコマンドのインストール

smartctlコマンドを使えるようにするには、以下のようにsmartmontoolというパッケージをインストールします。

# apt-get install smartmontools

これで、smartctlコマンドが使えるようになります。

smartctlの使い方:SMART情報の表示

では早速、smartctlコマンドを使って、SMART情報を表示してみましょう!

「-A」オプションを付けると、SMART情報を表示します。

# smartctl -A /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.19.0-25-generic] (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)
#

表示されませんでしたが、英語で説明がされています。
SMART機能が「Disable」になっているようですので、「-s」オプションを使って「有効」にします。

# smartctl -s on /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.19.0-25-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.

#

SMART機能がEnableになりました!

再度、smartctl -Aで、SMART情報を表示してみます。

# smartctl -A /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.19.0-25-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
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   162   162   021    Pre-fail  Always       -       6883
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       81
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   024   024   000    Old_age   Always       -       56093
 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       -       77
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       5
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       81
194 Temperature_Celsius     0x0022   126   084   000    Old_age   Always       -       24
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   199   000    Old_age   Offline      -       0
#

SMART情報が表示されました。

どこを見れば良いか、具体的に解説します。

smartctlの結果の見方

「5 Reallocated_Sector_Ct」の行で、現在の値は「200」で、ワースト値も「200」になっています。
更にスレッシュホールドつまり閾値は「140」となっています。

これは値が「140」を下回ると危険だと言っています。現在余裕の状況だと分かります。

しかも「200」というのは初期値っぽいですね。

「Reallocated_Sector_Ct」というのは日本語で言うと「不良セクタの再配置を行ったカウンター値」です。
恐らく「200」からカウントダウンされていく使い方と思われます。
全く使われていません。

つまり、不良セクタは無いという判定です。

手元にもう1本壊れたHDDがあったので同じようにsmartctlを使って診断してみましたが、同じような判定結果になりました。

smartctlの結果を別のコマンドで検証

smartctlの結果では「不良ブロック=0個」という判定になりましたが、元々smartctlは不良セクタ・不良ブロックを探すツールでは無いので、別のコマンドで不良ブロック捜索をしてみました。

# badblocks -s /dev/sdc6

badblocksは不良ブロックを表示してくれるコマンドです。

結果は・・・何も出ず。不良ブロックは本当にゼロでした。

もう1本の不具合HDDも同じ結果でした。

5年以上使っているハードディスクなのに、なんと優秀な!

その後、LinkStationに搭載されていた4本の古いHDD全てをsmartctlコマンドで診断してみました。
すると、不良セクタのReAllocateを行ったハードディスクは4本中1本だけで、残り3本は不良セクタ=0。つまり、つられて調子悪くなっていただけと分かりました。

当時の緑色のラベルの Western Digital のハードディスクが、いかにお買い得な商品だったかということが、分かります。
結構安かったんですよ。秋葉原で買ったのですが。

という訳で、安心してフォーマットをかけました。

# mkfs.xfs /dev/sdc6
# xfs_check /dev/sdc6

以上、ハードディスクの自己診断コマンドsmartctlと不良セクタに関する情報をお伝えしました!

Windows10にアップグレードしたら、LinkStationのHDDが壊れて立ち上がらなくなり、パソコンからLinuxの機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。

故障したLinkStationから自力でデータ復旧した方法

コメント

  1. CopperCed より:

    Thanks for sharing!

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