Linux

Grub 的預設核心優先級

  • October 28, 2021

我最近在我的一台機器上安裝了 Arch。我在 UEFI 模式下安裝了 grub。在設置 Arch 時,我已經安裝了linux-lts. 我用了幾天,後來決定同時使用 LTS 和正常核心。所以,我安裝了linux(正常)包。安裝後,我假設 grub 引導到最新的linux. 但是,它繼續啟動到較舊的linux-lts. 我嘗試重新生成 initramfs 並更新 grub 幾次,但沒有成功。為了讓 grub 在最新版本中啟動linux,我必須使用grub-customizer.

這是 grub 的正常行為嗎?我在某處讀過 grub 如果找到並直接在其中啟動,它實際上會優先考慮最新的核心。那麼,就我而言,為什麼會有所不同?我是否配置錯誤?

我發現了 grub 的預設核心優先級的預期行為。正如我在問題中所說,grub 實際上能夠檢測核心的更大版本號並將其設置為預設核心。當grub-mkconfig被呼叫時,它會在/etc/grub.d. 腳本之一是/etc/grub.d/10_linux. 該腳本具有version_find_latest幫助實際檢測新版本的功能。更多資訊在這裡:https ://askubuntu.com/questions/1254758/how-does-update-grub-decide-which-kernel-to-set-as-the-default

不過,我無法弄清楚我的 Arch 系統出了什麼問題。由於我的錯誤導致了一些嚴重錯誤,我不得不重新安裝系統,後來我切換了我的發行版。

但是,由於 Arch 使用相同的命令grub-mkconfig並且在 中也有相同的腳本/etc/grub.d,它應該顯示相同的行為。

見:https ://archlinux.org/packages/core/x86_64/grub/

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