目的:
把CentOS 6.3自带的内核(2.6.32.279)升级到3.6.0
步骤:
kernel 3.6.0下载:www.kernel.org
tar jxvf linux-3.6.tar.bz2 -C /usr/src #将解压包放在/usr/src中
cd linux-3.6
make mrproper #清除环境变量,即清除配置文件,清除掉以前升级留下的文件
make menuconfig
make menuconfig在菜单模式下选择需要编译的内核模块:
networking support—>networking options—>network packet filtering framework(netfilter)
(1) core netfilter configuration
A 将”Netfilter connection tracking support” 编译成模块
B 将netbios name service protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错
C 将“Netfilter Xtables support (required for ip_tables)”编译成模块
(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 dep #建立编译时所需的从属文件,如果内核从未编译过,此步可跳过
make clean #确保所有东西均保持最新状态.如果内核从未编译过,此步可跳过
make bzImage #生成内核文件在/usr/src/linux/arch/i386/boot
make modules #编译模块
make modules_install #安装模块
make install #安装
mkinitrd /boot/initramfs-3.6.0.img #根据内核版本和指定参数生成映像文件(似乎不需要,已经是3.6.0)
cp /usr/src/linux-3.6/arch/x86_64/boot/bzImage /boot/vmlinuz-3.6.0 #(似乎不需要 ,已经是3.6.0 )
cp /usr/src/linux-3.6/System.map /boot/System.map-3.6.0 #(似乎不需要,已经是3.6.0)
在/etc/grub.conf添加如下3.6.0的信息,并把default=1改为default=0
重启成功后,uname -a或uname -r再看看内核,是3.6.0,ok了。
附: