Чтение зашифрованного раздела со сломанным LVM2 внутри?

Я переписал некоторые метаданные LVM2 во многом так же, как восстановление перезаписанных метаданных LVM . То есть я попытался установить Debian 6.0.7 в систему с существующими зашифрованными томами и томами LVM2.

Структура диска заключалась в том, что объем LUKS охватывал 90% -ный раздел (sdc1) на диске; физический объем LVM2, используемый для увеличения объема LUKS; и этот физический том имел собственную группу томов и два логических тома.

Я использовал эти команды для генерации шестнадцатеричного дампа:

 cryptsetup luksOpen / dev / sdc1 sdc1_crypt
 dd if = / dev / mapper / sdc1_crypt of = text count = 100000
 hexdump -C текст |  Меньше

Часть шестнадцатеричного дампа:

 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
 *
 00000200 4c 41 42 45 4c 4f 4e 45 01 00 00 00 00 00 00 LABELONE ........ |
 00000210 1a d0 74 52 20 00 00 00 4c 56 4d 32 20 30 30 31 | ..tR ... LVM2 001 |
 00000220 39 4b 4d 34 48 30 37 43 6c 5a 6d 62 5a 46 32 43 | 9KM4H07ClZmbZF2C |
 00000230 78 6b 69 72 72 58 61 62 52 64 35 48 38 66 62 79 | xkirrXabRd5H8fby |
 00000240 00 10 0e 8c d1 00 00 00 00 00 03 00 00 00 00 00 | ................ |
 00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
 00000260 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 | ................ |
 00000270 00 f0 02 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
 00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
 *
 00000800 d2 6d b3 03 e3 88 08 0f 0f 60 17 31 60 2a a5 86 | .m ....... `.1` * .. |
 00000810 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00000a00 f4 6c 87 31 71 aa 28 b8 44 9e 03 75 fc 58 9b b4 | .l.1q. (. D..uX. |
 00000a10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00000c00 13 30 81 66 9a 7a 33 eb dd e7 b6 93 c5 e6 42 f0 | .0.f.z3 ....... B. |
 00000c10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00000e00 c2 71 8f 11 f4 70 b4 e3 af e0 a0 d7 86 bd ad 5b | .q ... p ......... [|
 00000e10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00001000 1b c7 35 60 20 4c 56 4d 32 20 78 5b 35 41 25 72 | ..5` LVM2 x [5A% r |
 00001010 30 4e 2a 3e 01 00 00 00 00 10 00 00 00 00 00 | 0N *> ............ |
 00001020 00 f0 02 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
 00001030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
 ***
 00004c00 82 12 42 63 c4 c1 b3 2b f5 f9 d1 17 06 60 64 c3 | ..Bc ... + ..... `d. |
 00004c10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00004e00 4a eb 67 e4 80 7d e7 72 d3 b4 52 36 31 3d 36 01 | Jg.}. R..R61 = 6. |
 00004e10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005000 dc da e7 8d 9b f1 37 8f 97 92 ee a4 8d 9a 42 1e | ...... 7 ....... B. |
 00005010 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005200 d2 2d 71 cb d1 31 27 c8 aa aa 03 60 a2 5f 8e 14 |.-Q..1 '.... `._ .. |
 00005210 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005400 fe 7b fd cd 20 5b cd 99 9a bf 23 92 10 b5 f9 c2 |. {.. [.... # ..... |
 00005410 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005600 86 a2 ce 88 2f ba 9b 3b ba 55 f4 d2 a5 a1 3e b7 | .... / ...; U ....>. |
 00005610 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005800 33 37 62 46 24 43 3b a1 6b 4d 65 8f 5a ca 1b 46 | 37bF $ C; .KMe.Z..F |
 00005810 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005a00 bd d5 b4 41 46 08 b9 b9 87 a2 53 ab ff 01 2a 1b | ... AF ..... S ... *. |
 00005a10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005c00 2f a8 ae 97 6d 56 8a 71 9e 16 60 2c f3 68 c2 f4 | / ... mV.q..`, .h .. |
 00005c10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00005e00 d3 44 a7 ca bc 21 61 f4 58 c4 f2 78 9c 34 95 18 | .D ...! AX.x.4 .. |
 00005e10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006000 5d df c9 11 56 ec 92 03 ac 02 4e 91 40 76 a6 b3 |] ... V ..... N. @ v .. |
 00006010 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006200 e2 19 26 d8 4e bc ae 44 a1 47 f9 bd 6d 0f 86 57 | .. ... N..DG.m..W |
 00006210 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006400 82 52 57 e2 35 e7 82 af 53 fb d4 04 93 89 48 aa | .RW.5 ... S ..... H. |
 00006410 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006600 49 86 60 90 1e a5 da d3 55 4c 26 31 80 fb a5 2d | I.` ..... UL & 1 ...- |
 00006610 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006800 cf 2a ae 71 e8 5b ac 8e dd 70 9e 05 2b bb c5 9c |. *. Q. [... p .. + ... |
 00006810 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006a00 43 e2 38 92 9a 1d c7 c4 fe bf df 13 7f bf 5b f9 | C.8 ............. |
 00006a10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006c00 38 40 94 3c 21 3e ce 63 e8 c3 5d 1d 35 08 3e 7c | 8 @ .. c ..]. 5.> ||
 00006c10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00006e00 71 52 d0 15 44 78 ad 13 fa c5 a0 ec 74 4c a7 5b | qR..Dx ...... tL. [|
 00006e10 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00007000 4f 2d b5 50 57 6b ac 02 23 82 28 05 f5 5e d1 f1 | O-.PWk .. #. (.. ^ .. |
 00007010 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |
 *
 00007200 37 43 9a f7 68 e7 94 59 13 10 66 e8 56 53 e3 cb | 7C..h..Y..f.VS .. |
 00007210 a8 2b 87 77 cb 73 bf 52 c6 36 92 ec ee 9f b7 e0 |. +. WsR6 ...... |

Если бы установка перезаписала блок LUKS новым, который использовал ту же кодовую фразу, могу ли я увидеть повторяющийся «+ .wsR6», или это было бы невероятно? Если это не так, что случилось?

Я думаю, что установка переписала метаданные PV, которая учитывает читаемую строку LVM2 на 0x1000. Но поиск на диске ключевых слов, существовавших на диске до установки, ничего не возвращал.

Вы можете использовать gpart для поиска файловых систем на /dev/dm-2 . После этого или даже в качестве альтернативы вы можете создавать объемы dm без LVM, используя напрямую dmsetup. В моих системах первый LV всегда начинается со смещения 384:

 dmsetup create restore-lv --table "0 25165824 linear /dev/dm-2 384" 

Размер не важен (и обычно неправильный) для теста. Затем вы проверяете наличие файловой системы. Для ext? с

 dumpe2fs -h /dev/mapper/restore-lv 

Если это действительно была позиция LV, тогда dumpe2fs (или соответствующая программа для вашего типа файловой системы) должны указать размер файловой системы (обычно такой же размер, как и LV):

 Block count: 53248 Block size: 1024 

В этом случае размер FS / LV составляет 53248 * 1024 = 54525952 байта (106496 секторов). Таким образом, правильная команда dmsetup была бы

 dmsetup create restore-lv1 --table "0 106880 linear /dev/dm-2 384" 

а следующая – 106496 + 384 = 106880:

 dmsetup create restore-lv --table "0 106880 linear /dev/dm-2 106880" 

Конечно, если ваши LV были фрагментированы, это не сработает. Но если это сработает, вы можете проверить, правильно ли lvcreate воссоздал LVs позже.