debian etchのnetinst cdromのカーネルを入れ替える。

追記:http://kmuto.jp/debian/d-i/ に23.1のカーネルで作ったインストーラがある。

現在失敗中:日本語が出ないのと/dev/hda,hdcが現れない。
おそらくカーネルコンパイルオプションが足りないのではないかと思われる。

カーネル作成

kernel.orgからstableの最新カーネルを取得する。

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.13.tar.bz2
$ tar xjf linux-2.6.23.13.tar.bz2
$ cd linux-2.6.23.13
$ make allnoconfig
$ make menuconfig

必要なもののみチェックする。
フレームバッファがないと日本語で設定できなくなるので注意

最低:磁気・光学ディスク、ネットワーク、フレームバッファ

make bzImage

CDイメージファイルを展開する。

$ sudo  mount -o loop debian-40r1-i386-netinst.iso /mnt
$ cp /mnt/* .
$ chmod +w isolinux/isolinux.bin install.386/*

isoイメージからファイルを取り出すのにroot権限が必要なのがいまいちだな。mkisofsの逆はないものか。

initrd.gzを展開する

ここまでやったあと次にinitrd.gzを作り直す。
カーネルは全てのモジュールをビルトインで作るので、modules.depは空でよい。

$ mkdir initrd
$ cd initrd
$ zcat ../iso/install.386/initrd.gz | cpio -i
$ mkdir etc/modules/2.6.23.13
$ touch etc/modules/2.6.23.13/modules.dep
$ find . | cpio -o -H newc | gzip > ../initrd.gz

cpioは devとか展開するときにroot権限でないと動かないがインストールには支障がないみたい。

カーネルのモジュール対応をoffにすればいけるかと思ったが駄目modprobeがエラーを出すのは止まらない。

CDイメージファイルを作成する

http://homepage1.nifty.com/ttakao/isolinux-doc.htmを参考にやった。

$ cp /usr/src/linux/arch/i386/boot/bzImage install.386
$ cp (initrdをつくったディレクトリ)/initrd.gz install.386
$ mkisofs -o ../debian-netinst-newkernel.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

後は版に焼けばよい。