1、查看现有内核的版本,uname–a 或uname –r
2、获取linux内核的新版本(eg:linux-2.6.39.4.tar.bz2)
3、将压缩包拷贝到目录/user/src下
4、解压,tarjvxf inux-2.6.39.4.tar.bz2
5、进入目录 /usr/src/linux-2.6.39.4
6、执行命令 make mrproper //去除内核的依赖关系及编译后的垃圾信息(清除配置文件)
7、执行命令 make menuconfig 或make xconfig 或 make gconfig
makemenuconfig 在以菜单模式进入内核配置界面
makexconfig 是在图形界面模式进入内核配置界面
makegconfig 在图形界面模式进入内核配置界面
8、第7步的目的时为了选择要编译的内核模块(生成.conifg文件),所以即使什么也不配置退出时也应该保存设置
9、 make clean //删除.o文件,确保所有文件重新编译
10、make bzImage //生成内核文件
不要用make,否则需要的时间更长,需要的硬盘空间也往往很大。常常报错:
{standar input}:Assemblermessage:
{standarinput}:11293:fatalerror:can't write fs/udf/udf.mod.o:Nospace left on device
{standarinput}:11293:fatalerror:can't close fs/udf/udf.mod.o:Nospace left on device
以上错误是因为磁盘控件不足引起的。
11、make modules #编译模块
12、makemodules_install //安装模块
13、makeinstall //安装内核
如看到类似如下提示,表示成功
sh/usr/src/kernels/linux-2.6.35.9/arch/x86/boot/install.sh2.6.35.9 arch/x86/boot/bzImage \
System.map "/boot"
此时/etc/grub.conf中对应两个内核,当default= 0时对应titleCentOS Linux (2.6.39.4);当default = 1时对应titlecentos (2.6.32-71.el6.i686),所以要修改default为0;已确保使用2.6.39.4内核
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub aftermaking changes to this #file
# NOTICE: Youhave a /boot partition. This means that
#all kernel and initrd paths are relative to /boot/,eg.
#root (hd0,0)
#kernel /vmlinuz-version roroot=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS Linux (2.6.39.4)
root(hd0,0)
kernel/vmlinuz-2.6.39.4 roroot=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_rootrd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgbquiet
initrd /initramfs-2.6.39.4.img
title centos (2.6.32-71.el6.i686)
root (hd0,0)
kernel/vmlinuz-2.6.32-71.el6.i686ro root=/dev/mapper/VolGroup-lv_rootrd_LVM_LV=VolGroup/lv_rootrd_LVM_LV=VolGroup/lv_swap rd_NO_LUKSrd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pcKEYTABLE=us crashkernel=auto rhgb quiet
initrd/initramfs-2.6.32-71.el6.i686.img
14、重启系统,查看内核
Reboot
Uname –r
15、为节省控件,可执行make clean 删除编译过程中产生的.0文件