web-dev-qa-db-ja.com

(Linuxで)何度も何度もファイルシステムをfsckしても、ファイルシステムでエラーが繰り返し発生するのはなぜですか?

私のシステムはGentooLinux(カーネルは3.16.0)で、ファイルシステムはreiserfsです。

数日前、100MBを超え、約1.3GBで10,000ファイルの大きなtarballを解凍したところ、いくつかの解凍されたファイルが無秩序で、未完成で、破損していることがわかりました。そのため、そのパーティション(/ dev/sda9)でfsckを実行しました。ファイルシステムエラーが見つかりました。

Comparing bitmaps..vpf-10640: The on-disk and correct bitmaps differs.
2 found corruptions can be fixed when running with --fix-fixable

そこで、-fix-fixableを使用して再びfsckを実行しましたが、ようやく成功したことがわかりました。大丈夫だと思いましたが、違います。

そのtarballを再度解凍すると、-rebuild-treeを使用した場合でも、-fix-fixableを使用してfsckを何度も実行したにもかかわらず、エラーが再び発生しました。

このtarballは大丈夫です。別のパーティション(reiserfsも)で解凍します。エラーはありません。したがって、ディスクに不良ブロックがあるかどうかは疑わしいです。コマンド「badblocks-nsv」を使用してディスク全体(/ dev/sda)をチェックしましたが、不良ブロックは報告されていません。 (不良ブロックをチェックする方法は正しいですか?)

再フォーマットも試みましたが、残念ながら何も起こりませんでした。 (「問題のある」パーティション上のすべてのファイルを別の場所にバックアップし、そのパーティションを再フォーマットして(まだreiserfs)、コピーして戻しました。そのtarballを再度解凍した後、エラーが再び表示されました。tarballは問題ないと確信しています。 、他の大きなtarballを試したので、同じエラーです。)

だから、今、私は非常に混乱しています。ディスクに不良ブロックがない場合、修正後にファイルシステムが何度も壊れてしまうのはなぜですか。

3
Bruce

この問題に数週間苦しめられてきた私は、ついに今日その答えを見つけました。

今日、突然、ハードディスクにまったく問題がないのではないかと思いついたのですが、それはreiserfsのバグであり、Linuxカーネルのバグである3.16.0である可能性があります。だから私はそれをグーグルで検索して答えを得ました。はい、カーネル3.16.0および3.16.1のreiserfsのバグです。

詳細については、次のリンクを参照してください。
https://bugzilla.kernel.org/show_bug.cgi?id=83321
https://bugzilla.kernel.org/show_bug.cgi?id=83121

したがって、実際にはこれは一般的な質問ではなく、Linuxカーネルの特定のバージョンに関するものです。 (そして、reiserfsでバグのあるバージョンのカーネルを使用している場合は、できるだけ早くアップグレードしてください!)

3
Bruce