私のDebian wheezyインストールのデフォルトのパーティションは暗号化されたLVMボリュームです。 ext3です。今日、ターミナルウィンドウでは、/home
読み取り専用ファイルシステムが原因でツリーのファイルに書き込もうとしなかったという奇妙なメッセージが表示されました。再起動後に/dev/sda1 is reported as clean. fsck.ext3
自動的に実行され、そのデバイスがないことを報告し、/dev/mapper/sda1_crypt
終了コード8を報告するエラーメッセージが表示されました。私はメンテナンスシェルに行き、誰かがログに記録しようとしていると言われました/var/log/fsck/checkfs
。
ログは次のように書きました。
[Timestamp]
fsck from util-linux 2.20.1
/dev/mapper/sda1_crypt: Super blocks need_recovery flag is clear, but journal has data.
/dev/mapper/sda1_crypt: Run journal anyway
/dev/mapper/sda1_crypt: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
(i.e., without -a or -p options)
fsck died with exit status 4
私は走った
$ fsck -vnM /dev/mapper/sda1
数多くのillegal block #nnnn (mmmmmmmmm) in inode ppppppp IGNORED
ニュースが飛んで、その後に続いて
too many blocks in Inode somenumberhere
次に、追加パスを実行して複数のinode宣言のブロックを解析します。
その後、出力
Pass 1B: Rescanning for multiply claimed blocks
しばらくして壁ができました。
Illegal block number passed to ext2fs_test_block_bitmap somenumberhere for multiply claimed block map
以下は、Iノードanothernumberにある2つの乗算宣言ブロックです:[5個と8個のブロック番号リスト]
それからこのようなスタンザを得ました。
[ 3828.181915] ata1.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[ 3828.182462] ata1.01 BMDMA stat 0x64
[ 3828.183810] ata1.01 failed command: READ DMA EXT
[ 3828.185889] ata1.01 cmd 25/00:08:08:10:9c/00:00:29:00:00/f0 tag dma 4096 in
[ 3828.185891] res 51/40:00:09:10:9c/40:00:29:00:00/f0 Emask 0x9 (media error)
[ 3828.190071] ata1.01 status: { DRDY ERR }
[ 3828.192153] ata1.01 status: { UNC }
続いて
[ 3830.509338] end_request: I/O error, deb SDA, sector 698093577
[ 3830.509841] Buffer I/O error on device dm-3, logical block 87261184
Error reading block 87261184 (Attempt to read block from filesystem resulted in short read) while reading I node and block bitmaps. Ignore error? no
fsck.ext3: Can't read an block bitmap while retrying to read bitmaps for /dev/mappersfa1_crypt
/dev/mapper/sda1_crypt: ******* WARNING: Filesystem still has errors *******
e2fsck: aborted
/dev/mapper/sda1_crypt: ******* WARNING: Filesystem still has errors *******
ファイルシステムにまだエラーがあるという警告で中断されます。
私の質問は次のとおりです
私のデータが焼かれていますか? (最近、私の厳格なバックアップポリシーが厳しく守られていないため、宇宙の罰を受けていると確信しています。)
私は今何をするべきですか?
私が何か間違っているのでしょうか?
揺れが止まるまで誰かが私を捕まえてくれるのだろうか?
編集する
地域のLUGメーリングリストにも尋ねました。私が得たアドバイスは、ddrescueを使ってドライブイメージを撮り、そのイメージのコピーに対してfsckを実行することでした。これは合理的であり、状況を悪化させる可能性がないようです。これが現在の攻撃計画であり、より良いアドバイスを待っています。
答え1
ハードドライブ自体に問題があるようです。 (「短い読み取り」など)その場合、dmesg | tail
一部のI / Oエラーが表示されることがあります。
これを確認する別の方法は、badblocks -n
問題のパーティションで実行することです。または、ディスク全体にある方が良いです。何をテストしても削除する必要があります。大規模で最新のディスクでは、これには数時間かかります。パーティションにないと購入できないものがインストールされている場合は、まずリムーバブルメディアまたはネットワークボリュームにコピーしてください。
ディスクをミラーリングする提案も良いです。badblocks -n
ディスクがすべてのセクタを強制的に読み取ると、ディスクが意図したbadblocks -n
とおりに問題ブロックを再配置できるため、これはスキャンの「ライト」バージョンです。badblocks -n
疑わしいセクタは、読み取りがほとんど不可能であり、ディスクへの書き込みを試みると移動するのに十分な不良と見なされるため、より効率的です。ただし、ディスクに構造を維持するのに十分な寿命が残っている場合、追加の読み取りチャネルだけでは回復を完了できません。
fsck
ディスクイメージを実行しても、すべてが復元されるという大きな期待はありません。プロセス中にセクタがほとんど失われます。つまり、一部のファイルが読み取れないか破損して使用できなくなります。たとえば、JPEG は破損したデータで部分的にデコードされますが、下部 ⅔ が切り捨てられた JPEG は使用できません。
私のデータが焼かれていますか?
そうかもしれないし。パスはbadblocks -n
時々トリックを行うことができます。その場合は、HDDを交換する必要があります。ディスクは、起動がほとんど不可能な場合にのみこの不良状態になるためです。
私が何か間違っているのでしょうか?
「厳しい」という言葉が何を意味するのか忘れてしまった以外はそうではありません。 :)
答え2
復元できる現在のバックアップイメージがあることを願っています。
それでは、アーカイブしたいものを制限的にバックアップし、ディスクがまだ利用可能であることを確認します。私が使用した1つの秘密は、RAWパーティションデバイスを使用してそれを/ dev / nullに追加することです。適切なオプションを使用すると、読み取れない領域が識別されます。