「Tiny Core Linux 7をUSBメモリにインストール」で作ったTiny Core LinuxでshredやSecure EraseでHDDのデータ消去を行った後、再利用できるかどうかエラーチェックを行った時のメモです。
※データ消去後のHDDの状態をチェックする事を想定しています。消えてはいけないようなデータの残っているHDDでは試さない方が良いと思います。
smartctlを使ったチェック
smartctlを使ってHDDのS.M.A.R.T.情報を確認することができます。smartctlはsmartmontoolsパッケージに含まれますのでインストールし、-H
オプションで健康状態をチェックしてみます。
$ tce-load -wi smartmontool
$ sudo smartctl -H /dev/sda
smartctl 5.41 2011-06-09 r3365 [i686-linux-3.2.0-80-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
PASSED、という事は健康という事だと思うのですが、念のため-a
オプションで全情報を表示してみます。
$ sudo smartctl -a /dev/sda | egrep "(ID|Pre-fail)"
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 102 100 006 Pre-fail Always - 3753517
3 Spin_Up_Time 0x0003 100 100 085 Pre-fail Always - 0
5 Reallocated_Sector_Ct 0x0033 090 090 036 Pre-fail Always - 219
7 Seek_Error_Rate 0x000f 100 253 030 Pre-fail Always - 0
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
Reallocated_Sector_CtのRAW_VALUEの値が219なんですが、RAW_VALUEはベンダー固有でフォーマットは規定されていないため無視しても良いらしいです。VALUEは090でしきい値(THRESH)以上と言えば以上なので正常の範囲内らしいです。
どうも疑いの目が晴れないので-t
オプションを使ってテストしてみます。-t short
オプションを使ってテストを実行すると2分で終わるというメッセージが表示されるので2分ほど待ちます。
$ sudo smartctl -t short /dev/sda
smartctl 6.1 2013-03-16 r3800 [i686-linux-4.2.9-tinycore] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
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 2 minutes for test to complete.
Test will complete after Wed Feb 1 06:47:27 2017
Use smartctl -X to abort test.
2分ほど待ったら-l selftest
オプションで結果を表示してみます。
$ sudo smartctl -l selftest /dev/sda
smartctl 6.1 2013-03-16 r3800 [i686-linux-4.2.9-tinycore] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 90% 24 485190997
# 2 Short offline Completed: read failure 90% 24 485190997
# 3 Short offline Completed: read failure 90% 24 485190997
-
正常なら「Completed without error」となるところが「Completed: read failure」なのでやっぱりちょい怪しいです。
badblocksを使ったチェック
badblocksコマンドを使えば全セクターの読み込みテストを行い不良セクターをチェックすることができます。badblocksコマンドはe2fsprogsパッケージに含まれますのでインストールします。
$ tce-load -wi e2fsprogs
以下のコマンドでチェックを行うことができます。全セクターの読み込みテストを行いますので時間がかかります。80GのHDDで36分ほどかかりました。同じHDDをshredやSecure Eraseで消去した時も36分ほどかかりましたので、それと同じくらい時間が掛かると思っておけば良いのではないでしょうか。
$ time badblocks -sv /dev/sda
Checking blocks 0 to 78150743
Checking for bad blocks (read-only test): 0.00% done, 0:00 elapsed. (0/0/0 errdone
Pass completed, 0 bad blocks found. (0/0/0 errors)
real 36m 13.71s
user 0m 4.12s
sys 1m 42.29s
先ほどのsmartctlで-H
でPASSEDだったのに-t short
はread failureになるHDDをbadblocksでチェックしてみたところエラーが次々と表示されました。
$ badblocks -sv /dev/sda
(省略)
Pass completed, 382 bad blocks found. (382/0/0 errors)
結果として…
時間は掛かりますが、smartctlの-H
ではなく-t short
や-t long
オプション、badblocksコマンドの結果を確認した方がよさそうです。