Filesystems

如何修復核心升級後無法啟動的 Debian 11?

  • January 11, 2022

我的 Debian 11 附帶了 5.10 版的 Linux 核心。我想要一個更新的,所以我從這裡下載 5.15 ,解壓縮 tar 文件,複製現有配置,執行make menuconfig,然後make -j24sudo make install. 我也做了sudo update-grub。但是現在它在每次啟動時都會這樣做。如果我在 grub 中選擇舊核心,它可以正常啟動。

SPCP: Unexpected SPCR Access Width消息仍然發生在 5.10(我仍然可以啟動),所以我認為這並不重要。這樣做update-initramfs -u也沒有幫助,它仍然會給出這個錯誤。

我看到的大多數現有建議都說 UUID 是錯誤的,但是舊核心可以正常啟動,所以這讓我認為啟動分區很好。我該如何解決這個問題,以便我可以使用 5.15 核心成功啟動?

這個問題表明它可能是由錯誤引起的,但我的核心版本(5.10,可以工作,5.15,失敗)都比那裡提到的要新。

錯誤截圖

我最終讓它工作了。首先,我安裝了依賴項:

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

接下來,我通過為核心 ( ~/kernel) 創建一個文件夾。我進入文件夾,下載了 5.15 核心的壓縮包:

$ 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並重新啟動以使用這些新設置。

引用自:https://unix.stackexchange.com/questions/685843