如何让 Ubuntu 20.04 在 Threadripper 3990X 上启动?

如何让 Ubuntu 20.04 在 Threadripper 3990X 上启动?

今天我尝试将 Ubuntu 19.10 升级到 20.04。重启后,它无法启动到内核 5.4.0-29-generic,甚至在恢复模式下也无法启动。我无法再启动到 5.3.0-51-generic,但我可以启动到其恢复模式。

这台机器有 Threadripper 3990X,几个月前我第一次安装它时无法启动 19.10。我忘了我必须采取什么措施才能让它工作,但我记得它涉及一些启动参数(我思考 mce=off),并且新的 GRUB 项具有相同的参数。

我有一个加密磁盘。在恢复模式下启动 5.3​​.0-51-generic 时,它会暂停并提示我输入密钥来解密磁盘,但在启动 5.4.0-29-generic 时,它不会提示我输入密钥。以下是我屏幕上显示的最后一条消息(“屏幕截图”这里):

mce: Unable to init MCE device (rc: -5)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.4.0-29-generic #33-Ubuntu
Hardware name: Micro-Star International Co., Ltd. MS-7C59/Creator TRX40 (MS-7C59), BIOS 1.20 01/07/2020

答案1

我在其他地方得到过这个建议:

内核崩溃的原因是无法挂载根文件系统。无法挂载根文件系统是因为它是加密的。没有 initrd 就无法解密。解决方法是:将 initrd 行添加到 5.4.0 的 grub 配置中。

我根据 5.3.0-51-generic 的条目,将这一行添加到 5.4.0-29-generic 的 GRUB 条目中:

initrd /initrd.img-5.4.0-29-generic

我收到文件丢失的错误消息。我在恢复模式下启动到 5.3.0-51-generic 并进入 root shell。我检查了/boot,并且initrd.img-5.3.0-51-genericinitrd.img-5.3.0-46-generic都在那里,但initrd.img-5.4.0-29-generic没有。我搜索了一下,发现了这个问题。基于此,我尝试了apt reinstall -f linux-image-5.4.0-29-generic,但它很快就失败了,并出现了一条错误消息(我忘了)并告诉我运行dpkg --configure -a。我照做了。它运行了一堆软件包,停下来进行手动干预,只是为了让我决定是否保留对所做的更改/etc/pulse/default.pa。我猜 Ubuntu 不知道如何处理升级到 20.04 所需的手动干预,只是在重新启动之前让软件包处于损坏状态。无论如何,在我做出决定之后,dpkg 继续运行,我看到了以下几行:

Processing triggers for linux-image-5.4.0-29-generic (5.4.0-29.33) ...
/etc/kernel/postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.4.0-29-generic
   ...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.4.0-29-generic

完成后,我退出 shell,恢复正常启动,一切正常!然后我重新启动,启动到 5.4.0-29-generic 内核,一切又恢复正常。

相关内容