目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise Serverマニュアル / 管理ガイド / システム / 複数バージョンのカーネルのインストール
適用項目 SUSE Linux Enterprise Server 15 SP6

27 複数バージョンのカーネルのインストール

SUSE Linux Enterprise Serverでは、複数バージョンのカーネルを並行でインストールできます。2番目のカーネルをインストールすると、ブートエントリとinitrdfが自動的に作成されるので、手動での設定が別途必要になることはありません。マシンを再起動すると、新しく追加したカーネルが追加のブートパラメータとして利用できるようになります。

この機能を使用すると、カーネルのアップデートを安全な状態でテストでき、実績のある以前のカーネルにいつでもフォールバックできます。そのためには、YaSTのオンラインアップデートやアップデートアプレットなどのアップデートツールを使用せず、この章で説明するプロセスに従います。

警告
警告: サポートエンタイトルメント

独自にコンパイルしたカーネルやサードパーティのカーネルをインストールすると、マシンのサポートエンタイトルメントが全面的に無効になります。SUSE Linux Enterprise Serverに付属するカーネルおよびSUSE Linux Enterprise Serverの正式なアップデートチャネルで配布されるカーネルのみがサポートされています。

ヒント
ヒント: ブートローダ設定カーネルの確認

別のカーネルをインストールした後は、デフォルトのブートエントリを目的に合わせて設定するために、ブートローダ設定を確認することをお勧めします。詳細については、18.3項 「YaSTによるブートローダの設定」を参照してください。

27.1 マルチバージョンサポートの有効化と設定

SUSE Linux Enterprise Server 12以降のバージョンでは、複数バージョンのソフトウェアパッケージのインストール(マルチバージョンサポート)は、デフォルトで有効になっています。この設定を確認するには、次の手順に従います。

  1. 任意のエディタで、rootとして/etc/zypp/zypp.confを開きます。

  2. 文字列multiversionを検索します。この機能に対応しているすべてのカーネルパッケージでマルチバージョンサポートが有効になっている場合、次の行はコメント解除された状態で表示されます。

    multiversion = provides:multiversion(kernel)
  3. マルチバージョンサポートを特定のカーネルに限定するには、それらのパッケージの名前をカンマ区切りリストとして/etc/zypp/zypp.confmultiversionオプションに追記します。たとえば、次のような記述とします。

    multiversion = kernel-default,kernel-default-base,kernel-source
  4. 変更を保存します。

警告
警告: KMP (カーネルモジュールパッケージ)

アップデートした新しいカーネル用に、ベンダーが提供する必須のカーネルモジュール(カーネルモジュールパッケージ)もインストールされていることを確認してください。最終的にカーネルモジュールが見つからなくても、カーネルアップデートプロセスで警告は表示されません。これは、システム上に保持されている古いカーネルによって依然としてパッケージ要件が満たされているためです。

27.1.1 使用していないカーネルの自動削除

マルチバージョンサポートを有効にして新しいカーネルを頻繁にテストしていると、ブートメニューが急速に複雑になります。通常/bootパーティションの容量は限られているため、/bootオーバーフローによるトラブルが発生する場合があります。YaSTや以下で説明するZypperなどを使用して、使用されていないバージョンのカーネルを手動で削除できますが、このようなカーネルを自動的に削除するようにlibzyppを設定することもできます。デフォルトでは、どのカーネルも削除されません。

  1. 任意のエディタで、rootとして/etc/zypp/zypp.confを開きます。

  2. 文字列multiversion.kernelsを検索し、その行のコメント指定を解除することで、このオプションを有効にします。このオプションは、以下の各値のカンマ区切りリストをとります。

    5.3.18-53.3: 指定されたバージョン番号のカーネルを保持します。

    latest: 最新のバージョン番号のカーネルを保持します。

    latest-N: N番目に新しいバージョン番号のカーネルを保持します。

    running: 実行しているカーネルを保持します。

    oldest: 最も古いバージョン番号のカーネルを保持します(これはSUSE Linux Enterprise Serverに元から付属しているバージョンのカーネルです)。

    oldest+N N番目に古いバージョン番号のカーネルを保持します。

    次の例を示します

    multiversion.kernels = latest,running

    最新バージョンのカーネルおよび現在実行しているカーネルを保持します。これはマルチバージョン機能を有効にしない場合に似ていますが、古いバージョンのカーネルが削除される時期が、インストールの直後ではなく、「次回のリブートの後」である点が異なります。

    multiversion.kernels = latest,latest-1,running

    最新とその次に新しいバージョンのカーネルおよび現在実行しているカーネルを保持します。

    multiversion.kernels = latest,running,5.3.18-53.3

    最新バージョンのカーネル、現在実行しているカーネル、および5.3.18-53.3を保持します。

    ヒント
    ヒント: 実行しているカーネルの保持

    特殊な設定を使用している場合を除き、runningというマークの付いたカーネルは常に保持してください。

    実行しているカーネルを保持しない場合、カーネルは更新時に削除されます。つまり、実行しているカーネルのモジュールも削除され、ロードできなくなります。

    実行しているカーネルを保持しない場合は、必ずカーネルのアップグレード後すぐに再起動して、モジュールの問題が発生しないようにしてください。

27.1.2 使用事例: 再起動後にのみ古いカーネルを削除する

