使用 LUKS 更新内核后,Ubuntu 21.04 挂在“正在加载初始 ramdisk”

Ber*_*ded 8 ubuntu initrd linux-kernel luks ramdisk

我已经从全新安装中复制了两次 - 设置最初工作正常,但是当应用内核更新时,系统在重新启动时挂起。选择 GRUB 提供的旧内核效果很好。

系统详细信息:

  • XPS 13 9380
  • i5-8265U
  • BIOS 版本 1.15.0
  • 微代码版本报告为“0xea”。apt list 的输出 --installed | grep 微码:intel-microcode/hirsute-updates,hirsute-security,现在 3.20210608.0ubuntu0.21.04.1 amd64 [已安装,自动]
  • 我认为安全启动设置为审核模式。
  • Ubuntu 毛毛(如上所述)
  • 从 LiveUSB 安装在 LUKS 分区上
  • 目前使用的是 5.11.0-37-generic,但我也使用较旧的 5.11 内核进行了复制。绝对似乎是内核版本的变化而不是版本本身。5.11.0-36-generic 启动,不需要异常的 GRUB 选项。

我尝试过的 GRUB 设置肯定不起作用

  • dis_ucode_ldr 和 Mitigations=off (一起或单独);
  • 无模式集
  • 消除安静的飞溅
  • 恢复
  • 调试(输出没有变化)
  • “initrd /initrd.img-5.11.0-37-generic”行后的任何形式的 echo

及其所有排列。

initrd.img 和 initrd.img.old(我可以启动)文件的 lsinitramfs 不会弹出任何明显的候选者。

它似乎可能与微代码或 cryptsetup 相关,但由于调试没有提供任何信息,并且一旦我用 36 启动,dmesg 可能会报告正常启动,所以我有点不知所措。

有什么想法吗?似乎存在相关的错误,但没有完全重现。

小智 6

解决方法:使用

MODULES=dep
Run Code Online (Sandbox Code Playgroud)

在里面/etc/initramfs-tools/initramfs.conf

并重新生成(替换5.11.0-37-generic为您正在使用的内核版本):

update-initramfs -c -k  5.11.0-37-generic
Run Code Online (Sandbox Code Playgroud)

我遇到了与OP相同的问题。几天前更新并重新启动后,系统挂起“正在加载初始 ramdisk...”,并且没有其他输出。

我的硬件几乎相同,但 CPU 不同:i7-8565U。与 OP 中列出的软件配置相同。

另一篇文章提出了以下建议:

该问题源于initrd.img生成的大文件(~100MB),MODULES=most由于大小限制而无法加载。MODULES=dep这可以通过切换到生成initrd.img大约 55MB 的文件来解决。