Eu criptografei um monte de discos rígidos com criptografia cryptsetup luks no CentOS 5. Tudo estava bem, até que atualizei meu sistema para o CentOS 6. Agora não consigo mais montar os discos.
Para montar com minha frase-chave:
sudo cryptsetup luksOpen /dev/sdc1 d2
Eu recebo este erro:
device-mapper: reload ioctl on failed: Invalid argument
Failed to setup dm-crypt key mapping for device /dev/sdc1.
Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).
Failed to read from key storage.
Em /var/log/messages:
Feb 3 23:43:23 data kernel: device-mapper: table: 253:0: crypt: Device lookup failed
Feb 3 23:43:23 data kernel: device-mapper: ioctl: error adding target to table
Alguma ideia de como posso montar??
Solução encontrada.
O problema era que as unidades eram criptografadas com uma frase-chave interativa de cerca de 512 caracteres (copiar/colar de um arquivo de chave). Por alguma razão, o novo módulo do kernel no CentOS 6 não lia corretamente as chaves criptografadas de 512 caracteres quando criadas por uma versão mais antiga. Apenas parece afetar diferentes versões do kernel ou cryptsetup, já que uma chave de 512 caracteres funcionará quando criada e aberta no mesmo sistema.
Resumindo...
kernel -> cria chave luks de 512 caracteres -> pode abrir no mesmo kernel
kernel antigo -> criar chave luks de 512 caracteres -> não pode abrir no novo kernel
512 caracteres é muito longo. Não tenho certeza de qual é o limite, mas decidi alterar minhas chaves para 50 caracteres e funcionou.
Para resolver, reinstalei o antigo sistema operacional CentOS 5 que estava usando anteriormente, usei cryptsetup luksAddKey, inseri a chave original (longa) de 512 caracteres e criei uma nova chave de 50 caracteres.
Em seguida, reinstalei o CentOS 6 e montei com sucesso cada disco com cryptsetup luksOpen usando a chave de 50 caracteres (não a chave original).
Portanto, uma nota para alguém que recebe um erro semelhante. Se você criptografou suas unidades com uma chave superlonga, alterou para um novo kernel ou cryptsetup e obteve um erro de módulo do kernel ao tentar luksOpen seu volume criptografado, talvez seja necessário voltar para a versão antiga do kernel para usar luksAddKey e adicione chaves mais curtas antes de usar no novo kernel. Isso pode ser um bug ou alguma incompatibilidade nas chaves interativas máximas permitidas nos modelos de kernel usados pelo LUKS.