web-dev-qa-db-ja.com

テスト目的でファイルシステムの破損を引き起こす方法は?

ファイルシステムが破損する理由は次のとおりです。

  • 不適切なシャットダウン(ハードリセット);
  • ハードウェア障害(ディスク上の不良ブロック、不良ディスクコントローラー);
  • 不適切な起動(破損したファイルシステムのマウント);
  • カーネルエラー(本当にこれをテストしたい)。

質問:

  1. 私が見逃したファイルシステムの破損の他の理由はありますか?
  2. ファイルシステムの破損を人為的に引き起こす方法-私はddについて知っていますが、これ以上のものはありますか?

Linuxに興味がありますが、おそらくこれはWindowsにも当てはまります。

7
grs

不適切なシャットダウンの場合は、仮想マシンを使用してテストできるはずです。すべてのアプリケーションとサービスをロードするスクリプトを作成します。次に、APIを使用してVMを強制終了し、再起動します。繰り返します...スクリプトを実行して、終了するまでにかかる時間を確認します。

カーネルエラーの場合:たとえば、初期のReiser、XFS、またはEXT4日からの古いベータカーネルを見つけます。バグリストと変更点を調べて、再現可能なバグを見つけます。

5
Wim Kerkhoff

ハードドライブのヘッドを配置するボイスコイルメカニズムは希土類磁石を使用しており、死んだハードドライブからかなり大きくて非常に強力な磁石をいくつか入手しました。

十分な強度の磁石を取り、ハードドライブの上部に保持することで、動作中のハードドライブにディスクエラーを作成できます。ただし、これは可逆的なプロセスではないことに注意してください。これが機能すると、ドライブプラッタのサーボトラックが損傷し、ディスクが使用できなくなります。

1)楽しみがたくさんあるもう1つの破損の原因は、パーティションの重複です。 1つのパーティションの終わりが別のパーティションの始まりと1つのセクターだけ重なる状態で、数か月間実行できます。以上!

2)sg3-utilsパッケージには、ディスクをいじくり回すために使用できるいくつかの優れた低レベルSCSIコマンドが含まれています。例えば:

sg_write_long -w -l 16384 /dev/sda

/ dev/sdaのセクター16384に修正不可能なエラーを書き込みます(実際には、ドライブに修正不可能なエラーがあることを通知するだけです)。

0
MikeyB