Se houver corrupção no cabeçalho LUKS (mais do que apenas um único byte), é praticamente impossível recuperar.
O cabeçalho LUKS não possui uma soma de verificação para seu material de chave, portanto, se estiver danificado de alguma forma, o cryptsetup luksDump
será o mesmo de sempre, mas sua senha simplesmente não funcionará mais. Se você não conseguir fazer a frase secreta funcionar, não será possível descartar a corrupção.
Você pode conferir com hexdump
(abordagem manual para o verificador keylot):
hexdump -C -n 132096 foobar.img | less
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|
... 0x00000->0x01000 should be mixed text, zero and random ...
00001000 9f 27 7a 46 8b c7 0e 09 00 82 2d 66 a7 4b b7 76 |.'zF......-f.K.v|
00001010 7a 01 ed 65 91 d0 96 af 3c f1 85 0d 64 48 81 e7 |z..e....<...dH..|
00001020 3a 00 0d d1 23 e0 95 d2 8e 42 34 4d e2 74 c4 d6 |:...#....B4M.t..|
... 0x01000->0x20400 should be 128K of random only ...
000203d0 b6 04 f6 34 08 64 10 3f 4e b7 c4 21 e6 d8 da 56 |...4.d.?N..!...V|
000203e0 0e eb 53 ce d2 a6 94 f0 92 7b 11 4b c1 96 9f 17 |..S......{.K....|
000203f0 94 88 b4 cd 36 a5 e1 b2 e9 ba 27 f3 85 7d cb 3f |....6.....'..}.?|
00020400
O primeiro segmento é o que luksDump
mostra, apenas partes dele são aleatórias. O intervalo 00001000..00020400
é o material chave para Key Slot 0
, isso deve parecer aleatório, se houver algum segmento zerado ou ausente de aleatoriedade (como uma sequência de texto simples selvagem), o cabeçalho está corrompido.
Se você não estiver usando o layout dos EUA, tente isso e o layout que você costuma usar. Os problemas de layout do teclado também são um motivo comum para as senhas pararem de funcionar. Nesse caso, é útil adicionar a mesma senha várias vezes (uma para cada layout) para que o LUKS a aceite, independentemente de qual layout está ativo no momento.