新規カーネルを使用して正常にシステムを再起動できてから、古いカーネルを削除するようにします。

/etc/zypp/zypp.conf内の以下の行を変更します。

multiversion.kernels = latest,running

前のパラメータは、最新のカーネル、および実行中のカーネル(最新でない場合のみ)を保持するようにシステムに指示します。

27.1.3 使用事例: 古いカーネルをフォールバックとして保持する

1つ以上のバージョンのカーネルを保持し、スペアとして保有しておきます。

これは、テスト用のカーネルが必要な場合に役立ちます。何らかの問題が生じたとき(マシンが起動しないなど)、正常に動作していた1つ以上のバージョンのカーネルをまだ使用することができるためです。

/etc/zypp/zypp.conf内の以下の行を変更します。

multiversion.kernels = latest,latest-1,latest-2,running

新しいカーネルのインストール後にシステムを再起動する際、システムは3つのカーネルを保持します。現在のカーネル(latest,runningとして設定)と、その直前のカーネル2つ(latest-1およびlatest-2として設定)です。

27.1.4 使用事例: 特定のバージョンのカーネルの保持

通常、定期的にシステムアップデートを行い、新規バージョンのカーネルをインストールします。しかし、独自のバージョンのカーネルをコンパイルして、システムに保持させたい場合があります。

/etc/zypp/zypp.conf内の以下の行を変更します。

multiversion.kernels = latest,5.3.18-53.3,running

新しいカーネルのインストール後にシステムを再起動するときに、システムは2つのカーネルを保存します。新規の実行中のカーネル(latest,runningと設定)および独自でコンパイルしたカーネル(5.3.18-53.3と設定)の2つです。

27.2 YaSTによる複数のカーネルバージョンのインストールと削除

次の手順で、YaSTを使用して複数のカーネルをインストールまたは削除できます。

  1. YaSTを起動し、ソフトウェア › Software Management (ソフトウェア管理)を選択してソフトウェアマネージャを開きます。

  2. 表示 › パッケージの分類 › 複数バージョンのパッケージを選択して、複数のバージョンを提供できるすべてのパッケージを一覧表示します。

    YaSTソフトウェアマネージャ: マルチバージョン表示
    図 27.1: YaSTソフトウェアマネージャ: マルチバージョン表示
  3. パッケージを選択し、そのパッケージのバージョンタブを下部ペインの左側で開きます。

  4. パッケージをインストールするには、そのパッケージの横のチェックボックスをクリックします。インストールの対象として選択されていることを示す緑色のチェックマークが表示されます。

    すでにインストール済みのパッケージ(白いチェックマークで表示)を削除するには、削除の対象として選択されていることを示す赤色のXが表示されるまで、そのパッケージの横のチェックボックスをクリックします。

  5. 了解をクリックしてインストールを開始します。

27.3 Zypperによる複数のカーネルバージョンのインストールと削除

次の手順で、zypperを使用して複数のカーネルをインストールまたは削除できます。

  1. コマンドzypper se -s 'kernel*'を使用して、存在するすべてのカーネルパッケージを一覧表示します。

    S  | Name                 | Type    | Version           | Arch   | Repository
    ---+----------------------+---------+-------------------+--------+------------------------------------------------------
    i+ | kernel-default                          | package | 6.4.0-150600.9.2              | x86_64 | SLE-Module-Basesystem15-SP6-Pool
       | kernel-default-base                     | package | 6.4.0-150600.9.2.150600.10.40 | x86_64 | SLE-Module-Basesystem15-SP6-Pool
       | kernel-default-devel                    | package | 6.4.0-150600.9.2              | x86_64 | SLE-Module-Basesystem15-SP6-Pool
       | kernel-devel                            | package | 6.4.0-150600.9.2              | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-all                     | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-amdgpu                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-ath10k                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-ath11k                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-ath12k                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-atheros                 | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-bluetooth               | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-bnx2                    | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-brcm                    | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-chelsio                 | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-dpaa2                   | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-i915                    | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-intel                   | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-iwlwifi                 | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-liquidio                | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-marvell                 | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-media                   | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-mediatek                | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-mellanox                | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-mwifiex                 | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-network                 | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-nfp                     | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-nvidia                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
       | kernel-firmware-nvidia-gsp-G06          | package | 525.116.04-150500.1.1         | x86_64 | SLE-Module-Basesystem15-SP6-Pool
       | kernel-firmware-nvidia-gspx-G06         | package | 550.54.14-150600.1.1          | x86_64 | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-platform                | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-prestera                | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-qcom                    | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-qlogic                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-radeon                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-realtek                 | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-serial                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-sound                   | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-ti                      | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-ueagle                  | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
    i  | kernel-firmware-usb-network             | package | 20240201-150600.1.1           | noarch | SLE-Module-Basesystem15-SP6-Pool
       | kernel-macros                           | package | 6.4.0-150600.9.2              | noarch | SLE-Module-Basesystem15-SP6-Pool
  2. インストールする場合は、次のように正確なバージョンを指定します。

    > sudo zypper in kernel-default-6.4.0-150600.9.2
  3. カーネルをアンインストールする際には、zypper se -si 'kernel*'コマンドを使用して、インストール済みのすべてのカーネルを一覧にし、zypper rm PACKAGENAME-VERSIONコマンドを使用してパッケージを削除します。