如何使用 grubby 更改 RHEL 8 和 9 的默認(rèn)內(nèi)核
通常 Linux 系統(tǒng)會(huì)默認(rèn)引導(dǎo)系統(tǒng)進(jìn)入最新安裝的內(nèi)核,并保留最新的 3 個(gè) Linux 內(nèi)核引導(dǎo)條目。
假設(shè)你已經(jīng)執(zhí)行了 yum update
,并且新的內(nèi)核作為更新的一部分已經(jīng)安裝了。這時(shí),由于這個(gè)新內(nèi)核與應(yīng)用程序不兼容,它會(huì)阻止應(yīng)用程序啟動(dòng)。
想要暫時(shí)解決這個(gè)問題,你應(yīng)該還是引導(dǎo)系統(tǒng)進(jìn)入舊內(nèi)核。
在本文中,我們將向您展示如何使用 grubby
工具將舊的內(nèi)核版本設(shè)置為 RHEL 8 和 RHEL 9 系統(tǒng)上的默認(rèn)版本。
grubby 是什么
grubby
是一個(gè)命令行工具,用于在多個(gè)架構(gòu)上更新和顯示引導(dǎo)加載配置文件的信息。
檢查當(dāng)前引導(dǎo)的內(nèi)核
你可以使用如下的 uname
命令來檢查當(dāng)前引導(dǎo)/加載的內(nèi)核。
# uname -r
4.18.0-477.13.1.el8_8.x86_64
列出默認(rèn)內(nèi)核
使用 grubby
驗(yàn)證默認(rèn)內(nèi)核版本,運(yùn)行以下命令:
# grubby --default-kernel
/boot/vmlinuz-4.18.0-477.13.1.el8_8.x86_64
要獲取當(dāng)前默認(rèn)內(nèi)核的索引號(hào),請運(yùn)行以下命令:
# grubby --default-index
0
檢查已安裝的內(nèi)核
要檢查已安裝的內(nèi)核的列表,請運(yùn)行以下命令:
我們來解釋以下的輸出信息。最新安裝的內(nèi)核的條目索引為 0
,接下來的 較舊的內(nèi)核 版本將會(huì)是 1
,第二個(gè)更舊的內(nèi)核版本將會(huì)是 2
,而 救援內(nèi)核 的條目索引將會(huì)是 3
。
# grubby --info=ALL | egrep -i 'index|title'
index=0
title="Red Hat Enterprise Linux (4.18.0-477.13.1.el8_8.x86_64) 8.8 (Ootpa)"
index=1
title="Red Hat Enterprise Linux (4.18.0-425.19.2.el8_7.x86_64) 8.7 (Ootpa)"
index=2
title="Red Hat Enterprise Linux (4.18.0-425.13.1.el8_7.x86_64) 8.7 (Ootpa)"
index=3
title="Red Hat Enterprise Linux (0-rescue-13iu76884ec5490puc67j8789s249b0c) 8.2 (Ootpa)"
更改默認(rèn)內(nèi)核引導(dǎo)條目
我們可以用兩種方式,使用 “內(nèi)核文件名”,或者使用 “內(nèi)核條目索引”。我們設(shè)置索引號(hào)為 1
的 4.18.0-425.19.2.el8_7.x86_64
為默認(rèn)內(nèi)核,以此滿足應(yīng)用程序的依賴關(guān)系。
語法:
# grubby --set-default [kernel-filename]
# grubby --set-default /boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64
或者
# grubby --set-default vmlinuz-4.18.0-425.19.2.el8_7.x86_64
使用內(nèi)核條目索引更改默認(rèn)的內(nèi)核引導(dǎo):
語法:
# grubby --set-default-index=[kernel-entry-index]
# grubby --set-default-index=1
重啟系統(tǒng)
重啟系統(tǒng),檢查舊內(nèi)核是否持久更改。
# reboot
或者
# init 6
驗(yàn)證更改
讓我們檢查一下在上一步中添加的內(nèi)核是否生效了。好了,按我們的預(yù)期使用了較舊的內(nèi)核 “N-1” 進(jìn)行引導(dǎo)了。
# uname -r
4.18.0-425.19.2.el8_7.x86_64
# grubby --default-kernel
/boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64
要檢查所有內(nèi)核的詳細(xì)信息,請運(yùn)行以下命令:
# grubby --info=ALL
總結(jié)
在本教程中,我們展示了如何使用 grubby
工具在 RHEL 8 和 RHEL 9 系統(tǒng)上將舊版本內(nèi)核設(shè)置為默認(rèn)。