web-dev-qa-db-ja.com

ファイルシステムを破壊する方法

いくつかの大きなファイルシステム(過去のように約50 TB))で 'xfs_repair'をテストする予定です。メモリ使用量が高いですが、プログラムをテストできるのは、破損したシステムでテストすることをお勧めします。

それで、ファイルシステムを破壊する最良の方法は何でしょうか。メソッドが毎回同じ破損を繰り返し与える場合は、追加のクレジットが必要です。

2006年に私が何を意味するのかを人々に理解させるために

「マルチテラバイトのファイルシステムで修復を正常に確認または実行するには、次のものが必要です。

  • 64ビットマシン
  • 64ビットxfs_修復/ xfs_バイナリチェック
  • 〜2GB RAMテラバイトのファイルシステムあたり
  • ファイルシステム内の100万iノードあたり100〜200MBのRAM。

xfs_repairは通常、これよりも少ないメモリを使用しますが、これらの数値は、80%を超えるフルファイルシステムが修復に必要とする可能性があるものの大まかな数値を示します。

FWIW、これが最後に内部で発生したとき、問題の29 TBのファイルシステムは、修復に最大75 GBのRAM +スワップを必要としました。」

8
James

xfs_dbにはオプションblocktrashがあります。

ランダムに選択されたファイルシステムメタデータブロックをゴミ箱に移動します。選択されたブロック内のランダムに選択されたビットにトラッシングが発生します。このコマンドは、xfs_dbのデバッグバージョンでのみ使用できます。 xfs_repair(8)およびxfs_check(8)のテストに役立ちます。

例えば

xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/xfstest/testfs

12
James

ddは、ファイルシステムが存在するデバイスをブロックします。これをスクリプト化して、繰り返し可能にすることができます。ランダムな場所にいくつかのランダムなブロックを配置してから、次に進みます。

2
Posipiet

ブロックデバイスの最初の512バイト(MBRとパーティションテーブル)を上書きしてみてください。

最初にバックアップします。

dd if=/dev/device bs=512 count=1 of=backup.bin

そして後でゼロにする:

dd if=/dev/zero bs=512 count=1 of=/dev/device

その後はマシンが起動しないはずです。ライブCDを使用してXFS修復をテストできます。

0
Karolis T.