파티션이 2개 있는 드라이브가 있습니다.
- 첫 번째는 순수 ext4입니다.
- 두 번째는 암호화된 LUKS입니다.
파티션 테이블을 덮어썼습니다. 두 번째 파티션의 시작 부분을 찾았으며 이를 복원해야 합니다. 따라서:
# hexdump -s 400000m -C /dev/sdc | grep LUKS
61d3dec850 79 c8 81 6d e5 4c 55 4b 53 40 49 aa 29 df de d7 |y..m.LUKS@I.)...|
반품:
# losetup -o 0x61d3dec850 -r -f /dev/sdc
# losetup -a
/dev/loop0: [0005]:477209 (/dev/sdc), offset 420166420560
이때 다음과 같은 문제가 발생합니다.
# cryptsetup luksOpen /dev/loop0 luksrecover
Device /dev/loop0 is not a valid LUKS device.
오프셋이 잘못된 걸까요? 0xEF53
ext4의 매직 넘버를 찾아야 합니까?여기에 제안된 대로?
이것은 1TB 드라이브이므로 전체 드라이브를 강제로 다시 스캔하지 않도록 제안이 필요합니다(예: testdisk
스캔 시간을 절약하기 위해 지정된 오프셋에서 시작하는 옵션이 없는 것 같습니다).
답변1
dd if=/dev/mapper/storage2-crypto bs=16 count=1 2>/dev/null |
od -t c -t x1
0000000 L U K S 272 276 \0 001 a e s \0 \0 \0 \0 \0
4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00
이것이 내 시스템에서 보이는 모습입니다. 바라보다https://gitlab.com/cryptsetup/cryptsetup/wikis/LUKS-standard/on-disk-format.pdf(6페이지)
처음 6바이트는 동일해야 하며 처음 8바이트일 수도 있고 처음 16바이트보다 클 수도 있습니다. 문자열을 찾았 지만 매직 바이트가 아니기 LUKS
때문에 분명히 잘못된 것입니다 .LUKS@I
올바른 데이터를 찾으면 올바른 위치가 제공됩니다.