第12章 複数のカーネルバージョンのインストール

目次

12.1. 複数バージョン対応の有効化と設定
12.2. YaST を利用した複数のカーネルバージョンのインストール/削除
12.3. zypper を利用した複数のカーネルバージョンのインストール/削除

概要

openSUSE では、カーネルについて複数のバージョンを同時にインストールする ことができます。複数のカーネルをインストールすると、起動用の項目と initrd が自動的に作成され、特に手作業で何かを行なう必要はありません。システムを 再起動すると、新しく追加したカーネルが起動オプション内に表示されるように なります。

この機能を利用することで、古いカーネルを起動できるように残したまま新しい カーネルをインストールすることができるため、カーネルの更新を行なう際に 安全に作業を行なうことができます。この機能を利用する場合は、更新ツール (たとえば YaST オンライン更新や更新アプレット) を使用せず、下記に示す 手順で作業を行なってください。

[Warning]サポート権利について

ご自身でコンパイルしたカーネルや、サードパーティが提供するカーネルを インストールした場合、サポート権利が失われることに注意してください。 openSUSE に同梱されているカーネルと、 openSUSE 向けに提供されて いる更新の更新チャンネルからの配布物のみがサポート対象です。

[Tip]お使いのブートローダにおけるカーネル設定の確認

複数のカーネルをインストールしたあとは、お使いのブートローダの設定を確認し、 既定の起動項目が正しく設定されているかどうか確認することをお勧めします。 詳しくは 項 「YaST を利用したブートローダの設定」 (第9章 ブートローダ GRUB, ↑リファレンス) をお読みください。 新しくカーネルをインストールした場合に、既定で追加される行を変更したい 場合は、新しいカーネルをインストールする前に /etc/sysconfig/bootloader の設定を変更してください。 この件に関する詳細は 項 「/etc/sysconfig/bootloader ファイル」 (第9章 ブートローダ GRUB, ↑リファレンス) をお読みください。

12.1. 複数バージョン対応の有効化と設定

ソフトウエアパッケージについて、複数のバージョンを同時にインストールできる 機能 (マルチバージョンサポート) は既定では無効に設定されています。これを 有効に設定するには、下記のように行ないます:

  1. root で任意のエディタを利用し、 /etc/zypp/zypp.conf ファイルを開きます。

  2. multiversion と書かれている行に移動します。 すべてのカーネルパッケージに対して、マルチバージョン機能を有効に設定するには、 下記の行のコメントアウト文字 (#)を外します:

    # multiversion = provides:multiversion(kernel)
  3. 特定のカーネルの派生形 (フレーバー) に限定してマルチバージョン機能を有効に 設定するには、 /etc/zypp/zypp.conf 内の multiversion オプションに対して、 下記のようにパッケージ名をカンマ区切りで指定します:

    multiversion = kernel-default,kernel-default-base,kernel-source
  4. 最後にファイルを保存して終了します。

12.1.1. 未使用のカーネルに対する自動削除設定

複数バージョンに対応させて新しいカーネルを頻繁にテストしていると、起動メニュー の項目が増えてしまい、わかりにくくなってしまいます。また、 /boot は通常、容量面では限られた領域に配置されるため、場合によっては /boot の容量がいっぱいになってしまう場合もあります。 このような場合は、 YaST または zypper を利用して、手作業で未使用の カーネルを削除することができるほか、 libzypp を設定して自動的に 未使用のカーネルを削除するように設定することもできます。既定では自動での 削除は行なわれません。

  1. root で任意のエディタを利用し、 /etc/zypp/zypp.conf ファイルを開きます。

  2. multiversion.kernels の文字列を検索し、下記のような 行のコメントを外してオプションを有効にします。このオプションはカンマ 区切りの一覧で、それぞれ下記のような値を記入することができます:

    2.6.32.12-0.7 指定したバージョン番号のカーネルを保持します。

    latest もっとも大きなバージョン番号のカーネルを保持します。

    latest-N N 番目に大きなバージョン番号のカーネルを保持します。

    running 実行中のカーネルを保持します。

    oldest もっとも小さなバージョン番号 (openSUSE に同梱されている オリジナルのカーネル) を保持します。

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

    たとえば下記のように記述します。

    multiversion.kernels = latest,running

    最新のカーネルと、現在実行中のカーネルを保持します。これは複数 バージョンの機能を全く無効化してしまった場合とは異なり、 即時に古いほうのカーネルが削除されたりはせず、 次回の再起動後に 古いほうのカーネルが削除 されるようになります。

    multiversion.kernels = latest,latest-1,running

    新しいほうから 2 つのバージョンのカーネルと、現在実行中のカーネルを 保持します。

    multiversion.kernels = latest,running,3.0.rc7-test

    最新のカーネルと現在実行中のカーネル、そして 3.0.rc7-test というバージョンのカーネルを 保持します。

    [Tip]実行中 のカーネルの保持について

    特別な場合を除き、 実行中 のカーネルは 保持するように設定してください。

12.2. YaST を利用した複数のカーネルバージョンのインストール/削除

  1. YaST を起動し、 ソフトウエア+ソフトウエア管理 を選択してソフトウエア 管理画面を開きます。

  2. 複数のバージョンが提供されているすべてのパッケージを表示するには、 表示+パッケージグループ+複数バージョンのパッケージ を選択します。

    図12.1 YaST ソフトウエア管理 - 複数バージョン表示

    YaST ソフトウエア管理 - 複数バージョン表示

  3. パッケージを選択し、右下の枠内で バージョン タブを 選択します。

  4. パッケージをインストールするには、それぞれのチェックボックスにチェックを 入れます。緑色のチェックマークが表示されます。

    既にインストールされたパッケージ (白色のチェックマークが付けられたもの) をアンインストールするには、チェックボックスを選択して赤い X を付けておきます。

  5. 最後に 了解 を押すとインストール作業が始まります。

12.3. zypper を利用した複数のカーネルバージョンのインストール/削除

  1. 利用可能なすべてのカーネルパッケージを一覧表示するには、 zypper se -s 'kernel*' コマンドを実行します:

    S | 名前                  | 種類             | バージョン     | アーキテクチャ | リポジトリ
    --+-----------------------+------------------+----------------+----------------+--------------------------------
    v | kernel-default        | パッケージ       | 2.6.32.10-0.4.1| x86_64         | Alternative Kernel
    i | kernel-default        | パッケージ       | 2.6.32.9-0.5.1 | x86_64         | (System Packages) 
      | kernel-default        | ソースパッケージ | 2.6.32.10-0.4.1| noarch         | Alternative Kernel
    i | kernel-default        | パッケージ       | 2.6.32.9-0.5.1 | x86_64         | (System Packages)
    ...
  2. インストール時には、下記のようにして正確なバージョンを指定します:

    zypper in kernel-default-2.6.32.10-0.4.1
  3. カーネルをアンインストールするには、まず zypper se -si 'kernel*' を実行してインストール済みのすべてのカーネルを一覧 表示してから、 zypper rm パッケージ名-バージョン のようにしてパッケージを削除します。


openSUSE システム分析とチューニングガイド 13.1