升级至 16.04 中断后 Cryptsetup 失败

升级至 16.04 中断后 Cryptsetup 失败

我的电脑在从 14.04 升级到 16.04 时中断了。之后我重新启动并运行

sudo dpkg --configure -a

然后再次重新启动。现在,当启动时提示我输入密码时,我输入的任何内容都不起作用。我检查了大写锁定和数字锁定,并仔细输入,从未乱用过不同的键盘。事实上,导航到 GRUB 并在那里输入,我输入的所有内容看起来都符合预期。

尝试从恢复模式运行会导致以下交换:

Please unlock disk sda5_crypt:

(我输入密码)

Failed to setup dm-crypt key mapping for device /dev/disk/by-uuid/[some numbers]

Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).

cryptsetup: cryptsetup failed, bad password or options?

我不清楚如果无法访问正常命令行,如何修复这个(明显的)内核问题。

答案1

虽然这并不能完全解决所提出的问题,但我最终从 sda5_crypt 工作的旧内核启动。

答案2

当我从 Ubuntu 14.04LTS 运行 cryptsetup --help 时,它在常用选项的末尾显示以下内容:-

默认编译的密钥和密码参数:
        最大密钥文件大小:8192kB,最大交互式密码长度 512(字符)
LUKS 的默认 PBKDF2 迭代时间:1000(毫秒)

默认编译的设备密码参数:
        loop-AES: aes,密钥 256 位
        普通:aes-cbc-essiv:sha256,密钥:256 位,密码哈希:ripemd160
        LUKS1:aes-xts-plain64,密钥:256 位,LUKS 标头哈希:sha1,RNG:/dev/urandom

您可能需要检查内核中是否已加载 aes 模块,使用lsmod | grep aes

http://crunchbang.org/forums/viewtopic.php?id=37276当您提到的错误出现时,有关于需要哪些模块的有用信息。

在我的内核中,模块 kernel/arch/x86/crypto/aes-x86_64.ko 似乎提供了它。它看起来像是内核的标准部分,所以我猜它只是默认不加载。我的机器上的 /proc/modules 中的依赖关系树显示 aes_x86_64 => aesni_intel,而 aesni_intel 似乎没有任何依赖关系,因此应该很容易加载。

希望有帮助

相关内容