如何修复 Debian 11 内核升级后无法启动的问题?

如何修复 Debian 11 内核升级后无法启动的问题?

我的 Debian 11 附带了 Linux 内核版本 5.10。我想要一个更新的版本,所以我从以下位置下载了 5.15这里,提取 tar 文件,复制现有配置,运行make menuconfig,然后运行make -j24​​,然后运行sudo make install​​。我也这么做了sudo update-grub。但现在它每次启动时都会执行此操作。如果我在 grub 中选择旧内核,它可以正常启动。

SPCP: Unexpected SPCR Access Width消息在 5.10 中仍然出现(我仍然可以启动),所以我认为这并不重要。这样做update-initramfs -u也没有帮助,它仍然给出这个错误。

我见过的大多数现有建议都说 UUID 是错误的,但旧内核可以正常启动,所以这让我认为启动分区没问题。如何修复此问题以便可以使用 5.15 内核成功启动?

这个问题表明这可能是由错误引起的,但我的内核版本(5.10,可以工作,5.15,失败)都比那里提到的新。

错误截图

答案1

我最终让它发挥作用。首先,我安装了依赖项:

$ sudo apt-get update && sudo apt-get install libncurses-dev flex bison libelf-dev bc dwarves binutils binutils-dev -y

接下来,我为内核创建一个文件夹 ( ~/kernel)。我进入该文件夹,下载了 5.15 内核的 tarball:

$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.13.tar.xz

然后我进入 tarball ( ) 中的文件夹cd linux-5.15.13/。我从 5.10 内核中获取了旧配置并重新使用它:

$ cat /boot/config-5.10.0-10-amd64 > .config

运行菜单配置:

$ make menuconfig -j24

我下去并禁用Enable loadable module support(使用箭头键导航到它,然后按,这样旁边的框中就Space不再有)。*另外,导航到Cryptographics API -> Certificates for Signature Checking,并在显示 的位置Additional X.509 keys for default system keyring确保其为空。默认情况下,对我来说,它说debian/certs/debian-uefi-certs.pem。确保该字段为空。然后,保存(使用文件名.config)并退出该menuconfig工具。

然后我编译了内核。请记住使用 来执行此操作sudo。不然以后就不行了。

$ sudo make -j24

然后安装它(记住sudo也用于此目的):

$ sudo make install -j24

它可能会给出一些警告,但您可以忽略它们。现在就做吧sudo update-grub。重启一下,就可以了!


分辨率发生了变化,所以我最终将其放在文件末尾/etc/default/grub来修复它。请注意,模式 ( 0x031b) 对您来说可能会有所不同,因此请使用它sudo hwinfo --framebuffer来确定分辨率选项。您可能需要执行以下操作sudo apt-get update && sudo apt-get install hwinfo才能安装它。

GRUB_GFXMODE=0x031b,1280x1024x24,auto
GRUB_GFXPAYLOAD_LINUX=keep

如果您更改了如上所示的分辨率,请sudo update-grub重新启动以使用这些新设置。

相关内容