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 헤더 수정 거부데미지가 매직 바이트에 한정되어 있어도. 따라서 매직 바이트 서명 복구는 수동 프로세스입니다. )

관련 정보