Red Hat Training

A Red Hat training course is available for RHEL 8

22.6. 将当前安装的内核订阅到实时补丁流

内核补丁模块在 RPM 软件包中提供,具体取决于被修补的内核版本。每个 RPM 软件包将随着时间不断累积更新。

以下流程解释了如何订阅以后为给定内核的所有累积实时补丁更新。因为实时补丁是累计的,所以您无法选择为一个特定的内核部署哪些单独的补丁。

警告

红帽不支持任何适用于红帽支持的系统的第三方实时补丁。

先决条件

  • 根权限

流程

  1. 另外,还可检查您的内核版本:

    # uname -r
    4.18.0-94.el8.x86_64
  2. 搜索与内核版本对应的实时补丁软件包:

    # yum search $(uname -r)
  3. 安装实时补丁(live patching)软件包:

    # yum install "kpatch-patch = $(uname -r)"

    以上命令只为特定内核安装并应用最新的实时补丁。

    如果实时补丁软件包的版本是 1-1 或更高版本,则软件包将包含补丁模块。在这种情况下,内核会在安装 live patching 软件包期间自动修补。

    内核补丁模块也安装到 /var/lib/kpatch/ 目录中,供 systemd 系统和服务管理器以后重启时载入。

    注意

    当给定内核没有可用的实时补丁时,将安装空的实时补丁软件包。空的 live patching 软件包会有一个 0-0 的 kpatch_version-kpatch_release,如 kpatch-patch-4_18_0-94-0-0.el8.x86_64.rpm。空 RPM 安装会将系统订阅到以后为给定内核提供的所有实时补丁。

验证

  • 验证是否所有安装的内核都已打了补丁:

    # kpatch list
    Loaded patch modules:
    kpatch_4_18_0_94_1_1 [enabled]
    
    Installed patch modules:
    kpatch_4_18_0_94_1_1 (4.18.0-94.el8.x86_64)
    …​

    输出显示内核补丁模块已加载到内核,该内核现在已使用 kpatch-patch-4_18_0-94-1-1.el8.x86_64.rpm 软件包的最新修复打了补丁。

    注意

    输入 kpatch list 命令不会返回一个空的实时补丁软件包。使用 rpm -qa | grep kpatch 命令替代。

    # rpm -qa | grep kpatch
    kpatch-patch-4_18_0-477_21_1-0-0.el8_8.x86_64
    kpatch-dnf-0.9.7_0.4-2.el8.noarch
    kpatch-0.9.7-2.el8.noarch

其它资源