テスト目的で、次回の起動時にfsckで回復できるように、ext3パーティションを安全に破損する方法を探しています。ありがとう!
Ddを使用して、rawデバイスの上に/dev/zero
からデータを書き込みます。数バイトe2fsck -p
から始めて繰り返し、高価なものをゴミ箱に捨てるまでカウントを増やします。
dd if=/dev/zero bs=1 count=10 of=/dev/sda1 seek=10000
count=
を増やして、さらに書き込みます。 seek=
は、/ dev/sda1の最初の10kを通過するように設計されているため、ファイルシステムの上部にあるスーパーブロックや重要な構造を破棄することはありません。スーパーブロックを破棄しても問題はありませんが(これがテストデータである場合)、fsckはスーパーブロックの損失から自動回復できないため、手動でバックアップスーパーブロックを指定する必要があります。再起動fsckが何から回復できるかについて具体的に質問するので、-p
フラグがfsckを起動時に「安全に修正できるものを修正する」モードにすることを知っておく必要があります。
データパーティションでこれを行うと、再起動のコストを回避でき、trash-fsckサイクルを継続できます。
最初のスーパーブロックを上書きできます。ext3の場合は次のようになります。
dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/<filesystem to corrupt>
それは回復するのが楽しいことです。また、fsckをインタラクティブに使用するだけで再起動する必要はありません。