内核源代码可以从此处下载最新版的:http://www.kernel.org/pub/linux/kernel/v2.6/。在写文章时,最新版是2.6.29.1。下载地址为:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.1.tar.bz2。
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.1.tar.bz2 # tar xjvf linux-2.6.29.1.tar.bz2 # cd /usr/src/linux-2.6.29.1 # make menuconfig |
在此,出现文字模式的菜单设置编译内核的选项。如图所示。

选择适当的内核选项后,保存退出。
# make (可能要很长时间) # make modules_install # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.29.1 # cp System.map /boot/System.map-2.6.29.1 # mkinitrd /boot/initrd-2.6.29.1.img 2.6.29.1 |
如果在执行mkinitrd命令时,提示“No module dm-mem-cache found for kernel 2.6.29.1, aborting.”时,表明该版本的mkinitrd有bug。升级mkinitrd或参考这篇文章解决这个问题。
解决方法,1是当使用mkinitrd时,使用”–without-dmraid”这个参数。2是在使用mkinitrd之前,先创建一个noraid文件。创建方法如下:
# echo "DMRAID=no" > /etc/sysconfig/mkinitrd/noraid # chmod 755 /etc/sysconfig/mkinitrd/noraid |
然后再运行mkinitrd命令。
执行完mkinitrd后,就要在启动菜单中增加编译好的内核信息,以便启动时可以选择内核版本。
打开/etc/grub.conf文件,增加以下内容到文件结尾。
title CentOS (2.6.29.1)
root (hd0,0)
kernel /vmlinuz-2.6.29.1 ro root=/dev/VolGroup00/LogVol00 rhgb quiet vga=791
initrd /initrd-2.6.29.1.img
保存,重启,进行grub的启动菜单中,选择”CentOS(2.6.29.1)”,即可使用编译好的内核。
标签:CentOS, linux

Post a Comment