次のページ 前のページ 目次へ

2. カーネルパッケージのアップグレード

Vine Linuxのカーネルパッケージは、他のパッケージと同様に RPM 形式で配布されていますが、他のパッケージのように「rpm -Uvh」でアップグレードすることはできません。以下の手順に従ってアップグレードしてください。

最低限必要なパッケージは、

です。PCMCIA が必要な場合は

も必要になります。必要なパッケージにアクセスできるようにしておいてください。/root にコピーしておくのが最も安全でしょう。

もし,SMPカーネルを必要とする場合は, kernel-VER-REL.i386.rpm ではなく, kernel-smp-VER-REL.i386.rpm をお使い下さい.また,以下 では適宜読み変えて下さい.

まず、安全のためにシングルユーザモードに移行します。シングルユーザモードでは不必要なサービスはすべて停止されます。ネットワークにはアクセスできます。

すべてのユーザはログアウトし、コンソールから root でログインし、以下の手順でシングルユーザモードに移行し、パッケージ群のあるディレクトリに cd します。

# init S
# cd (パッケージのあるディレクトリ)

次に新しいカーネルパッケージをインストールします。

# rpm -ivh kernel-VER-REL.i386.rpm

■LILOの設定

インストールされたカーネルで起動できるように、ブートローダである LILO の設定をします。LILO の設定ファイルは /etc/lilo.conf ですので、これを編集します。詳しくは jman lilo.conf を参照してください。

このファイルの編集は、シングルユーザモードに移行する前に行っていてもかまいません。

       boot=/dev/hda
       map=/boot/map
       install=/boot/boot.b
       prompt
       timeout=50
       message=/boot/message
       default=linux

追加   image = /boot/vmlinuz-VER-REL
追加      label = linux
追加      read-only
追加      root = /dev/hda5
# mkinitrd した場合は次の1行を追加
追加      initrd=/boot/initrd-VER-REL.i386.rpm

       image = /boot/vmlinuz-2.2.17-0vl8
変更      label = Linux.old
          initrd=/boot/initrd-2.2.17-0vl8.img
          read-only
          root = /dev/hda5

       other=/dev/hda1
          label=dos

次に LILO を有効にします。ここでエラーが出たら、lilo.conf を見直しましょう。

# /sbin/lilo

■アップグレード作業の終了

ヘッダファイルをインストールします。

# rpm -Uvh kernel-header-VER-REL.i386.rpm

カーネルソースやドキュメントが必要ならばインストールします。

# rpm -Uvh kernel-doc-VER-REL.i386.rpm
# rpm -Uvh kernel-source-VER-REL.i386.rpm

これでパッケージのアップグレードは終了です。マシンを再起動します。

# /sbin/shutdown -r now

2.1 カーネルを自分の設定で作り直す

標準の設定ではハードウェアが動かない場合、必要なサービスが設定されていない場合、カーネルをシェイプアップしたい場合などには、カーネルを自分の設定で作りなおすことができます。自分でカーネルソースを取ってきてコンパイルすることもできますが、Project Vine より配布されているカーネルパッケージから自分用のカーネルパッケージを作成しなおすほうが安全で簡単です。

■カーネルパッケージを作り直す

Project Vine から配布されているカーネルパッケージから、自分で設定をしなおしたパッケージを作成することができます。生成したパッケージは、「 カーネルパッケージのアップグレード」の手順に従って扱うことができます。

Vine Linuxには mkkpkg というスクリプトが含まれており、これを利用することで簡単にカーネルパッケージを作成することができます。このスクリプトは、root ユーザで実行してください。

カーネルの設定方法はデフォルトで menuconfig です。変更したい場合は、引数の最後に「config」や「xconfig」をつけ加えることができます。

# /usr/sbin/mkkpkg <ソースパッケージのあるディレクトリ>/kernel-VER-REL.src.rpm

このスクリプトでは、生成するパッケージのリビジョン番号を指定できます。バー ジョン管理のために、「.<自分用のリビジョン>」を付加するのがお勧め です。例えば、kernel-2.2.17-0vl8 に対しては、リビジョンを「0vl8.1」 「0vl8.2」「0vl8.3」…とするのがお勧めです。

カーネルパッケージは標準で /usr/src/redhat/RPMS/i386//usr/src/redhat/SRPMS/ ディレクトリ内に作成されます。

■ソースツリーから作成する

インストールされたカーネルソースや、自分で取ってきたカーネルソースを利用してカーネルを作ることもできますが、RPM の管理を壊してしまう可能性があるため、あまりお勧めできません。Vine Linuxのシステム構成やカーネルについて熟知した上で行ってください。

標準のカーネルパッケージに含まれていないパッチを利用したい場合はにこの方法がお手軽ですが、mkkpkg の途中で spec ファイルを編集してちゃんとしたパッケージを作るのが理想的です。

# cd /usr/src/linux
# make menuconfig
で自分好みの設定に変えます。設定を保存したら、

# make dep clean bzImage modules modules_install
とします.

  • ノートパソコンユーザで pcmcia カードを使う場合

    pcmcia を作るには

    # cd pcmcia-cs-*
    # make config all install
    
    を実行します。

  • /が SCSI ディスク上にある場合

    / (ルートパーティション)が SCSI ディスク上にある場合は

    # /sbin/mkinitrd /boot/initrd-VER.img VER
    を実行します。

■仕上げ

最後に作成された vmlinuz-VER を /boot にコピーします。

# /sbin/installkernel VER arch/i386/boot/bzImage System.map

あとは LILO を編集して再起動します。


次のページ 前のページ 目次へ