如何修復核心升級後無法啟動的 Debian 11?
我的 Debian 11 附帶了 5.10 版的 Linux 核心。我想要一個更新的,所以我從這裡下載 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,失敗)都比那裡提到的要新。
我最終讓它工作了。首先,我安裝了依賴項:
$ 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
並重新啟動以使用這些新設置。