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オプションと組み合わせることはできません。
これは私のニーズには過剰です。単一の破壊的なパスを達成する方法はありますか?
マンページをさらに読んで、私は問題を解決しました。 -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