メディアが物理的に破損した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.
これは危険で非常に遅いです。