Scientific Linux 6.1でLinux 3.0.1をビルド
ビルドは簡単。GRUBの設定で悩んだ。忘れないようにメモしておく。
■ビルド
kernel.orgなどからソースを取ってくる。ここでは、/usr/src/linux-3.0.y以下に展開したものとする。
まず、デフォルトカーネルの.configをコピー:
arch/x86/boot/bzImageというのができている。こいつがカーネル本体。このファイルを、/boot以下にコピーする:
■GRUBの設定
ブートできるようにGRUBの設定を行う。
まずは、initrdというRAMディスクのイメージを作ろう。カーネルは、起動時にこのRAMディスク上でディスクのファイルをマウントするなどの処理を行うらしい。詳しくはこちら→http://jibun.atmarkit.co.jp/lskill01/rensai/lpicdrill06/lpicdrill01.html
■ビルド
kernel.orgなどからソースを取ってくる。ここでは、/usr/src/linux-3.0.y以下に展開したものとする。
まず、デフォルトカーネルの.configをコピー:
# cd /usr/src/linux-3.0.y
# cp ../kernels/2.6.32-131.6.1.el6.x86_64/.config .
次に.configの設定。設定を変更しない場合でも、この操作は一度実行しておかなくてはならないみたい:
# make menuconfig <- 設定変更しない場合は何もいじらず設定画面を終了するあとはmakeするだけ。ThinkPad X61で1時間半くらいで終わった。案外早いものである:
# make oldconfig
# make■インストール
arch/x86/boot/bzImageというのができている。こいつがカーネル本体。このファイルを、/boot以下にコピーする:
# cp arch/x86/boot/bzImage /boot/vmlinuz-3.0.1次に、モジュールをインストール。モジュールのインストールは、makeコマンドを叩けば自動でやってくれる:
# make modules_installこれで、/lib/modules以下にモジュールがインストールされた。
■GRUBの設定
ブートできるようにGRUBの設定を行う。
まずは、initrdというRAMディスクのイメージを作ろう。カーネルは、起動時にこのRAMディスク上でディスクのファイルをマウントするなどの処理を行うらしい。詳しくはこちら→http://jibun.atmarkit.co.jp/lskill01/rensai/lpicdrill06/lpicdrill01.html
# cd /boot次に、/boot/grub/grub.confの設定を行う。デフォルトカーネルの設定がすでに書かれているので、これを参考に記述すればよい(と思う)。マニュアルはinfo grub。私は以下のようにしてみた:
# mkinitrd initramfs-3.0.1.img 3.0.1
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Scientific Linux (2.6.32-131.6.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-131.6.1.el6.x86_64 ro root=/dev/mapper/vg_sllaptop-lv_root rd_LVM_LV=vg_sllaptop/lv_root rd_LVM_LV=vg_sllaptop/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.32-131.6.1.el6.x86_64.img
title Scientific Linux (3.0.1)
root (hd0,0)
kernel /vmlinuz-3.0.1 ro root=/dev/mapper/vg_sllaptop-lv_root rhgb quiet
initrd /initramfs-3.0.1.img