LVにext4ファイルシステムがありましたが、パーティションが小さすぎるために誤って縮小したために破壊されました。パーティションを元のサイズに拡張した後、新しいext4 FSをLVに配置しました。これは、現在の状態ではudev
がデバイスファイルを提供しないためです。必要です。うまくいけば、古いスーパーブロックを回復するために、まだどこかに適切なバックアップがあることを望んでいます。どうすればそれを見つけることができますか?testdisk
はそれらの束を見つけたようですが、どれも機能しません。
運が良ければ、パーティションにバックアップスーパーブロックがあります。ファイルシステムの作成に使用されたオプションを覚えている場合(たとえば、デフォルトを使用した場合)、次のようにバックアップの場所を見つけることができます。
Sudo /sbin/mkfs.ext4 -n <original_options> <device>
-n
は非常に重要です。これは、ディスクに何も書き込まない「ドライラン」オプションです(実験中は、ディスクを安全な場所にダンプすることをお勧めします-Iすでにそうしていると仮定します)。
元のオプションを思い出せない場合でも、候補リストを取得するには、上記を試す価値があります。
ここで、候補となるスーパーブロックごとに、-o ro,sb=<n>
を使用してマウントし、代替スーパーブロック(および読み取り専用)を使用してみてください。成功した場合、いくつかのファイルを回復できる可能性があります。
候補のスーパーブロックのいずれもマウントの成功を許可しない場合、最後の努力は、-S
オプションを使用して新しいスーパーブロックをmkfs.ext4
に書き込むことです: "スーパーブロックを書き込むおよびグループ記述子のみ。これは、すべてのスーパーブロックとバックアップスーパーブロックが破損していて、最後の溝の回復方法が必要な場合に役立ちます。 "私は notどこかに完全なパーティションバックアップなしでこれを行います。
まず、ディスクが読み取り専用であることを確認して、データの回復を試みているときにディスクに書き込みが発生しないようにします。
Ext4スーパーブロックは、iノード数やブロック数などによって内容が大きく異なるため、見つけるのが困難です。ただし、検索できる魔法の署名0xEF53(16ビット)があります。適切な場所を見つけることができれば、スーパーブロックの開始(およびiノードの総数)をその前に56バイト(16進数で0x38バイト)配置する必要があります。
0xEF53のインスタンスが多数見つかる可能性がありますが、スーパーブロック内の他の可能性のある値を確認することで、それを識別できる場合があります。
Ext4スーパーブロック値の表は次のとおりです。 https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#The_Super_Block
ディスクイメージ全体に16進エディタを使用すると、結果が得られる場合があります。
Ext4スーパーブロックのように見えるものをデータで検索するプログラムを作成する(または誰かにお金を払う)こともアイデアかもしれません。 (たとえば、OSは「Linux」であるため、オフセット72(0x48)の32ビット数は0である必要があります)。
幸運を祈ります。