web-dev-qa-db-ja.com

fsckはどのようにしてハードウェア障害から回復できますか?

ファイルシステムとしてmdadmとext4を使用するRAID5アレイがあります。強い電力サージが発生し、ドライブの1つに障害が発生しましたが、もう1つは少し不安定な、別名「カッコン病」になりました。

私はディスクを1つずつ交換し、最初に壊れたディスクを交換して再同期させ、次にバグのあるディスクをクリーンなディスクと別の再同期に置き換えました。これで、完全なRAID 5(3ドライブ+ 1パリティドライブ)が正常に動作しています。

私の問題は、これらの再同期中に、バグのあるドライブで一部のセクターに障害が発生した可能性があり、iノードに障害が発生したことです。/var/log/messages(gentoo)で取得したものの例を次に示します。

Aug 16 14:16:13 shiva kernel: EXT4-fs error (device md127): ext4_lookup: deleted inode referenced: 270795020

ほとんどのファイルは問題なく動作し、そのように失敗したiノードは約12個しかなく、対応するファイルはほとんどが非常に小さいもののように見えます(アレイのサイズは約4TBです)。

今の私の問題は、ディスクをクリーンアップしたいのですが、方法がわかりません。ブートアップはfsckを実行するように指示しますが、正確に何をするのかわかりません。Webで読んだ多くのことで少し怖いです。 :)

それを考慮して:

  1. ハードウェアの問題は100%解決されました
  2. ほとんどのファイルシステムは問題なく動作し、12個のiノードのみがねじ込まれています
  3. ファイルシステムを「修正」して通常の状態に戻したい
  4. いくつかの失敗したファイルを失っても大丈夫です(可能であればどれであるか知りたいのですが)
  5. 繰り返しになりますが、システムのブート/マウントは正常に機能し、ほとんどすべてのファイルが正常に機能します。失敗したファイルは常に少数です。

それを行うには、ドライブでfsckを実行する必要がありますか?すべてを失うリスクはありますか?

バックアップしてからやり直すのが最善の方法だと思いますが、すでに2台の新しいドライブを購入しただけでは、現在3TBのバックアップを購入する余裕はありません...混乱を解消しようとしています。

3
azera

はい、fsckを実行すると、希望どおりの結果が得られます。もちろん、隕石がコンピューターに着陸し、すべてのディスクを破壊するなど、何でも起こり得ます。しかし、fsckを実行しているものは、エラーのあるファイルシステムで操作を続けるよりも安全です。

レスキューCD(またはUSBペンドライブ)から起動し、そこからfsckを実行することをお勧めします。不安を感じている場合は、fsck -nを実行することから始めることができます。これはファイルシステムに書き込みを行わず、検出されたエラーのみを通知します。