[Memo2011][ITPASS]HDD初期不良チェック
2011/03/28, 31, 04/04 に HDD の初期不良チェックを安東,黒田, 井谷で行った.(ロガー: 安東)
[[ITPASS]過去の構築ドキュメント へ戻る]
準備
チェックする HDD
- 内蔵3.5HDD 0S03191(3.5/2TB/72r) 3 台
ハードウェアセットアップ
チェックする HDD を適当なマシン (joho02) に入れた.
HDD の認識を確認する
df コマンドで sdc のマウント位置が / であることが分かった. 出力結果は以下のとおり.
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sdc1 96120588 5644808 85593044 7% / tmpfs 4098924 0 4098924 0% /lib/init/rw udev 4094180 228 4093952 1% /dev tmpfs 4098924 0 4098924 0% /dev/shm
dmesg コマンドの出力結果から sdb はパーティションが設定されていないことがわかる.
[ 1.744319] sdb: unknown partition table
また, 以下の出力結果から sdb が 2.0TB であることが分かったので, これがチェックしたい HDD である.
[ 1.726682] sd 0:0:1:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
読みだし/書き込みテスト
読みだし/書き込みのテストには dd を使う.
まず, HDD の全ての領域からデータを読み出して, エラーが出ないかどうか調べる.
# dd if=/dev/sdb of=/dev/null
null は, 入力したデータを全て捨てるデバイスファイルである.
書き込みのテストには,
# dd if=/dev/zero of=/dev/sdb
とした.
zeroは, 読み出すとゼロを返すデバイスファイルである.
次のようなシェルスクリプトを使い, 読み出しテスト, 書き込みテストを 続けて実行する.
----ここから---- #!/bin/bash FILE=/dev/sdb dd if=$FILE of=/dev/null bs=100M dd if=/dev/zero of=$FILE bs=100M ----ここまで----
これを, diskiochk.sh などとして保存して,
# chmod u+x diskiochk.sh # nohup ./diskiochk.sh &
として, 出力結果を nohup.out に出力した.
出力結果
以下のような結果が出力された.
----ここから---- 19077+1 records in 19077+1 records out 2000398934016 bytes (2.0 TB) copied, 16338.9 s, 122 MB/s dd: writing `/dev/sdb': デバイスに空き領域がありません 19078+0 records in 19077+0 records out 2000398934016 bytes (2.0 TB) copied, 16364.6 s, 122 MB/s ----ここまで----
また, 3/31 に確認したときに, 以下のようなメッセージが出ていた.
ata1.01: exception Emask 0x10 SAct 0x0 SErr 0x400100 action 0x0 ata1.01: SError: { UnrecovData Handshk } ata1.01: failed command: WRITE DMA EXT ata1.01: cmd 35/00:00:30:d3:68/00:04:8e:00:00/f0 tag 0 dma 524288 out res 51/84:00:30:d4:68/84:03:8e:00:00/1e Emask 0x30 (host bus error) ata1.01: status: { DRDY ERR } ata1.01: error: { ICRC ABRT } ata1.01: exception Emask 0x10 SAct 0x0 SErr 0x400100 action 0x0 ... (以降繰り返し)
スクリーンショット写真
このエラーメッセージの意味を上から見ると,
エラーの概要. SErr が 0x400100 で生じている SError は, データのエラーが発生 直接転送を行うコマンドが失敗した コマンド送った レスポンスが返ってきた -> host bus エラーが発生 HDD は ReaDY 状態であるがエラーになった シリアル転送が途中で停止した
要するに, シリアル転送を行っていたが途中で停止してしまったらしい.
対応としては, SATA ケーブルを入れ替えること, といくつかのウェブサイトに書いてあったが, どの SATA ケーブルを使ったのかわからなくなってしまったが, (おそらく) 前回使用したものとは異なる SATA ケーブルを使って再度テストを行った. 前回のようなエラーは出なかった.
トラブルシューティング
OS が起動しない
- 問題
新しい HDD を接続した際
BUG: soft lockup - CPU#1 stuck for 61s
を含むメッセージが出力されて, OS が起動できなかった.
- 解決法
- 新しい HDD を接続しない状態で OS を起動し, アップデートを行った.
- その際, カーネルのアップデートが行われた.
- 再度新しい HDD を接続し, 電源を入れると OS が起動した.
- 参考 : mindia(マインディア) セルンのブック
- 新しい HDD を接続しない状態で OS を起動し, アップデートを行った.
[[ITPASS]過去の構築ドキュメント へ戻る]
Keyword(s):
References:[[ITPASS2011]2011年度サーバ構築ログ]