7.7. 自动订阅将来的内核到实时补丁流
您可以使用 kpatch-dnf
DNF 插件订阅系统,从而修复内核补丁模块(也称为内核实时补丁)提供的修复。该插件为系统当前使用的任何内核启用自动订阅,以及在以后安装地内核。
先决条件
- 有 root 权限。
流程
(可选)检查所有安装的内核和您当前运行的内核:
# dnf list installed | grep kernel Updating Subscription Management repositories. Installed Packages ... kernel-core.x86_64 5.14.0-1.el9 @beaker-BaseOS kernel-core.x86_64 5.14.0-2.el9 @@commandline ... # uname -r 5.14.0-2.el9.x86_64
安装
kpatch-dnf
插件:# dnf install kpatch-dnf
启用自动订阅内核实时补丁:
# dnf kpatch auto Updating Subscription Management repositories. Last metadata expiration check: 1:38:21 ago on Fri 17 Sep 2021 07:29:53 AM EDT. Dependencies resolved. ================================================== Package Architecture ================================================== Installing: kpatch-patch-5_14_0-1 x86_64 kpatch-patch-5_14_0-2 x86_64 Transaction Summary =================================================== Install 2 Packages …
这个命令订阅所有当前安装的内核,以接收内核实时补丁。命令还会为所有安装的内核安装并应用最新的累积实时补丁(如果有)。
将来,当您更新内核时,将在新的内核安装过程中自动安装实时补丁。
内核补丁模块也安装到
/var/lib/kpatch/
目录中,供systemd
系统和服务管理器以后重启时载入。注意当给定内核没有可用的实时补丁时,将安装空的实时补丁软件包。空的 live patching 软件包会有一个 0-0 的 kpatch_version-kpatch_release,如
kpatch-patch-5_14_0-1-0-0.el9.x86_64.rpm
。空 RPM 安装会将系统订阅到给定内核将来的实时补丁。
验证步骤
- 验证是否所有安装的内核都已打了补丁:
# kpatch list
Loaded patch modules:
kpatch_5_14_0_2_0_1 [enabled]
Installed patch modules:
kpatch_5_14_0_1_0_1 (5.14.0-1.el9.x86_64)
kpatch_5_14_0_2_0_1 (5.14.0-2.el9.x86_64)
输出显示您正在运行的内核以及其它安装的内核分别通过 kpatch-patch-5_14_0-1-0-1.el9.x86_64.rpm
和 kpatch-patch-5_14_0-2-0-1.el9.x86_64.rpm
软件包进行修复。
输入 kpatch list
命令不会返回空的实时修补软件包。改为使用 rpm -qa | grep kpatch
命令。
# rpm -qa | grep kpatch
kpatch-dnf-0.4-3.el9.noarch
kpatch-0.9.7-2.el9.noarch
kpatch-patch-5_14_0-284_25_1-0-0.el9_2.x86_64
其他资源
-
kpatch(1)
和dnf-kpatch(8)手册页