印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Linux Vine Linux 4.1 でのカーネルのアップグレード

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)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?