おやこですりむ

 

■直す価値のないハードディスクを修復してみる の参

全ブロックに 0 を書き込んでみた HDD (500GB) の S.M.A.R.T. テストの結果は、Current Pending Sector (現在保留中のセクタ) がなくなりましたが、Offline Uncorrectable (オフライン修正不可能) が 209 に増えています。これはいわゆる不良セクターって奴なのでしょうか?

badblocks コマンドを使って調べてみることにしましょう。

 

badblocks は、今回は破壊的 (書き込みモード) 検査をやってみます。man badblocks してみると、

 

-w     Use write-mode test. With this option, badblocks scans for bad blocks by writing some patterns (0xaa, 0x55,  0xff,  0x00)  on  every block (すべてのブロックにいくつかのパターンを書き込むことによって) of the device, reading every block and comparing the contents.  (後略)

 

ということです。ん〜、4つのパターンをすべてやってみるのかな。1パターンに 5時間かかるとすると 20時間 …    -t オプションでパターンを random に指定すれば良いのかもしれない。

 

-t test_pattern

Specify a test pattern to be read (and written) to disk blocks.   The test_pattern may either be a  numeric  value between  0 and ULONG_MAX-1 inclusive, or the word "random", which specifies that the block should be filled with a random bit pattern ("random" は、ブロックがランダムなビットパターンで埋められることを指定します) .  (中略) If multiple patterns are specified then all blocks will be tested with one pattern before proceeding to the next pattern (複数のパターンが指定されている場合は、すべてのブロックが1つのパターンでテストされた後に、次のパターンに進みます。) .

 

ということなので、以下のように実行してみることにします。

$ sudo badblocks -svw -b 4096 -c 256 -t random -o badblocks.txt /dev/sdb

ランダムなパターンを書き読みして、一回りで終了。1 ブロック 4096 バイトを 256個ずつテストしますので、一度に 1MB をテストすることになります。と思います (^_^;)

 

ちなみに、エラーを書き出したファイルを e2fsck に渡すといった方法を説明しているサイトがいくつも見られましたけど、いま俺がやっているような、全体を潰したファイルシステムが無い状況ではそれはできません。e2fsck はファイルシステム (ext2 / ext3) がないと実行できませんので。俺がファイルに書き出しているのは、単に記録として見るためです。

man には、e2fsck に渡す場合には badblocks を使わないように、と書かれています。

 

Important note: If the output of badblocks is going to be fed to the e2fsck or mke2fs programs (badblockの出力がe2fsckまたはmke2fsプログラムに送られる予定の場合) , (中略) it is strongly recommended that users not run badblocks directly, but rather use the -c option of the e2fsck and mke2fs programs (ユーザーが badblocks を直接実行しないことを強くお勧めします。むしろ、e2fsckおよびmke2fsプログラムの-cオプションを使用してください) .

 

さて、実際の動きですが、開始からまずランダムなパターンの書き込みが行われたようです。4時間 40分で 100% に達し、

Testing with random pattern: done

となりました。現在のところエラーは検出されていません。

そして今度は Reading and comparing: が進行しています。たしかに、dd で全体に 0 を書き込むにも同じ時間がかかっていますから、納得できる作業時間です。

ということはですよ、デフォルトが 4つのパターンを指定しているとすると、書き込みだけで 18時間 40分を要することになります。読み出しと比較に同じ時間かかるならば、全体の作業時間は 37時間 20分と見積もられます。

 

そしてついに badblocks コマンドが終了しました。正確な時間をチェックしてないのですが、ほぼ書き込みと同じほどかかっています。

$ sudo badblocks -svw -b 4096 -c 256 -t random -o badblocks.txt /dev/sdb
Checking for bad blocks in read-write mode
From block 0 to 122096645
Testing with random pattern: done                                                 
Reading and comparing: done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

結果、不良セクタは検出されませんでした。エラーがなかったので badblocks.txt も作成されていません。そして予定したとおり、ランダムパターンの書き込み読み出しを一回り実行して終了ということでした。

 

どうなんでしょう? この HDD ってまだしばらく利用できそうじゃないですか (^_^;)

 


コメント
コメントする








   
この記事のトラックバックURL
トラックバック

■calendar

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< June 2019 >>

■search this site.

■recommend

毎日貯まるポイントサイト ECナビ

■recommend

* 楽天ROOM *

■Twitter

■recommend

■recommend

■selected entries

■categories

■archives

■recent comment

■recent trackback

■links

■profile

■others

■mobile

qrcode

■powered

無料ブログ作成サービス JUGEM