Диск с 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, как указано здесь https://unix.stackexchange.com/questions/103919/how-do-i-find-the-offset-of-an-ext4-filesystem ?
Имейте в виду, что это диск емкостью 1 ТБ, поэтому, пожалуйста, мне нужен совет, который не заставляет сканировать весь диск (часы и часы) заново, если это возможно, например, testdisk, у которого, похоже, нет возможности начать с указанного смещения, чтобы сэкономить время на сканирование.
P.S. Это было близко, но не совсем: https://unix.stackexchange.com/questions/177070/lvm-encrypted-partition-without-partition-table
Первая очевидная проблема - вы ищете не в том месте. Это не заголовок LUKS.
В Заголовок раздела LUKS начинается с шести байтов, определенных как L
, U
, K
, S
, а затем 0xBA, 0xBE. Как вы можете ясно видеть, двух из этих шести байтов там нет.
То, что вы ищете, довольно очевидно:
00000000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |LUKS....aes.....|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020 00 00 00 00 00 00 00 00 78 74 73 2d 70 6c 61 69 |........xts-plai|
00000030 6e 36 34 00 00 00 00 00 00 00 00 00 00 00 00 00 |n64.............|
00000040 00 00 00 00 00 00 00 00 73 68 61 31 00 00 00 00 |........sha1....|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000060 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 20 |............... |
Вам нужно будет поискать в другом месте на диске. Возможно, вам нужно немного сделать резервную копию? Или вперед. Или просто позвольте testdisk делать свое дело; если где-нибудь на диске есть действующий заголовок LUKS, он в конечном итоге должен его найти.