8.6. 自动订阅将来的内核到实时补丁流
您可以使用 kpatch-dnf
DNF 插件订阅系统,从而修复内核补丁模块(也称为内核实时补丁)提供的修复。该插件为系统当前使用的任何内核启用自动订阅,以及在以后安装地内核。
先决条件
- 您在系统上具有 root 权限。
流程
可选:检查所有安装的内核和您当前运行的内核:
dnf list installed | grep kernel uname -r
# dnf list installed | grep kernel Updating Subscription Management repositories. Installed Packages ... kernel-core.x86_64 6.12.0-55.9.1.el10 @beaker-BaseOS kernel-core.x86_64 6.12.0-55.9.1.el10 @@commandline ... # uname -r 6.12.0-55.9.1.el10_0.x86_64
Copy to Clipboard Copied! 安装
kpatch-dnf
插件:dnf install kpatch-dnf
# dnf install kpatch-dnf
Copy to Clipboard Copied! 启用自动订阅内核实时补丁:
dnf kpatch auto
# 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-6_12_0-1 x86_64 kpatch-patch-6_12_0-2 x86_64 Transaction Summary =================================================== Install 2 Packages …
Copy to Clipboard Copied! 这个命令订阅所有当前安装的内核,以接收内核实时补丁。命令还会为所有安装的内核安装并应用最新的累积实时补丁(如果有)。
当您更新内核时,会在新的内核安装过程中自动安装实时补丁。
内核补丁模块也安装到
/var/lib/kpatch/
目录中,它由systemd
系统和服务管理器以后重启时载入。注意当给定内核没有可用的实时补丁时,将安装空的实时补丁软件包。一个空的实时打补丁软件包会有一个 0-0 的 kpatch_version-kpatch_release,如
kpatch-patch-6_12_0-1-0-0.el10.x86_64.rpm
。空 RPM 安装会将系统订阅到以后为给定内核提供的所有实时补丁。
验证
验证是否所有安装的内核都已打了补丁:
kpatch list
# kpatch list Loaded patch modules: kpatch_6_12_0_2_0_1 [enabled] Installed patch modules: kpatch_6_12_0_1_0_1 (6.12.0-0.el10.x86_64) kpatch_6_12_0_2_0_1 (6.12.0-0.el10.x86_64)
Copy to Clipboard Copied! 输出显示,您正在运行的内核以及其它安装的内核已使用
kpatch-patch-6_12_0-1-0-1.el10.x86_64.rpm
和kpatch-patch-6_12_0-2-0-1.el10.x86_64.rpm
软件包中的修复打了补丁。注意输入
kpatch list
命令不会返回一个空的实时补丁软件包。使用rpm -qa | grep kpatch
命令替代。rpm -qa | grep kpatch
# rpm -qa | grep kpatch kpatch-dnf-0.9.7_0.4-4.el10.noarch kpatch-0.9.7-4.el10.noarch kpatch-patch-6_12_0_1-0-0.el10_0.x86_64
Copy to Clipboard Copied!