Next Previous Contents

7. 付録 A: Red Hat Linux 6.2 の訂正情報について
   -- RHBA-2000:013-01 (kernel-2.2.14-6.x.1) --

この付録文書では、2000年4月14日に公開されたRed Hat Linux 6.2 のカーネルの訂正情報に基き、 カーネルをアップデートする方法について説明します。

まず最初に、お使いの環境に適切なアップデートファイルを以下の訂正情報(RHBA-2000:013-01) からダウンロードして下さい。: http://www.redhat.com/support/errata/RHBA-2000013-01.html

ここでは、使用されるカーネルのバージョンが「2.2.14-6.0.1 smp」であり、 なおかつ、RAMDISK イメージ(initrd)を必要とする SCSI デバイスがシステム上 に含まれていることを前提とします。

必要なファイルを、/tmp など、どこか適当なディレクトリに保存して下さい。 私の場合、/usr/local の以下に「erratta」ディレクトリを作り、 いつもそこにダウンロードしたファイルを置いています。 ( /home/ftp/pub ディレクトリでも構いません。)

ダウンロード終了後、/usr/local/62errata ディレクトリには以下のファイルがあります。:


kernel-2.2.14-6.0.1.i686.rpm
kernel-doc-2.2.14-6.0.1.i386.rpm
kernel-headers-2.2.14-6.0.1.i386.rpm
kernel-ibcs-2.2.14-6.0.1.i386.rpm
kernel-smp-2.2.14-6.0.1.i686.rpm
kernel-source-2.2.14-6.0.1.i386.rpm
kernel-utils-2.2.14-6.0.1.i386.rpm
            

以下のように、RPM コマンドを使用して、カーネルパッケージををインストールして下さい。


[root@blippy 62errata]# rpm --force -ivh kernel-2.2.14-6.0.1.i686.rpm kernel-smp-2.2.14-6.0.1.i686.rpm
            

必要に応じて、カーネル以外のパッケージもアップデートして下さい。


[root@blippy 62errata]# rpm -Uvh kernel-headers-2.2.14-6.0.1.i386.rpm kernel-doc-2.2.14-6.0.1.i386.rpm \
> kernel-ibcs-2.2.14-6.0.1.i386.rpm kernel-source-2.2.14-6.0.1.i386.rpm kernel-utils-2.2.14-6.0.1.i386.rpm
            

PCMCIA スロットを搭載したノートPCでは、PCMCIA 用のパッケージ (kernel-pcmcia-cs-2.2.17-14.i386.rpm)も必要になるでしょうから、 それもインストールして下さい。(ここでは、デスクトップ機の場合を想定して話を進めます。)

パッケージのインストールが終わったら、/boot 以下のファイルを調べてみます。


[root@blippy /root]# ls -l /boot
lrwxrwxrwx    1 root     root           26 Apr 20 16:20 System.map -> System.map-2.2.14-6.0.1smp
-rw-r--r--    1 root     root       203645 Mar  7 21:12 System.map-2.2.14-5.0
-rw-r--r--    1 root     root       214981 Mar  7 21:06 System.map-2.2.14-5.0smp
-rw-r--r--    1 root     root       202447 Apr 14 10:49 System.map-2.2.14-6.0.1
-rw-r--r--    1 root     root       213784 Apr 14 10:43 System.map-2.2.14-6.0.1smp
-rw-r--r--    1 root     root          512 Mar  3 19:11 boot.4800
-rw-r--r--    1 root     root         4568 Feb  2 17:03 boot.b
-rw-r--r--    1 root     root          612 Feb  2 17:03 chain.b
-rw-r--r--    1 root     root       389960 Mar  3 19:11 initrd-2.2.14-5.0.img
-rw-r--r--    1 root     root       390122 Mar  3 19:11 initrd-2.2.14-5.0smp.img
-rw-r--r--    1 root     root       390222 Apr 20 16:23 initrd-2.2.14-6.0.1.img
-rw-r--r--    1 root     root       390427 Apr 20 16:21 initrd-2.2.14-6.0.1smp.img
-rw-r--r--    1 root     root            0 Apr 14 10:19 kernel.h
drwxr-xr-x    2 root     root        12288 Mar  3 19:01 lost+found
-rw-------    1 root     root        49664 Apr 20 16:24 map
lrwxrwxrwx    1 root     root           24 Apr 20 16:19 module-info -> module-info-2.2.14-6.0.1smp
-rw-r--r--    1 root     root        11773 Mar  7 21:12 module-info-2.2.14-5.0
-rw-r--r--    1 root     root        11773 Mar  7 21:06 module-info-2.2.14-5.0smp
-rw-r--r--    1 root     root        11773 Apr 14 10:49 module-info-2.2.14-6.0.1
-rw-r--r--    1 root     root        11773 Apr 14 10:43 module-info-2.2.14-6.0.1smp
-rw-r--r--    1 root     root          620 Feb  2 17:03 os2_d.b
-rwxr-xr-x    1 root     root      1615706 Mar  7 21:12 vmlinux-2.2.14-5.0
-rwxr-xr-x    1 root     root      1723324 Mar  7 21:06 vmlinux-2.2.14-5.0smp
-rwxr-xr-x    1 root     root      1622273 Apr 14 10:49 vmlinux-2.2.14-6.0.1
-rwxr-xr-x    1 root     root      1729888 Apr 14 10:43 vmlinux-2.2.14-6.0.1smp
lrwxrwxrwx    1 root     root           23 Apr 20 16:20 vmlinuz -> vmlinuz-2.2.14-6.0.1smp
-rw-r--r--    1 root     root       622249 Mar  7 21:12 vmlinuz-2.2.14-5.0
-rw-r--r--    1 root     root       647013 Mar  7 21:06 vmlinuz-2.2.14-5.0smp
-rw-r--r--    1 root     root       637961 Apr 14 10:49 vmlinuz-2.2.14-6.0.1
-rw-r--r--    1 root     root       662586 Apr 14 10:43 vmlinuz-2.2.14-6.0.1smp
            

