Linux上で交換されたハードディスクの自己診断【smartctl】
Windows10からアクセスしているうちに、壊れてしまったLinkStation。
前回は、ファイルシステムの形式について述べた。
いよいよ、Ubuntuでいじり倒していたハードディスクをLinkStationに戻すことになる訳だが、その前にやっておくことがある。
それは、「古いハードディスクの不良セクタの扱いをどうするか?」である。
少し前に、決定的に壊れているハードディスクを、low level format で復活させた。
その時に、2本のハードディスクについて、不良セクタチェックを、Windows上で行った。
残り2本の古いハードディスクについては、まだ何もしていなかった。
その時に、S.M.A.R.T. というハードディスクの自己診断機能を使って調査した。
今回もそれを、Linux上から使ってみることにした。
Linux上でのSMART
Linux上での S.M.A.R.T. ツールは「smartctl」あるいは「smartmontools」という名称で出て来る。
smartmontoolsがパッケージ名でsmartctlがコマンド名である。
つまり、この2つは同じものである。
smartmontoolsのインストール
まず、インストールは次の通り。
# apt-get install smartmontools
SMART情報の表示
次に、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)
#
「Disable」になっているようですので、以下のコマンドで「有効」にします。
# 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情報を表示してみます。
# 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情報の見方
「5 Reallocated_Sector_Ct」の行で、現在の値は「200」で、ワースト値も「200」になっています。
更にスレッシュホールドつまり閾値は「140」となっています。
これは値が「140」を下回ると危険だと言っています。現在余裕の状況だと分かります。
しかも「200」というのは初期値っぽいですね。
「Reallocated_Sector_Ct」というのは日本語で言うと「不良セクタの再配置を行ったカウンター値」です。
恐らく「200」からカウントダウンされていく使い方と思われます。
全く使われていません。
残りもう一本も似たような状況でした。
つまり、不良セクタは無いという判定です。
不良セクタは本当に0個なのか?
不安がよぎるので、別のコマンドで不良ブロック捜索をしてみました。
# badblocks -s /dev/sdc6
badblocksは不良ブロックを表示してくれるコマンドです。
結果は・・・何も出ず。不良ブロックは本当にゼロでした。
もう一本も同じ結果でした。
5年以上使っているハードディスクなのに、なんと優秀な!
結局、不良セクタが出まくって、LinkStationを故障させていたハードディスクは、1本だけで、残りはつられて調子悪くなっていただけということのようです。
当時の緑色のラベルの Western Digital のハードディスクが、いかにお買い得な商品だったかということが、分かります。
結構安かったんですよ。秋葉原で買ったのですが。
という訳で、安心してフォーマットをかけました。
# mkfs.xfs /dev/sdc6
# xfs_check /dev/sdc6
以上、ハードディスクの自己診断機能(S.M.A.R.T.)に関する情報でした!
Windows10にアップグレードしたら、LinkStationのHDDが壊れて立ち上がらなくなり、パソコンからLinuxの機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。