Primeiro: execute dmsetup table --showkeys
. Salve a saída desse local em algum lugar seguro - essa grande cadeia hexadecimal longa é a atual chave de criptografia (chave mestra) usada para proteger seus dados. O LUKS funciona (simplificando aqui) criptografando essa chave com sua (s) senha (s), portanto, tenha em mente que o comprometimento dessa chave significa o fim do jogo - uma mudança de frase secreta não ajudará. Você tem que limpar e recriar a partição LUKS. No entanto, essa mesma propriedade significa que, mesmo com um cabeçalho LUKS completamente destruído, você pode usar essa "tabela" (incluindo a chave) para ler seus dados.
A linha que você está procurando (e pode haver muitas linhas, o LVM também usa o Device Mapper) é assim. Exceto que em vez de um monte de 0s, você terá dígitos hexadecimais aleatórios (os 0s são o que você obtém sem --showkey):
Zia-swap_crypt: 0 11714560 crypt aes-xts-plain64 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 253:1 0
(Você faz o primeiro acima porque é rápido. Se a energia acabar, a máquina trava, etc. você pode usá-la para recuperar seus dados. Sem ela, seus dados seriam irrecuperáveis.)
Você quer manter toda a linha. Melhor ainda, toda a saída. Você pode alimentar essa linha de volta para dmsetup
para restaurar a tabela e, assim, seu acesso aos dados, mesmo sem o cabeçalho LUKS).
Em seguida, copie uma imagem do dispositivo descriptografado em algum lugar. O dispositivo descriptografado é o nome que você vê na saída dmsetup
acima; no meu caso /dev/mapper/Zia-swap_crypt
. É o mesmo que você colocaria em /etc/fstab
ou passaria para mount
.
Agora, você pode copiar seus dados do sistema em execução (por exemplo, com tar
) ou, se isso falhar, tentar um fsck
para reparar o sistema de arquivos. (Então copie os dados).
Você pode usar essa chave para criar um novo cabeçalho LUKS, e isso deve funcionar - ou apenas reinicializá-lo e começar de novo.
No futuro, faça uso de cryptsetup luksHeaderBackup
.