Tenho um problema ao inicializar meu servidor Debian Linux. Após uma atualização do sistema, o GRUB carrega o initrd e o sistema deveria pedir a senha, mas isso não acontece. Em vez disso, sou levado ao BusyBox. Depois de tentar montar o volume criptografado manualmente com cryptsetup luksOpen
, recebo este erro:
device-mapper: table: 254:0: crypt: Error allocating crypto tfm
device-mapper: reload ioctl failed: Invalid argument
Failed to setup dm-crypt key mapping for device /dev/sda3
Check that the kernel supports aes-cbc-essiv:sha256 cipher (check syslog for more info).
Responder1
Seu kernel não tem suporte para aes-cbc-essiv:sha256
. “Erro ao alocar criptografia tfm” refere-se ao subsistema criptográfico do kernel: alguma estrutura de dados criptográficos necessária não pôde ser inicializada. Seu suporte para algoritmos criptográficos vem em módulos, e você tem um módulo para o algoritmo AES e um módulo para o algoritmo SHA-256, mas nenhum módulo para o modo CBC. Você não conseguirá montar seu dispositivo criptografado sem ele.
Se você compilou seu próprio kernel, certifique-se de habilitar todos os algoritmos de criptografia necessários. Se o seu kernel vier da sua distribuição, isso pode ser um bug que você precisa relatar. Em ambos os casos, deve haver um módulo /lib/modules/2.6.32-5-amd64/kernel/crypto/cbc.ko
. Se o módulo existir, então o seu problema está no script de geração do initramfs.
Além do cbc
módulo, você precisa de outros componentes do kernel para unir a criptografia. Verifique isso CRYPTO_MANAGER
e CRYPTO_RNG2
está CRYPTO_BLKCIPHER2
definido na configuração do kernel. Script de construção initramfs do Debiandeveria cuidar dissomesmo que sejam compilados como módulos. Como o subsistema criptográfico é bastante complexo, pode haver outros componentes vitais que estão faltando no script initramfs. Se precisar de mais ajuda, leia a discussão deerro #541835e poste sua versão exata do kernel, bem como a configuração do kernel, se você mesmo o compilou.
Você precisará inicializar a partir de um sistema de recuperação com o suporte criptográfico necessário para reparar isso. Monte seu sistema de arquivos raiz chroot
nele, monte /boot
e execute dpkg-reconfigure linux-image-…
para regenerar o initramfs.