不良ブロックで使用するために-t test_patternオプションを使用してデバイスにパターンを書き込む方法

不良ブロックで使用するために-t test_patternオプションを使用してデバイスにパターンを書き込む方法

badblocks最近4TBハードドライブを購入しましたが、使用する前に読み書きテストをしたかったのです。オプションbadblocksで4TBを実行するのに時間がかかるため、最初にディスクにパターンを作成してから、オプションを使用してパターンを読み取って数日ではなく数時間で完了したいと-w思います。-tbadblocks

-t問題は、このオプションがどのように機能するかを理解できず、badblockswithオプションを使用した例をオンラインで検索しても結果がないことです。マニュアルページでは、テストモードは0とULONG_MAX-1の間の数値です(ULONG_MAXはそうであると推測されます)。しかし、モードを提供する方法(10進数、16進数、2進数、ASCII文字列の長さ)はわかりません。 < ?) 。パターンサイズはブロックサイズに関連していますか?badblocks-t2^322^(32/8)

問題の別の部分は、パターンでハードドライブを埋めるスクリプトを書くことです。これを行うためにRubyスクリプトを書くこともできますが、1行のbashコマンドをパイプする方がはるかにpv良いです!

答え1

badblocksパターンを最初に作成することは、他の方法で作成するよりも遅くては​​いけません。特に小さな読み取り/書き込み操作を実行しないようにし、-b block-sizeオプションを使用する場合は特にそうです。-c blocks-at-once

この例では、1MiBブロックの「ランダム」パターンでディスクを上書きします。

badblocks -v -w -t random -b 4096 -c 256 /dev/thedisk

速度に問題がある場合は、他の理由があります...

答え2

1つのツールを使用してパターンを作成し、それを使用して読み込むことは、単一のパターンを使用してbadblocks不良ブロックを実行するよりもはるかに高速ではないようです。

モードは16進数で指定する必要があります。少なくとも私が理解する方法は次のとおりです。
badblocks -t 0x55 -w [...]

源泉:https://github.com/autotest/ctcs/blob/master/runin/ Destructiveblocktstrnd

答え3

-tそれで、より多くの研究の終わりに不良ブロックオプションを利用する方法を見つけました。フロストスーツの答え(私はこの質問をしたときにこのオプションに気付かなかった-c)。

42フルハードドライブに書き込みます。

yes 4 | tr '\n' 2 | pv -pterb -s 4000G > /dev/sdx

確認パスbadblocks

badblocks -vs -t 0x3432 /dev/sdx

関連情報