System.map と module-info がそれぞれ、適切なファイルへリンクが張られているのがわかります。 この場合、2.2.14-6.0.1smp カーネル用のファイルへリンクされています。 リンクを張りなおす場合は、"ln -s -f < 存在するファイル > < リンク名 >" コマンドを使います。


[root@blippy /root]# cd /boot
[root@blippy /boot]# ln -s -f System.map-2.2.14-6.0.1smp System.map
        

initrd ファイルを作成します。お使いのシステムに SCSI デバイスがないのでしたら、 おそらく、この手順は必要無いでしょう。SCSI デバイスの有無が不確かな場合、 /boot ディレクトリを調べてみて下さい。initrd ファイルがあれば、 新しいものを作る必要があります。

mkinitrd コマンドの使い方を以下に挙げます。


        mkinitrd <ファイル名(絶対パスを伴う> <カーネルのバージョン ("uname -r"でも可)>
        

SMP カーネルとシングルプロセッサ用カーネルの両方で使用するのでしたら、 それぞれのカーネルに応じたinitrd ファイルが必要になりますので、 mkinitrd コマンドを2回実行して下さい。:


mkinitrd /boot/initrd-2.2.14-6.0.1smp.img 2.2.14-6.0.1smp
mkinitrd /boot/initrd-2.2.14-6.0.1.img 2.2.14-6.0.1
            

ここでの手順で最も多いエラーは、カーネルバージョンの指定をタイプミスしたか、 もしくは、カーネルモジュール "loop" がロード正しくされていないことに起因します。 後者の場合、以下のコマンドを実行して下さい。


        modprobe loop
        

そして、再度 mkinitrd コマンドを実行します。

次に、ブートローダ LILO の設定ファイルを修正します。

私の使っているシステムでは、/etc/lilo.conf がオリジナルの設定ファイルです。:


boot=/dev/ida/c0d0
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux

image=/boot/vmlinuz-2.2.14-5.0smp
        label=linux
        initrd=/boot/initrd-2.2.14-5.0smp.img
        read-only
        root=/dev/ida/c0d0p5
        optional

image=/boot/vmlinuz-2.2.14-5.0
        label=linux-up
        initrd=/boot/initrd-2.2.14-5.0.img
        read-only
        root=/dev/ida/c0d0p5
        optional
            

/dev/ida/c0d0p5 は、COMPAQ の Smart Array Raid Controller 用の 特別なデバイスファイルです。ほとんどのシステム場合、/dev/hda#、もしくは、 /dev/sda# が使われるでしょう。

修正した lilo.conf ファイルを以下に挙げます。 もともと書かれているimage セクションの部分をコピーし、 カーネルバージョンを修正するというのが、主な作業になるでしょう。


boot=/dev/ida/c0d0
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux

image=/boot/vmlinuz-2.2.14-6.0.1smp
        label=linux
        alias=l
        initrd=/boot/initrd-2.2.14-6.0.1smp.img
        read-only
        root=/dev/ida/c0d0p5

image=/boot/vmlinuz-2.2.14-6.0.1
        label=linux-up
        initrd=/boot/initrd-2.2.14-6.0.1.img
        read-only
        root=/dev/ida/c0d0p5

image=/boot/vmlinuz-2.2.14-5.0smp
        label=linux-old
        initrd=/boot/initrd-2.2.14-5.0smp.img
        read-only
        root=/dev/ida/c0d0p5
        optional

image=/boot/vmlinuz-2.2.14-5.0
        label=linux-up-old
        initrd=/boot/initrd-2.2.14-5.0.img
        read-only
        root=/dev/ida/c0d0p5
        optional

            

lilo.conf の修正が終わったら、lilo コマンドを実行して、 ブートセクタへ lilo を書き込みます。


        /sbin/lilo -v 
            

このコマンドにより、lilo.conf での修正がブートローダに反映されます。 私のマシンでは、以下のようなメッセージが出力されました。


[root@blippy /root]# /sbin/lilo -v
LILO version 21, Copyright 1992-1998 Werner Almesberger

Reading boot sector from /dev/ida/c0d0
Merging with /boot/boot.b
Boot image: /boot/vmlinuz-2.2.14-6.0.1smp
Mapping RAM disk /boot/initrd-2.2.14-6.0.1smp.img
Added linux (alias l) *
Boot image: /boot/vmlinuz-2.2.14-6.0.1
Mapping RAM disk /boot/initrd-2.2.14-6.0.1.img
Added linux-up
Boot image: /boot/vmlinuz-2.2.14-5.0smp
Mapping RAM disk /boot/initrd-2.2.14-5.0smp.img
Added linux-old
Boot image: /boot/vmlinuz-2.2.14-5.0
Mapping RAM disk /boot/initrd-2.2.14-5.0.img
Added linux-up-old
/boot/boot.4800 exists - no backup copy made.
Writing boot sector.
            

マシンを再起動して、新しいカーネルから起動してみて下さい。 カーネルのアップデート、lilo.conf 修正等々、これまでの作業が正しく行われていれば、 問題なく動くでしょう。


Next Previous Contents