web-dev-qa-db-ja.com

破壊モードでbadblocksを使用してシングルパスを実行するにはどうすればよいですか?

badblocks を使用して、(a)ディスクのエラーをチェックし、(b)ディスク上のデータを破壊的に消去します。次のコマンドを使用します。

badblocks -wsp 0 /dev/sdb1

オプションを渡しました-p 0これにより、パスが1つだけになることを期待していますが、複数のパスを取得しています。

Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: 19.01% done, 7:43:47 elapsed. (0/0/0 errors)

マンページを読むと、-wオプション自体には4つのパスが含まれています。

-w書き込みモードテストを使用します。このオプションを使用すると、badblocksは、デバイスのすべてのブロックにいくつかのパターン(0xaa、0x55、0xff、0x00)を書き込み、すべてのブロックを読み取り、内容を比較することによって、不良ブロックをスキャンします。このオプションは相互に排他的であるため、-nオプションと組み合わせることはできません。

これは私のニーズには過剰です。単一の破壊的なパスを達成する方法はありますか?

2
Jon Bentley

マンページをさらに読んで、私は問題を解決しました。 -wオプションの説明からわかるように、-pは実際にシングルパスを実行します。

デフォルトは0です。これは、badblockが最初のパスの後に終了することを意味します。

パスは、次の4つのテストパターンで構成されます。

-w書き込みモードテストを使用します。このオプションを使用すると、badblocksは、デバイスのすべてのブロックにいくつかのパターン(0xaa、0x55、0xff、0x00)を書き込み、すべてのブロックを読み取り、内容を比較することによって、不良ブロックをスキャンします。

パターンは、-tオプションを使用してオーバーライドできます。

-t test_patternディスクブロックに対して読み取る(および書き込む)テストパターンを指定します。 test_patternは、0からULONG_MAX-1までの数値、またはブロックをランダムビットパターンで埋める必要があることを指定する「ランダム」という単語のいずれかです。読み取り/書き込み(-w)および非破壊(-n)モードの場合、必要なテストパターンごとに-tオプションを指定することにより、1つ以上のテストパターンを指定できます。読み取り専用モードの場合、指定できるパターンは1つだけで、「ランダム」ではありません。パターンを使用した読み取り専用テストでは、指定されたパターンが以前にディスクに書き込まれていることを前提としています。そうでない場合、多数のブロックが検証に失敗します。複数のパターンが指定されている場合、次のパターンに進む前に、すべてのブロックが1つのパターンでテストされます。

例えば。:

badblocks -wst 0 /dev/sdb1

4
Jon Bentley