pvcreateで上書きされたLUKSパーティションの復元

pvcreateで上書きされたLUKSパーティションの復元

誤って LUKS パーティションに新しい物理ボリュームを作成しました。 LUKSパーティションにはLVM設定とルートパーティションが含まれています(この設定は元々debianインストーラによって作成されました)。

LUKSパーティションはほとんど破損していないことがわかります。

00000200: 4c41 4245 4c4f 4e45 0100 0000 0000 0000  LABELONE........
00000210: 0ccb b873 2000 0000 4c56 4d32 2030 3031  ...s ...LVM2 001
00000220: 4b48 5047 5667 6465 477a 7831 306a 6649  KHPGVgdeGzx10jfI
00000230: 7635 4432 4637 6966 446a 7172 3339 4863  v5D2F7ifDjqr39Hc
00000240: 0000 40a2 e800 0000 0000 1000 0000 0000  ..@.............
....
00005000: 7b22 6b65 7973 6c6f 7473 223a 7b22 3022  {"keyslots":{"0"
00005010: 3a7b 2274 7970 6522 3a22 6c75 6b73 3222  :{"type":"luks2"
00005020: 2c22 6b65 795f 7369 7a65 223a 3634 2c22  ,"key_size":64,"
00005030: 6166 223a 7b22 7479 7065 223a 226c 756b  af":{"type":"luk
00005040: 7331 222c 2273 7472 6970 6573 223a 3430  s1","stripes":40
00005050: 3030 2c22 6861 7368 223a 2273 6861 3235  00,"hash":"sha25
00005060: 3622 7d2c 2261 7265 6122 3a7b 2274 7970  6"},"area":{"typ
00005070: 6522 3a22 7261 7722 2c22 6f66 6673 6574  e":"raw","offset
00005080: 223a 2233 3237 3638 222c 2273 697a 6522  ":"32768","size"
00005090: 3a22 3235 3830 3438 222c 2265 6e63 7279  :"258048","encry
000050a0: 7074 696f 6e22 3a22 6165 732d 7874 732d  ption":"aes-xts-
000050b0: 706c 6169 6e36 3422 2c22 6b65 795f 7369  plain64","key_si
000050c0: 7a65 223a 3634 7d2c 226b 6466 223a 7b22  ze":64},"kdf":{"
000050d0: 7479 7065 223a 2261 7267 6f6e 3269 222c  type":"argon2i",

ただし、「LUKS」機能はありません。

データを取得するためにLUKSパーティションにアクセスする方法はありますか? testdiskを試しましたが、成功しませんでした。


もともとこれは含まれていないので更新してください。以下はLUKSヘッダーバックアップ@ 0x4000です。

00004000: 0000 0000 0000 0002 0000 0000 0000 4000  ..............@.
00004010: 0000 0000 0000 0005 0000 0000 0000 0000  ................
00004020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004040: 0000 0000 0000 0000 7368 6132 3536 0000  ........sha256..
00004050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004060: 0000 0000 0000 0000 735b 6f53 2466 e2bb  ........s[oS$f..
00004070: abcf fb4a d5ea d395 70ab f4e8 1f99 a173  ...J....p......s
00004080: 2303 93a0 7582 eb4a 77fe 28f8 3e01 b246  #...u..Jw.(.>..F
00004090: e9eb cd58 8a7a afd5 4e45 319a c007 906b  ...X.z..NE1....k
000040a0: b22a c393 1918 981c 6636 6333 6461 3534  .*......f6c3da54
000040b0: 2d63 6435 362d 3433 3036 2d38 6330 312d  -cd56-4306-8c01-
000040c0: 3534 3334 3366 6265 6564 3236 0000 0000  54343fbeed26....
000040d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000040e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000040f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004100: 0000 0000 0000 4000 0000 0000 0000 0000  ......@.........
00004110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004170: 0000 0000 0000 0000 0000 0000 0000 0000  ................

答え1

cryptsetup repair、パート1 – マジックバイトの回復

これは、LVMメタデータで直接上書きされたLUKS 2ヘッダーのように見えます。したがって、LUKSデバイスはLVM物理ボリュームになります。したがって、これは破損したLUKSヘッダー回復の問題です。損傷の程度によっては回復できない場合があります。

LUKS1の場合は通常ゲームは終了しますが、LUKS2の場合はオフセット0x4000にセカンダリヘッダーがあります。残念ながら、出力にオフセット範囲は含まれていませんが、オフセット0x5000にあるLUKS2 JSONデータはまだ残っています。

その後、次の実験を試すことができます。

デバイスの最初の16MiBをコピーします(LUKS 2ヘッダ)。

# head -c 16M /dev/yourdevice > luksheaderdamage.img

LUKS 2ヘッダーマジックバイト署名の復元(LVMによって削除された):

---  Primary:    0x0000 » LUKS\xba\xbe\x00\x02  ---
# printf 'LUKS\272\276\0\2' | 
  dd bs=1 count=8 conv=notrunc of=luksheaderdamage.img

---  Secondary:  0x4000 » SKUL\xba\xbe\x00\x02  ---
# printf 'SKUL\272\276\0\2' | 
  dd bs=1 count=8 seek="$((0x4000))" conv=notrunc of=luksheaderdamage.img

LUKS 2ヘッダーを修正してみてください。

# cryptsetup repair luksheaderdamage.img
WARNING: Device luksheaderdamage.img already contains a 'LVM2_member' superblock signature.

WARNING!
========
Really try to repair LUKS device header?

Are you sure? (Type 'yes' in capital letters): YES

検査結果:

# cryptsetup luksDump luksheaderdamage.img

成功したらデバイスを開きます。

# cryptsetup open --readonly --header=luksheaderdamage.img /dev/yourdevice cryptyourdevice

それでは何が見つかるのか見てください。

# file -s /dev/mapper/cryptyourdevice

これらのステップのいずれかが失敗した場合、おそらく希望はあまりありません。

(これらすべての命令を使用してバスケットボール台を飛び越えることは柔軟性がcryptsetup repairなく、LUKS 2 ヘッダ修正拒否ダメージがマジックバイトに限られていても。したがって、マジックバイト署名の回復は手動プロセスです。 )

関連情報