
私の PC には SSD と HDD があります。SSD はシステム用、HDD はデータ保存用です。OS を Debian から Ubuntu に変更しましたが、HDD の lvm をバックアップするのを忘れました。もちろん、データは失われました。同じサイズの新しい論理ボリュームを再作成しようとしました。しかし、xfs_repair を実行すると、「有効なセカンダリ スーパーブロックが見つかりませんでした」と表示されます。役に立たないようです。新しい論理ボリュームを作成したので、lvscan ソリューションも役に立たないです。では、データを復元する方法はありますか?
答え1
状況は複雑で、何が起こったのかはよくわかりません。あなたの試みは役に立たなかったかもしれません。
デフォルトでは、論理ボリュームを再作成すると、署名が消去され、最初の 4KiB のデータがゼロになります。つまり、新しく作成された LV に古いファイルシステムが表示されないように特別に確認します。
-W|--wipesignatures y|n
Controls detection and subsequent wiping of signatures on new LVs.
-Z|--zero y|n
Controls zeroing of the first 4KiB of data in the new LV.
lvremove
SSD の場合、 ( issue_discards = 1
lvmconfig 内で) または を実行した場合、データが完全に破棄される可能性がありますmkfs
。
LVM が異なるデータ オフセットを使用する可能性もあります。その場合、作成しようとするすべての LV も間違ったオフセットになります。LVM がパーティション上にあり、パーティション自体が正しいオフセットで再作成されなかった場合も同様です。
論理ボリュームは、任意の方法で割り当てることもできます (複数のボリュームがある場合や、サイズを変更した場合)。データがディスク上の単一の線形ブロック (パーティションなど) で使用可能になるという保証はありません。
したがって、失われた LV を復元するには、LVM メタデータに関する詳細な知識が必要です。このため、LVM はメタデータのバックアップを保持しています/etc/lvm/{archive,backup}
が、すでに消去、ゼロ化、または破棄されている場合は役に立ちません。また、ルート パーティションをフォーマットした場合は、これらのバックアップが欠落している可能性があります。それでも、とにかく確認してください。運が良ければ可能です。
物理ボリューム自体にもメタデータのバックアップがありますが、その上で pvcreate/vgcreate を実行すると、おそらくそれもすでに消えているでしょう。それでも、確認しても損はありません。
$ strings -w /dev/disk | grep -A 1000 'Generated by LVM2'
# Generated by LVM2 version 2.02.103(2) (2013-10-04): Thu Oct 31 11:42:36 2013
...
また、手動または で復旧する際に役立つ可能性のある割り当て情報の断片が見つかる場合がありますvgcfgrestore
。(タイムスタンプに注意してください。事故前のものを探していることになります)。
それで、データを復元する方法はあるのでしょうか?
LV が単一のディスク上にあり、断片化されておらず、まだそこにある場合 (消去されていない)、パーティション回復ツールをtestdisk
使用して、LVM なしの通常のパーティションとして復元することもできます。
パーティションは論理アドレス指定をサポートしていないため、複数のセグメントが一緒にマップされているのではなく、すべてが物理的に 1 つのセグメント内にある場合にのみ、LV をパーティションにマップできます。
ファイルシステム自体を復元できない場合でも、データが暗号化されていない限り、photorec
断片化されていない個別のファイル (内容のみ、元のファイル名と構造は失われている) が見つかる可能性があります。