VM用にKernelの再構築を行う
カーネルソースを取得
と、その前に必要なモジュールをインストールしておく
# yum install gcc rpm-build redhat-rpm-config ncurses-devel
どうせなら最新ソースを確認して取得
# cd # wget http://mirrors.kernel.org/centos/4.5/updates/SRPMS/kernel-2.6.9-55.0.2.EL.src.rpm # mkdir -p /usr/src/redhat/{BUILD,RPMS,SOURCES,SPECS,SRPMS} # rpm -i kernel-2.6.9-55.0.2.EL.src.rpm # cd /usr/src/redhat/SPECS/ # rpmbuild -bp --target=i686 kernel-2.6.spec
カーネルソースを変更
カーネルソースの以下の部分を変更します
# cd ../BUILD/kernel-2.6.9/linux-2.6.9/ # vi include/asm-i386/param.h ** -#define HZ 1000 /* Internal kernel timer frequency */ +#define HZ 100 /* Internal kernel timer frequency */ vi include/asm-x86_64/param.h ** -#define HZ 1000 /* Internal kernel timer frequency */ +#define HZ 100 /* Internal kernel timer frequency */
ソースを見るに単純に
#define HZ 1000 /* Internal kernel timer frequency */
を消すだけでもよさそう、後ろに定義が無かったら定義するコードがあるからね
Makefileを変更
# vi Makefile ** -EXTRAVERSION = -prep +EXTRAVERSION = -55.0.2.EL.vm -#export INSTALL_PATH=/boot +export INSTALL_PATH=/boot
カーネルコンパイル
これはさすがに時間かかるよ
前のconfigから今回のconfigを作ってコンパイルってのりです
# make mrproper # cp configs/kernel-2.6.9-i686.config .config # make oldconfig ..... # make ..... # make modules_install ..... # installkernel 2.6.9-55.0.2.EL.vm arch/i386/boot/bzImage System.map
Grubの設定を確認
# vi /etc/grub.conf default=0 <=新しく追加されているカーネルに設定 ... title CentOS (2.6.9-55.0.2.EL.vm) root (hd0,0) kernel /boot/vmlinuz-2.6.9-55.0.2.EL.vm ro root=/dev/VolGroup00/LogVol00 clock=pit initrd /boot/initrd-2.6.9-55.0.2.EL.vm.img
最後に再起動して
# uname -r 2.6.9-55.0.2.EL.vm
OK