web-dev-qa-db-ja.com

fsckが役に立たないときに破損したファイルシステムから回復する

私のファイルシステムで何か問題が発生しました。Ubuntuは読み取り専用に設定しましたが、Ubuntu Live Discではfsckで修正できません。

13.04を実行していますが起動しません-起動時に、grubレスキュープロンプトが表示されるだけです。

これは簡単なセットアップで、/ dev/sda1にハードドライブが1つだけありますが、マウントすらされません。

インストールプログラムはパーティションを見ることができます。それはext4であり、ブートパーティションです。

ただし、Ubuntuライブディスクを使用してUbuntuのインストールを実行しても、ファイルシステムを救出できないようです。

Backuppcを使用してバックアップを作成しましたが、愚かにもレスキューディスクを失いました。私はむしろ、完全なインストールの後に実行する経験のない復元が続くのを避けたいです。

問題の核心は、fsckがすべてを修正するが実際には修正しないと言っているため、次回実行したときに、まったく同じエラーメッセージと修正が表示されることです。

出力は次のとおりです。

ubuntu@ubuntu:~$ Sudo fsck.ext4 -vy /dev/sda1
e2fsck 1.42.8 (20-Jun-2013)
ext2fs_check_desc: Corrupt group descriptor: bad block for block bitmap
fsck.ext4: Group descriptors look bad... trying backup blocks...
Block bitmap for group 0 is not in group.  (block 2553887680)
Relocate? yes

Inode table for group 0 is not in group.  (block 2440124416)
WARNING: SEVERE DATA LOSS POSSIBLE.
Relocate? yes

One or more block group descriptor checksums are invalid.  Fix? yes

Group descriptor 0 checksum is 0x761e, should be 0xcf25.  FIXED.
Block bitmap for group 4352 is not in group.  (block 2553887680)
Relocate? yes

Inode table for group 4352 is not in group.  (block 3731970048)
WARNING: SEVERE DATA LOSS POSSIBLE.
Relocate? yes

Group descriptor 4352 checksum is 0x5eda, should be 0x3da3.  FIXED.
Inode bitmap for group 4353 is not in group.  (block 2785042439)
Relocate? yes

Group descriptor 4353 checksum is 0xd8b1, should be 0xedfb.  FIXED.
Inode bitmap for group 4354 is not in group.  (block 838860807)
Relocate? yes

Group descriptor 4354 checksum is 0x1718, should be 0x0438.  FIXED.
Inode bitmap for group 4355 is not in group.  (block 771751943)
Relocate? yes

Group descriptor 4355 checksum is 0x0bc8, should be 0x4170.  FIXED.
fsck.ext4: e2fsck_read_bitmaps: illegal bitmap block(s) for /dev/sda1

/dev/sda1: ***** FILE SYSTEM WAS MODIFIED *****

/dev/sda1: ********** WARNING: Filesystem still has errors **********

ubuntu@ubuntu:~$ 

これは以前の10倍とまったく同じであり、次の10倍は間違いなく同じです-まったく同じチェックサムとブロックID。喜んで受け取った助け!

ありがとう。

編集:基本的には、このファイルシステムはその場で修復可能ですか、それともfsckからの情報はディスクが死んだことを意味するのでしょうか?そして、それが死んでいない場合、fsckでやったこと以上に何ができますか?

編集:tune2fsを使用してスーパーブロックを識別し、fsckの代替としてe2fsck -b 01234/dev/sda1を実行しました...効果なし。

編集:パーティションが悪いことを教えてくれますtestdiskを試してください。 ... OK testdiskはあまり提供していないようです。

11
Adam

最後に見つかった このリンク ファイルシステムタイプext4はバッシングを取得しますが、私がすでに試したすべてのヒントを与えた後、最終的にこれを行うと言います:

Sudo mkfs.ext4 -S /dev/sda1

これにより、ブロックサイズが正しく推測されると仮定して、すべてのスーパーブロックが正しいデータに置き換えられます(デフォルトはほとんどのシステムで正しいです)。これを使用する必要がある場合は、最初に manページ on -Sを読んでください私を責めるな!

しかし、あなたが幸運だと感じる場合のみ。

パーティションを修正したので、もう一度読むことができました。ただし、fsckを実行して、まだ存在するエラーを修正する必要があり、/ etcおよびその他の多くの内容が/ lost + foundにダンプされたため、再実行する必要があります。 -バックアップからインストールして復元し、再度実行します。

13
Adam

最初に:このディスクに重要なデータがある場合、バックアップを作成するのに適した時間(実際には悪い時間)になります。 データリカバリ:破損したデバイス、ファイルシステム、またはドライブのイメージング を参照してください。たぶん、あなたのハードディスクは死にかけています。

2番目:これを見てください: クラッシュ後にデータドライブのマウントを修正するにはどうすればよいですか?

3番目: Smartmontools と最終的にbadblocksを使用してハードドライブを確認します:Sudo badblocks -vsn /dev/sda(時間がかかる場合がありますが、ssdがある場合はこれを行わないでください)

2
innerand