7.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
    …​

    このコマンドは、現在インストールされているすべてのカーネルをサブスクライブして、カーネルライブパッチを受け取ります。このコマンドは、インストールされている全カーネルに、最新の累積パッチ (存在する場合) をインストールして適用します。

    今後、カーネルを更新すると、新しいカーネルのインストールプロセス中にライブパッチが自動的にインストールされます。

    カーネルパッチモジュールは、今後の再起動時に systemd システムおよびサービスマネージャーにより読み込まれる /var/lib/kpatch/ ディレクトリーにもインストールされます。

    注記

    指定のカーネルに利用可能なライブパッチがない場合は、空のライブパッチパッケージがインストールされます。空のライブパッチパッケージには、kpatch_version-kpatch_release 0-0 (例: 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 パッケージそれぞれからの修正が適用されたことが分かります。

    注記

    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) の man ページ