我正在运行带有 LVM/加密的 Ubuntu 22.04。今天早上,正常的启动顺序停止工作:它没有提示我输入加密密码,而是进入 shell 并显示以下错误:警告!/dev/mapper/vgubuntu-root 不存在。进入 shell!
我之前在错误:vgubuntu-root 不存在。转到 shell
那里建议的解决方法(从 shell 提示符手动解密驱动器)确实有效,但不是持久的。(还请注意,它会转到正常提示符,要求再次解密驱动器。)
我猜是某些东西发生了变化(由于更新?)导致 grub 跳过了驱动器解密步骤,但链接的问题中没有提出永久解决方案。我尝试使用 update-grub 和 grub-repair 重新创建 grub,但没有成功。有人知道我如何恢复旧的启动顺序吗?
附加:根据下面的建议,我尝试启动到较旧的内核;没有成功。可用的内核是 5.15.0-43、-58 和 -60。在这三种情况下,我都会进入 shell,然后才被要求输入加密密码。
答案1
感谢所有提供类似问题线索的人,我得以追踪此问题。只需更新 /etc/crypttab 即可修复此问题。
我的加密分区在 sda3 上,但是因为我从具有不同分区方案的先前配置中复制了数据,所以我的 /etc/crypttab 看起来像这样:
sda6_crypt UUID={uuid] none luks,丢弃
似乎在生成 initramfs 映像时(例如安装新内核时,但也包括其他更新),/etc/crypttab 中的命名与实际分区之间的不匹配会导致错误(当然我没有看到),以至于 initramfs 中的文件(位于 /cryptroot/crypttab)为空(零字节)。缺少文件是导致启动过程挂起的原因。将 /etc/crypttab 更正为:
sda3_crypt UUID={uuid} none luks,丢弃
解决了问题。当然,如果你的 initramfs 已经坏了,就需要重新生成:
sudo update-initramfs -u
但未来的更新应该可以正常进行。