內(nèi)核熱補(bǔ)丁操作說明
您可以通過本文了解獲取Alibaba Cloud Linux內(nèi)核熱補(bǔ)丁的方式,以及如何在Alibaba Cloud Linux實例內(nèi)啟用、禁用內(nèi)核熱補(bǔ)丁或禁用kpatch系統(tǒng)服務(wù)。
背景信息
內(nèi)核熱補(bǔ)丁的相關(guān)操作說明如下:
如何獲取內(nèi)核熱補(bǔ)丁以及如何查看熱補(bǔ)丁的具體信息,請參見獲取內(nèi)核熱補(bǔ)丁。
如果您需要在操作系統(tǒng)中啟用內(nèi)核熱補(bǔ)丁,具體操作,請參見啟用內(nèi)核熱補(bǔ)丁。
如果操作系統(tǒng)中已啟用的內(nèi)核熱補(bǔ)丁存在問題,您可以禁用該補(bǔ)丁。具體操作,請參見禁用內(nèi)核熱補(bǔ)丁。
如果操作系統(tǒng)中已啟用了內(nèi)核熱補(bǔ)丁,但您需要在重啟服務(wù)器時,使操作系統(tǒng)不自動加載所有的熱補(bǔ)丁的內(nèi)核模塊,您可以禁用kpatch系統(tǒng)服務(wù)。具體操作,請參見禁用kpatch系統(tǒng)服務(wù)。
獲取內(nèi)核熱補(bǔ)丁
每一個內(nèi)核熱補(bǔ)丁均通過RPM包發(fā)布,您可以通過以下任一方式獲取熱補(bǔ)丁的安裝包:
Alibaba Cloud Linux CVE公告平臺
訪問CVE公告平臺。
所有已發(fā)布的熱補(bǔ)丁都將在CVE公告平臺上公示,您可以訪問不同發(fā)行版本的CVE公告平臺進(jìn)行查看。
單擊Advisory ID列名,重新排序列表內(nèi)的信息,將熱補(bǔ)丁的相關(guān)更新展示在最上方。
以
HOTFIX
開頭的Advisory ID為內(nèi)核熱補(bǔ)丁,重新排序后如下圖所示:關(guān)于CVE公告平臺中的信息說明,如下表所示。
列信息
說明
Affected Packages
表示內(nèi)核熱補(bǔ)丁的具體包名。名稱以
kernel-hotfix-
為前綴,以Alibaba Cloud Linux操作系統(tǒng)的子版本號信息為后綴。您可以通過名稱后綴確認(rèn)該熱補(bǔ)丁是否適用于您的Alibaba Cloud Linux操作系統(tǒng)。例如:
Affected Packages的信息為
kernel-hotfix-5928799-5.al8
。您在Alibaba Cloud Linux 3操作系統(tǒng)中運(yùn)行uname -r命令的回顯結(jié)果為
5.10.23-5.al8.x86_64
。
Alibaba Cloud Linux 3子版本號信息均為
5.al8
,則表示該熱補(bǔ)丁適用于您的Alibaba Cloud Linux 3操作系統(tǒng)。說明Alibaba Cloud Linux 2操作系統(tǒng)的版本號均為al7。
Advisory ID
表示熱補(bǔ)丁的發(fā)布序號。分為安全漏洞(CVE)和錯誤修復(fù)(Bugfix)兩類熱補(bǔ)丁,命名有如下區(qū)別:
安全漏洞補(bǔ)丁以
HOTFIX-SA-
為前綴。錯誤修復(fù)補(bǔ)丁以
HOTFIX-BA-
為前綴。
您可以單擊熱補(bǔ)丁的Advisory ID查看補(bǔ)丁的詳細(xì)信息,并支持下載熱補(bǔ)丁的RPM包。
CVE ID(s)
表示具體修復(fù)的安全漏洞(CVE)ID號。如果是錯誤修復(fù)熱補(bǔ)丁,則CVE ID(s)列的內(nèi)容為空。
單擊Advisory ID列下對應(yīng)的熱補(bǔ)丁發(fā)布序號,進(jìn)入熱補(bǔ)丁詳情頁。
在該頁面,您可以查看熱補(bǔ)丁的詳細(xì)信息,以及熱補(bǔ)丁RPM包對應(yīng)的名稱。
補(bǔ)丁RPM包的格式為
kernel-hotfix-{hotfix_id}-{操作系統(tǒng)子版本號}-{hotfix版本號}-{hotfix制作時間戳}.{操作系統(tǒng)大版本號}.{體系架構(gòu)}.rpm
。例如上圖所示的格式RPM包名稱說明:
5928799:熱補(bǔ)丁的ID。
5.al8:匹配的Alibaba Cloud Linux 3子版本號,您的Alibaba Cloud Linux 3操作系統(tǒng)的內(nèi)核版本需要與該版本一致,才可以使用該熱補(bǔ)丁。操作系統(tǒng)的內(nèi)核版本信息可以在ECS實例內(nèi)運(yùn)行uname -r查看。
1.0:熱補(bǔ)丁的RPM包版本號。
20210720165816:熱補(bǔ)丁的制作時間為2021年07月20日16時58分16秒。部分歷史版本的熱補(bǔ)丁中該字段可能為無效的值。
al8:匹配的Alibaba Cloud Linux 3版本號。Alibaba Cloud Linux 3操作系統(tǒng)的版本號均為al8。
說明Alibaba Cloud Linux 2操作系統(tǒng)的版本號均為al7。
x86_64:適用的操作系統(tǒng)的體系架構(gòu)為x86_64。
yum源
您可以通過yum list命令查詢相應(yīng)的內(nèi)核熱補(bǔ)丁安裝包。具體操作,請參見啟用內(nèi)核熱補(bǔ)丁。
啟用內(nèi)核熱補(bǔ)丁
遠(yuǎn)程連接需要熱補(bǔ)丁的Alibaba Cloud Linux實例。
具體操作,請參見連接方式概述。
運(yùn)行以下命令,安裝kpatch工具。
sudo yum -y install kpatch
安裝熱補(bǔ)丁。
運(yùn)行以下命令,查看操作系統(tǒng)的內(nèi)核版本信息。
sudo uname -r
本示例中,查詢結(jié)果如下所示。可以確認(rèn)該操作系統(tǒng)的子版本號為
5.al8
。5.10.23-5.al8.x86_64
使用yum list命令查詢適用于該操作系統(tǒng)的內(nèi)核熱補(bǔ)丁。
命令格式為:
sudo yum list | grep "kernel-hotfix" | grep "<操作系統(tǒng)的子版本號>"
本示例中,操作系統(tǒng)的子版本號為
5.al8
,需要運(yùn)行以下命令:sudo yum list | grep "kernel-hotfix" | grep "5.al8"
回顯結(jié)果示例,如下所示:
kernel-hotfix-5928799-5.al8.x86_64 1.0-20210720165816.al8 alinux3-plus kernel-hotfix-5956925-5.al8.x86_64 1.0-20210726171200.al8 alinux3-plus
安裝指定的熱補(bǔ)丁。
本示例中,以
kernel-hotfix-5928799-5.al8.x86_64
為例,說明如何通過yum命令安裝熱補(bǔ)丁。說明通過yum安裝熱補(bǔ)丁時,不需要指定RPM包文件的后綴
.rpm
。sudo yum -y install kernel-hotfix-5928799-5.al8.x86_64
運(yùn)行以下命令,通過kpatch工具查看系統(tǒng)補(bǔ)丁的狀態(tài)。
sudo kpatch list
回顯結(jié)果如下所示,表示內(nèi)核熱補(bǔ)丁安裝成功且已經(jīng)生效。
Loaded patch modules: kpatch_5928799 [enabled] Installed patch modules: kpatch_5928799 (5.10.23-5.al8.x86_64)
禁用內(nèi)核熱補(bǔ)丁
如果您已啟用的熱補(bǔ)丁存在問題(例如熱補(bǔ)丁未生效),可以通過以下步驟禁用內(nèi)核熱補(bǔ)丁以解決問題。本示例將使用yum命令完成操作。
運(yùn)行以下命令,查看可禁用的熱補(bǔ)丁包。
sudo yum list installed | grep kernel-hotfix
回顯結(jié)果示例,如下所示:
kernel-hotfix-5928799-5.al8.x86_64 1.0-20210720165816.al8 @alinux3-plus
運(yùn)行以下命令,刪除存在問題的熱補(bǔ)丁包。
本示例中,以
kernel-hotfix-5928799-5.al8.x86_64
為例。sudo yum -y remove kernel-hotfix-5928799-5.al8.x86_64
運(yùn)行以下命令,確認(rèn)存在問題的熱補(bǔ)丁包已經(jīng)被刪除。
sudo kpatch list
回顯結(jié)果如下所示,表示沒有已安裝并生效的熱補(bǔ)丁。
Loaded patch modules: Installed patch modules:
禁用kpatch系統(tǒng)服務(wù)
如果您的熱補(bǔ)丁已安裝并且已生效,但您需要在重啟服務(wù)器時,使操作系統(tǒng)不自動加載所有的熱補(bǔ)丁的內(nèi)核模塊,您可以通過以下操作步驟禁用kpatch系統(tǒng)服務(wù)。
運(yùn)行以下命令,查看kpatch系統(tǒng)服務(wù)是否已啟動。
sudo systemctl is-enabled kpatch.service
回顯結(jié)果為
enabled
,表示kpatch系統(tǒng)服務(wù)已啟動。運(yùn)行以下命令,禁用kpatch系統(tǒng)服務(wù)。
sudo systemctl disable kpatch.service
回顯結(jié)果如下所示,表示已禁用kpatch系統(tǒng)服務(wù)。
Removed symlink /etc/systemd/system/multi-user.target.wants/kpatch.service.
運(yùn)行以下命令,查看kpatch系統(tǒng)服務(wù)狀態(tài)。
sudo systemctl status kpatch.service
回顯結(jié)果如下所示,表示kpatch系統(tǒng)服務(wù)已禁用。
kpatch.service - "Apply kpatch kernel patches" Loaded: loaded (/usr/lib/systemd/system/kpatch.service; disabled; vendor preset: disabled)
說明如有需要,您可以運(yùn)行
sudo systemctl enable kpatch.service
命令,重新啟用kpatch系統(tǒng)服務(wù)。