戻る

Kernel Upgrade

[更新履歴]
03/06/16 … 2度目以降のバージョンアップメモ追記。
Debian Woody に出会って早半年。外からポートスキャンしてみたところ、アクセスできないはずの pop3 が open になっている(popはローカルのみ許可のハズ)。っつーわけで、勉強がてら、カーネルのバージョンを、デフォルトの2.2系から iptables とやらが使える 2.4系 へアップグレードしてみることにする。

全体の流れ

っつー、手順になります。多分。Debian の場合は。つーか JF 参照。

必要なパッケージ

うちでやった時は、こんだけ。環境によってはすでにあるものもあるかもしれないし、ほかに必要なものがあるかも。

手順

試験環境でのログ。しかもテキトー。でもって、うちの場合。
# apt-get install kernel-source-2.4.18
   # apt-get install kernel-source だけ実行すると、DLできるソースのバージョン情報が得られる
# cd /usr/src
# bzip2 -d kernel-source-2.4.18.tar.bz2
# tar xvf kernel-source-2.4.18.tar
# bzip2 -dc kernel-source-2.4.18.tar.bz2 | tar xvf -
# tar xjvf kernel-source-2.4.18.tar.bz2   (時間かかる)
# ln -s kernel-source-2.4.18 linux   (実は不要でした)
# cd linux (cd kernel-source-2.4.18で良し)
# apt-get install libncurses5-dev
# make menuconfig  (どれ選ぶんだ?)

  プロセッサ種は異なるものを選ぶとブートしません。。。これでハマった
  Processor type and features --->
    (Pentium-Pro/Celeron/Pentium-II) Processor family    (**** 重要 ****)

  ネットワークの設定。以下はiptables使えるようにパケットフィルタリング周りの設定。あとNICの種類
  Networking options --->
    Network packet filterring (replaces ipchains)
    Socket Filtering
    ...
  Network device support --->
    Ethernet (10 or 100Mbit) --->
      SiS 900/...

  以下、内蔵のCD-Rドライブで焼き処理ができるかな?とゆー設定。まだ試してない
  ATA/IDE/MFM/RLL support --->
    IDE, ATA and ATAPI Block devices --->
      SCSI emulation support
  SCSI support --->
    SCSI CD-ROM support
    SCSI generic support
    
# make dep  (長い。。。)
# apt-get install kernel-package
# make-kpkg clean
# make-kpkg --revision cheddar.030323 kernel-image  (約15分)
  リビジョンはテキトーに。うちはホスト名.date
# cd ..
# dpkg -i kernel-image-2.4.18_cheddar.030323_i386.deb

Would you like to create a boot floppy now? [No] no
Install a boot block using the existing /etc/lilo.conf? [Yes] yes
/vmlinuz@
/vmlinuz.old@
/etc/lilo.conf 確認
これで終了。リブートしてみて、新しいカーネルバージョンでブートしてれば成功。しない場合(LILOが起動しない)は、、、知らん。
うちは検証機で試した時は、プロセッサの選択をしてなくて、なんどやってもダメだった(笑) そんときゃまたOSの再インストールからやりました(バカ)
本番機では一発でいってよかったよ。。

その後

先日、2.4.18 のセキュリティ(?)バージョンアップを行った。Debian上では、2.4.18-5 から、2.4.18-9 へのバージョンアップ。手順はほぼ同じ。
手順はほぼ同じだが、作業前に以下のことをやっておく。多分
(退避といいつつ、最終的に前のカーネルイメージは消えるから、サクっと消してもいいかも) そして、apt-get upgrade で、カーネルソースのダウンロード。
以前(2.4.18-5)の、make前の設定を引き継ぐ場合は以下の手順
# cd /usr/src/linux
# cp /boot/config-2.4.18 .config
# make menuconfig  (再設定する)
で、最終的に kernel-image-2.4.18_cheddar.030615_i386.deb を作成した(日付がかわってます)。こやつを dpkg でつっこむと、前のバージョンの cheddar.030323 がアップデートされます。たぶん。
dpkg -l の結果の差分をとると、こんな感じ。
cheddar:~/log/dpkg# diff dpkg.list.20030608 dpkg.list.20030614
110c111
< ii  kernel-image-2 cheddar.030323 Linux kernel binary image for version 2.4.18
---
> ii  kernel-image-2 cheddar.030614 Linux kernel binary image for version 2.4.18
112c113
< ii  kernel-source- 2.4.18-5       Linux kernel source for version 2.4.18
---
> ii  kernel-source- 2.4.18-9       Linux kernel source for version 2.4.18