昨日、Linux OSを入れたPCが立ち上がらくなりました。CentOS 6の起動時のグラフィックス表示(CentOSのロゴとくるくる回転している画面)のまま先に進みません。この画面で[←]キーを押すと、グラフィックス表示を消去し起動中のコンソールが表示されます。そこで、
ata5.00: status: { DRDY ERR } ata5.00: err: { UNC } ata5: EH in SWNCQ mode,QC:qf_active 0x1 sactive 0x1 :
のようなメッセージが繰り返し表示され続けていました。
PCの仕様
CPU: AMD Phenom 9750(4コア)
M/B: ASUS M2N-SLI Deluxe
HDD: HDT722525DLA380 (HGST製、250GB)
WD10EARS(Western Digital製、1TB)
メモリ: Corsair CM2X1024-6400 1GB×2枚
Patriot PSD24G800KH 2GB×2枚
障害探求の方針
おそらくHDD障害と思われますが、メモリということもあり得ると思い、次の手順で進めることとしました。
# memtest86によるメモリテストを実行
# HDDメーカーが提供するツールでHDD検証を実行
メモリテスト
前に、Ultimate Boot CDを入手しCD-Rに焼いていたので、これをPCに入れてブートします。Ultimate Boot CDは、CDブートしてCPU、メモリ、HDDなどの各種ツールを集めてメニューから選択して実行できるようにした便利ツールです。
http://www.ultimatebootcd.com/
最初memtest86を実行したら、すぐにフリーズしてしまい、メモリ障害を疑って4枚実装したDIMMを1枚ずつ挿して起動しどれがだめかを見ることで障害メモリを特定しようとしました。しかし、どれを挿しても最初の問題事象は解消されません。Ultimate Boot CDのメモリのメニューには、memtest86とmemtest86+とあって、念のためmemtest86+を実行したらフリーズする現象は起きません。ここでメモリの線は消えました。
HDDテスト
HDDは製造メーカーごとに検証ツールを提供しています。このPCのように、HGST製とWestern Digital製と別メーカーのHDDを積んでいると、それぞれごとにツールを入手しなくてはならず使い方もそれぞれなので不便です。
これもUltimate Boot CDにはHDDメーカーごとのツールを収容しているのでそれを選択実行するだけと便利に使えます。
まず、HGST製HDDはテスト結果良好となりました。次に、Western Digitalはテストで異常が発生しました。
そこで、障害原因はWestern DigitalのWD10EARSと特定しました。
障害は物理的なもの、論理的なものがあります。論理的な障害であれば、ファイルシステムを修復する、あるいは再フォーマットして再使用するといったことが可能です。
HDD復旧の試み
CD/DVDのみで起動するLinux(Live CD)を使って起動し、HDDにアクセスする方法が一般的と思います。今回はSystemRescue CDというツールを使ってCDブートし、障害発生HDDに作ったファイルシステムの復旧をfsckを実行して試みます。
SystemRescue CDは次のサイトで提供されています。
http://www.sysresccd.org/SystemRescueCd_Homepage
まずブート後、問題のHDDが/dev/sdbで認識されているので、ここをfsckしようとしました。しかし、LVMを使っていたため、ちょっと手間がかかりました。
fsck実施後、リブートしましたが、エラー状態は変わりません。
HDDデータの復旧
fsckでは復旧できなかったので、再フォーマットをすることになりそうです。そこで、いまあるデータをいったん取り出すことにします。
このマシンは、Linux KVMで仮想化していたので、必要なデータはKVMゲストイメージファイルになります。いったんゲストイメージファイルとゲスト定義ファイルをネットワーク上のNASドライブにコピーします。NASはWindowsファイル共有なので、mountで-t cifsを指定してマウントします。
HDDの初期化
Ultimate Boot CDでPCを起動し、HDDのDiagnosisからDLG Diagnostic V5.04f (Western Digital)を選択、Write Zeros to Driveを実行します。Western Digitalのツールには物理フォーマット的なものが見当たらないのでこれにしました。
HDDの状態調査
Write Zeros to Drive実行後、HDDのテスト(QUICK TESTとEXTENDED TEST)を実行し、エラーのないことを確認しました。ただし、問題の原因がこのWrite Zeros to Driveで解消しているとは限らないので、このHDDについては今後監視をしていくのがよさそうです。
CentOS 6の再インストール
一番確実なCentOS 6のインストールCDを作成してインストールすることにします。通常のCentOS 6(64bit版)インストールイメージはDVD2枚組みなので、今回はminimalインストール用ISOイメージをCD-Rに焼いてインストールします。
minimalインストールの場合、インストールするソフトウェアパッケージの構成を選択する画面はなく、所定のパッケージ(199個)がインストールされます。HDDのパーティションは任意に設定することができます。今回は次のパーティション分割にしました。
HDDの状況調査
HDDのS.M.A.R.T.機能を使って(?)、HDDの状況を調査し、障害が発生したHDDを使用し続けるか早急に交換するかの判断材料を入手します。
smartctlコマンドを使って、HDDの自己診断を実行しその結果を見ます。
自己診断(簡易)
まず、自己診断(簡易)をHDDにトリガーします。自己診断には時間がかかるので、結果は自己診断終了後に確認可能となります。
# smartctl -t short /dev/sdb smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-358.6.2.el6.x86_64] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net === 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 Sun May 26 10:19:38 2013 Use smartctl -X to abort test. #
メッセージには、自己診断(簡易)完了まで2分かかるとあるので、2分後に診断結果を取得します。smartctl -cで自己診断実行状況を都度確認することもできます。
- 自己診断結果取得
smartctl -l selftest /dev/sdb smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-358.6.2.el6.x86_64] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net === 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 without error 00% 7734 - # 2 Conveyance offline Completed without error 00% 7719 - # 3 Conveyance offline Completed: read failure 90% 7696 40 # 4 Conveyance offline Completed without error 00% 3322 - # 5 Conveyance offline Completed: read failure 90% 3300 2056 # 6 Conveyance offline Completed: read failure 90% 3294 2056 # 7 Short offline Completed: read failure 50% 3293 2056
うーん、read failureが発生し、寿命(LifeTime)が3000時間(125日)となっています。
一方、エラーのなかったHDDについて同じ自己診断を実施してみたところ、結果は次のようになりました。
=== 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 without error 00% 15373 - # 2 Short offline Completed without error 00% 15337 - # 3 Short offline Completed without error 00% 13081 - # 4 Short offline Completed without error 00% 11021 - # 5 Short offline Completed without error 00% 10919 -
ずいぶん違いました。やはり交換を急いだほうがよさそうです。
自己診断(拡張)
簡易とちがって非常に時間がかかります。
# smartctl -t long /dev/sdb === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Extended self-test routine immediately in off-line mode". Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 240 minutes for test to complete. Test will complete after Sun May 26 20:31:08 2013 Use smartctl -X to abort test.
自己診断実行状況を確認してみます。
# smartctl -c /dev/sdb : Self-test execution status: ( 249) Self-test routine in progress... 90% of test remaining. : #
これは自己診断実行中のときのメッセージです。
# smartctl -c /dev/sdb|grep -A 1 Self-test : Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever
これは自己診断が完了しているときのメッセージです。
# smartctl -A -l selftest /dev/sdb : SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Completed without error 00% 7744 - # 2 Conveyance offline Completed without error 00% 7740 - # 3 Short offline Completed without error 00% 7734 - # 4 Conveyance offline Completed without error 00% 7719 - # 5 Conveyance offline Completed: read failure 90% 7696 40 # 6 Conveyance offline Completed without error 00% 3322 - # 7 Conveyance offline Completed: read failure 90% 3300 2056 # 8 Conveyance offline Completed: read failure 90% 3294 2056 # 9 Short offline Completed: read failure 50% 3293 2056 4 of 4 failed self-tests are outdated by newer successful extended offline self-test # 1
簡易よりも診断項目が増えています。