
SUSE Linux Enterprise Serverでは、複数バージョンのカーネルを並行でインストールできます。2番目のカーネルをインストールすると、ブートエントリとinitrdfが自動的に作成されるので、手動での設定が別途必要になることはありません。マシンをリブートすると、新しく追加したカーネルが追加のブートオプションとして利用できるようになります。
この機能を使用すると、カーネルのアップデートを安全な状態でテストでき、実績のある以前のカーネルにいつでもフォールバックできます。そのためには、YaSTのオンラインアップデートやアップデートアプレットなどのアップデートツールを使用せず、この章で説明するプロセスに従います。
独自にコンパイルしたカーネルやサードパーティのカーネルをインストールすると、マシンのサポートエンタイトルメントが全面的に無効になります。SUSE Linux Enterprise Serverに付属するカーネルおよびSUSE Linux Enterprise Serverの正式なアップデートチャネルで配布されるカーネルのみがサポートされています。
別のカーネルをインストールした後は、デフォルトのブートエントリを目的に合わせて設定するために、ブートローダ設定を確認することをお勧めします。詳細については、項 「YaSTによるブートローダの設定」, 第12章 ブートローダGRUB 2, 管理ガイドを参照してください。
SUSE Linux Enterprise 12への複数バージョンのソフトウェアパッケージのインストール(マルチバージョンサポート)は、デフォルトで有効になっています。この設定を確認するには、次の手順に従います。
任意のエディタで、rootユーザとして/etc/zypp/zypp.confを開きます。
文字列multiversionを検索します。この機能に対応しているすべてのカーネルパッケージでマルチバージョンサポートが有効になっている場合、次の行はコメント解除された状態で表示されます。
multiversion = provides:multiversion(kernel)
マルチバージョンサポートを特定のカーネルに限定するには、それらのパッケージの名前をカンマ区切りリストとして/etc/zypp/zypp.confのmultiversionオプションに追記します。たとえば、次のような記述とします。
multiversion = kernel-default,kernel-default-base,kernel-source
変更を保存します。
アップデートした新しいカーネル用に、ベンダーが提供する必須のカーネルモジュール(カーネルモジュールパッケージ)もインストールされていることを確認してください。最終的にカーネルモジュールが見つからなくても、カーネルアップデートプロセスで警告は表示されません。これは、システム上に保持されている古いカーネルによって依然としてパッケージ要件が満たされているためです。
マルチバージョンサポートを有効にして新しいカーネルを頻繁にテストしていると、ブートメニューが急速に複雑になります。/bootパーティションはスペースが限られていることが普通なので、/bootのオーバーフローに伴う問題が発生することがあります。YaSTや以下で説明するZypperなどを使用して、使用されていないバージョンのカーネルを手動で削除できますが、このようなカーネルを自動的に削除するようにlibzyppを設定することもできます。デフォルトでは、どのカーネルも削除されません。
任意のエディタで、rootユーザとして/etc/zypp/zypp.confを開きます。
文字列multiversion.kernelsを検索し、その行のコメント指定を解除することで、このオプションを有効にします。このオプションは、以下の各値のカンマ区切りリストをとります。
3.12.24-7.1:
指定されたバージョン番号のカーネルを保持します。
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,3.12.25.rc7-test
最新バージョンのカーネル、現在実行しているカーネル、および3.12.25.rc7-testバージョンのカーネルを保持します。
実行しているカーネルの保持
特別な設定を使用している場合でない限り、実行しているカーネルを必ず保持するようにします。実行しているカーネルを保持しない場合、カーネルをアップデートすると、そのカーネルは削除されます。これにより、現在実行しているカーネル用のモジュールが削除されてロードできなくなるため、アップデート後すぐにシステムを再起動することが必要になります。
YaSTを起動し、 › を選択してソフトウェアマネージャを開きます。
› › を選択して、複数のバージョンを提供できるすべてのパッケージを一覧表示します。
パッケージを選択し、そのパッケージのタブを下部ペインの左側で開きます。
パッケージをインストールするには、そのチェックボックスをクリックします。インストールの対象として選択されていることを示す緑色のチェックマークが表示されます。
すでにインストール済みのパッケージ(白いチェックマークで表示)を削除するには、削除の対象として選択されていることを示す赤色のXが表示されるまで、そのパッケージのチェックボックスをクリックします。
をクリックしてインストールを開始します。
コマンドzypper se -s 'kernel*'を使用して、存在するすべてのカーネルパッケージを一覧表示します。
S | Name | Type | Version | Arch | Repository --+----------------+------------+-----------------+--------+------------------- v | kernel-default | package | 2.6.32.10-0.4.1 | x86_64 | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) | kernel-default | srcpackage | 2.6.32.10-0.4.1 | noarch | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) ...
インストールする場合は、次のように正確なバージョンを指定します。
zypper in kernel-default-2.6.32.10-0.4.1
カーネルをアンインストールする場合は、コマンドzypper se -si 'kernel*'を使用して、インストールされているすべてのカーネルを一覧表示し、zypper rm PACKAGENAME-VERSIONを使用して、目的のパッケージを削除します。