[root@localhost ~]# uname -r
2.6.18-194.el5
1.下载linux-2.6.30内核包到/usr/src目录
cd /usr/src
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.9.tar.gz
tar -xzvf linux-2.6.30.9.tar.gz -C /usr/src
cd linux-2.6.30.9
yum install gcc
yum install ncurses-devel
make mrproper   清除环境变量,即清除配置文件
make menuconfig 在菜单模式下选择需要编译的内核模块:
 
networking support—>networking options—>network packet filtering framework(netfilter)
 
(1).core netfilter configuration
A 勾中”Netfilter connection tracking support”   -m state相关模块是依赖它的,不选则没有。
B 将netbios name service protocal support(new)    编译成模块,不然后面升级iptables后启动时会出错
C 勾中“Netfilter Xtables support (required for ip_tables)”
D 勾中 "TCPMSS" 选项
(2).IP: Netfilter Configuration
A 将 “IPv4 connection tracking support (require for NAT)” 编译成模块。
B 勾中IP tables support (required for filtering/masq/NAT) 。
C 将 “Full NAT” 下的 “MASQUERADE target support” 和 “REDIRECT target support” 编译成模块
(3).其它模块可以根据自己的需要进行选择,若不懂可以参考内核配置手册.
 
make clean   确保所有东西均保持最新状态.
make bzImage   生成内核文件
make modules 编译模块
make modules_install 安装模块
make install   安装
 
2.在/etc/grub.conf添加如下2.6.30的信息,并把default=1改为default=0
[root@localhost ~]# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:   You have a /boot partition.   This means that
#           all kernel and initrd paths are relative to /boot/, eg.
#           root (hd0,0)
#           kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#           initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5)
         root (hd0,0)
         kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
         initrd /initrd-2.6.18-194.el5.img
 
title CentOS (2.6.30)
         root (hd0,0)
         kernel /vmlinuz-2.6.30 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
         initrd /initrd-2.6.30.img