Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

6.8. カーネルライブパッチの無効化

システム管理者が、Red Hat Enterprise Linux カーネルライブパッチソリューション関連の不足の悪影響に遭遇した場合は、このメカニズムを無効化する選択肢があります。以下のセクションでは、ライブパッチソリューションを無効にする方法を説明します。

重要

現在、Red Hat はシステムの再起動なしで、ライブパッチを元に戻すことはサポートしていません。ご不明な点がございましたら、サポートチームまでお問い合わせください。

6.8.1. ライブパッチパッケージの削除

以下の手順は、ライブパッチパッケージを削除して、Red Hat Enterprise Linux カーネルのライブパッチソリューションを無効にする方法を説明します。

前提条件
  • root 権限
  • ライブパッチパッケージがインストールされている。
手順
  1. ライブパッチパッケージを選択します。

    # yum list installed | grep kpatch-patch
    kpatch-patch-3_10_0-1062.x86_64        1-1.el7        @@commandline
    …​

    上記の出力例は、インストールしたライブパッチパッケージを一覧表示します。

  2. ライブパッチパッケージを削除します。

    # yum remove kpatch-patch-3_10_0-1062.x86_64

    ライブパッチパッケージが削除されると、カーネルは次回の再起動までパッチが当てられたままになりますが、カーネルパッチモジュールはディスクから削除されます。次回の再起動後に、この一致するカーネルにはパッチが適用されません。

  3. システムを再起動します。
  4. ライブパッチパッケージが削除されたことを確認します。

    # yum list installed | grep kpatch-patch

    パッケージが正常に削除された場合、このコマンドでは何も出力されません。

  5. 必要に応じて、カーネルのライブパッチソリューションが無効になっていることを確認します。

    # kpatch list
    Loaded patch modules:

    この出力例では、現在読み込まれているパッチモジュールがないため、カーネルにパッチが適用されておらず、ライブパッチソリューションがアクティブでないことが示されています。

関連情報
  • kpatch コマンドラインユーティリティーの詳細は、man ページの kpatch(1) を参照してください。
  • ソフトウェアパッケージの使用方法は、システム管理者のガイド の関連のセクションを参照してください。

6.8.2. カーネルパッチモジュールのアンインストール

以下の手順では、Red Hat Enterprise Linux カーネルライブパッチソリューションが、後続のブートでカーネルパッチモジュールを適用しないようにする方法を説明します。

前提条件
  • root 権限
  • ライブパッチパッケージがインストールされている。
  • カーネルパッチモジュールがインストールされ、ロードされている。
手順
  1. カーネルパッチモジュールを選択します。

    # kpatch list
    Loaded patch modules:
    kpatch_3_10_0_1062_1_1 [enabled]
    
    Installed patch modules:
    kpatch_3_10_0_1062_1_1 (3.10.0-1062.el7.x86_64)
    …​
  2. 選択したカーネルパッチモジュールをアンインストールします。

    # kpatch uninstall kpatch_3_10_0_1062_1_1
    uninstalling kpatch_3_10_0_1062_1_1 (3.10.0-1062.el7.x86_64)
    • アンインストールしたカーネルモジュールが読み込まれていることに注意してください。

      # kpatch list
      Loaded patch modules:
      kpatch_3_10_0_1062_1_1 [enabled]
      
      Installed patch modules:
      <NO_RESULT>

      選択したモジュールをアンインストールすると、カーネルは次回の再起動までパッチが当てられますが、カーネルパッチモジュールはディスクから削除されます。

  3. システムを再起動します。
  4. 必要に応じて、カーネルパッチモジュールがアンインストールされていることを確認します。

    # kpatch list
    Loaded patch modules:

    上記の出力例では、ロードまたはインストールされたカーネルパッチモジュールが表示されていません。したがって、カーネルにパッチが適用されておらず、カーネルのライブパッチソリューションはアクティブではありません。

関連情報
  • kpatch コマンドラインユーティリティーの詳細は、man ページの kpatch(1) を参照してください。

6.8.3. kpatch.service の無効化

以下の手順では、Red Hat Enterprise Linux カーネルライブパッチソリューションが、後続のブートでカーネルパッチモジュールをグローバルに適用しないようにする方法を説明します。

前提条件
  • root 権限
  • ライブパッチパッケージがインストールされている。
  • カーネルパッチモジュールがインストールされ、ロードされている。
手順
  1. kpatch.service が有効化されていることを確認します。

    # systemctl is-enabled kpatch.service
    enabled
  2. kpatch.service を無効にします。

    # systemctl disable kpatch.service
    Removed /etc/systemd/system/multi-user.target.wants/kpatch.service.
    • 適用されたカーネルモジュールが依然としてロードされていることに注意してください。

      # kpatch list
      Loaded patch modules:
      kpatch_3_10_0_1062_1_1 [enabled]
      
      Installed patch modules:
      kpatch_3_10_0_1062_1_1 (3.10.0-1062.el7.x86_64)
  3. システムを再起動します。
  4. 必要に応じて、kpatch.service のステータスを確認します。

    # systemctl status kpatch.service
    ● kpatch.service - "Apply kpatch kernel patches"
       Loaded: loaded (/usr/lib/systemd/system/kpatch.service; disabled; vendor preset: disabled)
       Active: inactive (dead)

    この出力テストサンプルでは、kpatch.service が無効になっており、実行されていないことを証明しています。したがって、カーネルのライブパッチソリューションはアクティブではありません。

  5. カーネルパッチモジュールがアンロードされたことを確認します。

    # kpatch list
    Loaded patch modules:
    
    Installed patch modules:
    kpatch_3_10_0_1062_1_1 (3.10.0-1062.el7.x86_64)

    上記の出力例では、カーネルパッチモジュールがインストールされていても、カーネルにパッチが適用されていないことを示しています。

関連情報
  • kpatch コマンドラインユーティリティーの詳細は、man ページの kpatch(1) を参照してください。
  • systemd システムおよびサービスマネージャー、ユニット設定ファイル、その場所、および systemd ユニットタイプの完全なリストの詳細は、システム管理者のガイド の関連のセクションを参照してください。