Vine Linux 4.1 では,カーネルのアップグレードに手間がかからなくなった。設定ファイルを編集する必要がなくなった。
■ ■ ■
apt-get をしてみると,カーネルの更新が出ていることが分かった。カーネルをアップグレードしてみることにする。
環境は Vine Linux 4.1 である。カーネルパッケージのアップグレード には次の解説がある。
Vine Linux 4.1から導入されたカーネルパッケージのアップグレード機構とブートローダGRUBの組合せにより、インストールされたままの設定であれば、特にブートローダの設定を変更する必要がありません。
なお、GRUBの設定ファイルは/boot/grub/menu.lstです。LILOと違い、設定ファイルを変更してもブートレコードの書き換えが必要ないのが特徴です。
GRUBの設定ファイルは最後にインストールしたカーネルで起動するように設計されています。
なるほど。実際に行ってみる。まずは現在のバージョン確認から。
$ uname -r
2.6.16-0vl68
$ rpm -qa | grep kernel-2
kernel-2.6.16-0vl68
apt-get で更新パッケージを導入して,再起動する。
# apt-get update
# apt-get upgrade
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
kernel#2.6.16-0vl76.3 kernel-devel#2.6.16-0vl76.3
kernel-module-madwifi#0.9.3_2.6.16_0vl76.3-0vl4.r1770
kernel-module-ndiswrapper#1.27_2.6.16_0vl76.3-0vl2
アップグレード: 0 個, 新規インストール: 4 個, 削除: 0 個, 保留: 0 個
20.5MB のアーカイブを取得する必要があります。
展開後に 60.4MB のディスク容量が追加消費されます。
続行しますか? [Y/n]
取得:1 http://ftp.jaist.ac.jp 4.1/i386/updates kernel-devel#2.6.16-0vl76.3 2.6.16-0vl76.3 [4504kB]
取得:2 http://ftp.jaist.ac.jp 4.1/i386/updates kernel#2.6.16-0vl76.3 2.6.16-0vl76.3 [15.7MB]
取得:3 http://ftp.jaist.ac.jp 4.1/i386/updates kernel-module-madwifi#0.9.3_2.6.16_0vl76.3-0vl4.r1770 0.9.3_2.6.16_0vl76.3-0vl4.r1770 [251kB]
取得:4 http://ftp.jaist.ac.jp 4.1/i386/updates kernel-module-ndiswrapper#1.27_2.6.16_0vl76.3-0vl2 1.27_2.6.16_0vl76.3-0vl2 [83.2kB]
20.5MB を 31s 秒で取得しました (652kB/s)
変更を適用しています...
準備中... ########################################### [100%]
1:kernel-devel ########################################### [ 25%]
2:kernel ########################################### [ 50%]
3:kernel-module-madwifi ########################################### [ 75%]
4:kernel-module-ndiswrapp########################################### [100%]
完了
# shutdown -r now
再起動後にバージョンを確認する。
$ uname -r
2.6.16-0vl76.3
$ rpm -qa | grep kernel-2
kernel-2.6.16-0vl76.3
kernel-2.6.16-0vl68
新しいカーネルで起動している。カーネルのパッケージとしては,先ほどまで動いていた古いカーネルも残っていることが分かる。
更新の仕組みはどうなっているのだろうか。ブートローダ GRUB の設定ファイル /etc/grub.conf は /boot/grub/menu.lst へのシンボリックリンクとなっている。
$ ls -la /etc/grub.conf
lrwxrwxrwx 1 root root 21 8月26日 02:45 /etc/grub.conf -> ../boot/grub/menu.lst
設定ファイルの内容は次の通り。
$ cat /etc/grub.conf
default=0
timeout=5
title Vine Linux (Current kernel)
root (hd0,0)
kernel /vmlinuz ro root=LABEL=/ resume2=swap:/dev/hda3 vga=0x314
initrd /initrd.img
title Vine Linux (Previous kernel)
root (hd0,0)
kernel /vmlinuz.old ro root=LABEL=/ resume2=swap:/dev/hda3 vga=0x314
initrd /initrd.old.img
カーネルのイメージファイル名は,現在の initrd.img と1つ前の initrd.old.img になっている。/etc/boot を見てみると,これらはシンボリックリンクになっていた。
$ ls -la /boot/*.img
-rw-r--r-- 1 root root 115623 8月26日 02:40 /boot/initrd-2.6.16-0vl68.img
-rw-r--r-- 1 root root 115623 9月26日 22:44 /boot/initrd-2.6.16-0vl76.3.img
lrwxrwxrwx 1 root root 25 9月26日 22:44 /boot/initrd.img -> initrd-2.6.16-0vl76.3.img
lrwxrwxrwx 1 root root 23 8月26日 02:40 /boot/initrd.old.img -> initrd-2.6.16-0vl68.img
つまり,Vine Linux 4.1 では,カーネルを rpm や apt-get でアップグレードすると,新しいカーネルのインストールと,シンボリックリンクの張替えが行われるようになったのである。
カーネルを自分でコンパイルして試す場合,最後にインストールしたものがデフォルトになってしまうので注意が必要。この場合は設定ファイルに安定版のエントリを別に書いてやればよいようだ (カーネルパッケージのアップグレード)。
Posted by n at 2007-09-26 23:53 | Edit | Comments (0) | Trackback(0)