У меня проблема с загрузкой моего сервера Debian Linux. После обновления системы GRUB загружает initrd, и система должна запросить пароль, но этого не происходит. Вместо этого я попадаю в BusyBox. После попытки вручную смонтировать зашифрованный том с помощью cryptsetup luksOpen
, я получаю эту ошибку:
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).
решение1
В вашем ядре отсутствует поддержка aes-cbc-essiv:sha256
. «Ошибка выделения криптографического tfm» относится к криптографической подсистеме ядра: не удалось инициализировать некоторую необходимую криптографическую структуру данных. Ваша поддержка криптографических алгоритмов осуществляется в модулях, и у вас есть модуль для алгоритма AES и модуль для алгоритма SHA-256, но нет модуля для режима CBC. Без него вы не сможете смонтировать зашифрованное устройство.
Если вы скомпилировали свое собственное ядро, убедитесь, что включены все необходимые криптографические алгоритмы. Если ваше ядро взято из вашего дистрибутива, это может быть ошибкой, о которой вам нужно сообщить. В любом случае должен быть модуль /lib/modules/2.6.32-5-amd64/kernel/crypto/cbc.ko
. Если модуль существует, то ваша проблема связана со скриптом генерации initramfs.
В дополнение к cbc
модулю вам нужны другие компоненты ядра, чтобы связать криптографию вместе. Проверьте CRYPTO_MANAGER
, что CRYPTO_RNG2
и CRYPTO_BLKCIPHER2
установлены в конфигурации ядра. Скрипт сборки Debian initramfsследует позаботиться об этомдаже если они скомпилированы как модули. Поскольку криптографическая подсистема довольно сложна, в скрипте initramfs могут отсутствовать другие важные компоненты. Если вам нужна дополнительная помощь, прочитайте обсуждениеошибка №541835и опубликуйте точную версию вашего ядра, а также конфигурацию ядра, если вы скомпилировали его самостоятельно.
Вам нужно будет загрузиться с аварийной системы с необходимой поддержкой криптографии, чтобы исправить это. Смонтируйте chroot
в нее корневую файловую систему, смонтируйте /boot
и запустите dpkg-reconfigure linux-image-…
для повторной генерации initramfs.