Menu Close

15.7. 自动订阅将来的内核到实时补丁流

您可以使用 kpatch-dnf DNF 插件订阅系统,从而修复内核补丁模块(也称为内核实时补丁)提供的修复。该插件为系统当前使用的任何内核启用自动订阅,以及在以后安装地内核。

先决条件

  • 有 root 权限。

步骤

  1. (可选)检查所有安装的内核和您当前运行的内核:

    # 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
  2. 安装 kpatch-dnf 插件:

    # dnf install kpatch-dnf
  3. 启用自动订阅内核实时补丁:

    # 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.rpmkpatch-patch-5_14_0-2-0-1.el9.x86_64.rpm 软件包进行修复。

其他资源