いくつかの大きなファイルシステム(過去のように約50 TB))で 'xfs_repair'をテストする予定です。メモリ使用量が高いですが、プログラムをテストできるのは、破損したシステムでテストすることをお勧めします。
それで、ファイルシステムを破壊する最良の方法は何でしょうか。メソッドが毎回同じ破損を繰り返し与える場合は、追加のクレジットが必要です。
2006年に私が何を意味するのかを人々に理解させるために
「マルチテラバイトのファイルシステムで修復を正常に確認または実行するには、次のものが必要です。
xfs_repairは通常、これよりも少ないメモリを使用しますが、これらの数値は、80%を超えるフルファイルシステムが修復に必要とする可能性があるものの大まかな数値を示します。
FWIW、これが最後に内部で発生したとき、問題の29 TBのファイルシステムは、修復に最大75 GBのRAM +スワップを必要としました。」
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
ddは、ファイルシステムが存在するデバイスをブロックします。これをスクリプト化して、繰り返し可能にすることができます。ランダムな場所にいくつかのランダムなブロックを配置してから、次に進みます。
ブロックデバイスの最初の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修復をテストできます。