ルート設定なしで破損したbtrfsパーティションからディレクトリを回復する

ルート設定なしで破損したbtrfsパーティションからディレクトリを回復する

メディアが物理的に破損したbtrfsパーティションからデータを回復しようとしています。

パーティションの約99%を回復できたので、ほとんどのデータがそこにあると確信しています。しかし、重要なメタデータが欠落しているようです。パーティションをまったくマウントできません。btrfs rescue super-recover失敗。btrfs restore見つかった他のツリールートを使用してさまざまなファイルを取得できますbtrfs-find-root。ただし、ディレクトリ()では/home常に失敗します。

checksum verify failed on 965984256 found 000000B6 wanted 00000000
bad tree block 965984256, bytenr mismatch, want=965984256, have=0
Error searching -5
Error searching /recovery/sde1/@home

ルートセットからディレクトリに入ることができないため、ルートセットメタデータをバイパスしてディレクトリの内容を取得する別の方法があるかどうか疑問に思います。おそらくパーティション全体をスキャンすることです。

答え1

データ自体が破損した場合、ファイルの一部にエラーやアクセスできないデータが含まれます。この場合、ログにチェックサムエラーが表示されます。BTRFS固有の冗長性が原因で一部の情報を回復できる場合は、スクラビングでこれを行うことができます。

BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 0, flush 0, corrupt 11382, gen 0
BTRFS error (device sda1): unable to fixup (regular) error at logical 13787648000 on dev /dev/sda1

影響を受けるとsuperblockまったくマウントできません。オペレーティングシステムがデバイスをインストールするために必要な情報を含むsuperblockルートディレクトリです。別の場所に追加のコピーが保存されているため、通常は簡単に変更できるため、スーパーブロックのコピーとしてマウントするfilesystem treeか、BTRFS次のコマンドを実行して問題を解決することもできます。

btrfs rescue super-recover

filesystemまた、実際のデータが破損していない場合でも、メタデータの破損が発生する可能性があります。これはBTRFS、ファイルまたはファイルの一部が存在するかどうかわからないため、そのファイルにアクセスできないことを意味します。この場合、すばやく対応したら、次のコマンドを使用してディスク全体をスキャンし、filesystemメタデータツリーを再構築してみることができます。btrfs

rescue chunk-recover. 

これは危険で非常に遅いです。

BTRFSパーティションを回復する方法

関連情報