系统更新后启动加密根分区失败

Tob*_*sPC 5 linux boot kernel encryption cryptsetup

我在启动 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).
Run Code Online (Sandbox Code Playgroud)

图片

Gil*_*il' 4

您的内核缺乏对aes-cbc-essiv:sha256. \xe2\x80\x9c分配加密 tfm\xe2\x80\x9d 时出错指的是内核的加密子系统:无法初始化某些必要的加密数据结构。您对加密算法的支持以模块形式提供,您有一个用于 AES 算法的模块和一个用于 SHA-256 算法的模块,但没有用于 CBC 模式的模块。如果没有它,您将无法安装加密设备。

\n\n

如果您编译了自己的内核,请确保启用所有必要的加密算法。如果您的内核来自您的发行版,这可能是您需要报告的错误。无论哪种情况,都必须有一个模块/lib/modules/2.6.32-5-amd64/kernel/crypto/cbc.ko。如果该模块存在,那么问题出在 initramfs 生成脚本上。

\n\n

除了cbc模块之外,您还需要其他内核组件将加密结合在一起。检查CRYPTO_MANAGER,CRYPTO_RNG2CRYPTO_BLKCIPHER2是否在您的内核配置中设置。Debian 的 initramfs 构建脚本应该处理这些,即使它们被编译为模块。由于加密子系统相当复杂,initramfs 脚本中可能缺少其他重要组件。如果您需要进一步的帮助,请通读bug #541835的讨论,并发布您的确切内核版本,以及您自己编译的内核配置。

\n\n

您需要从具有必要的加密支持的救援系统启动才能修复此问题。将根文件系统挂载chroot到其中, mount /boot,然后运行dpkg-reconfigure linux-image-\xe2\x80\xa6以重新生成 initramfs。

\n