软件:VMware+RHEL6.4+kernel-linux-3.11.2
1.首先下载内核,可以从这里https://www.kernel.org/下载最新的内核
2.解压后,进入内核根目录,清除内核中间文件,配置文件,我下载的是linux-3.11.2
#cd linux-3.11.2
#make distclean
3.选择参考配置文件
使用正在运行的RHEL6.4的内核配置作为参考
#cp /boot/config-2.6.32-358.el6.x86_64 .config
4.使.config文件配置生效
#make menuconfig
保存、退出
5.编译内核(大概需要几分钟时间,产生的内核映象bzImage位于arch/x86/boot/目录下)
#make bzImage
6.编译内核模块
#make modules
7.安装内核模块(完成安装后,编译好的内核模块会从源码目录复制到/lib/modules/目录下 )
#make modules_install
8.制作init ramdisk
作用:提供一种让内核可以简单使用ramdisk的能力,包括:格式化一个ramdisk;加载文件系统内容到ramdisk;将ramdisk作为根文件系统。
#cd .. /进入到上一级目录(内核源码根目录的父目录)
#mkinitrd initrd-3.11.2 3.11.2 /在当前目录下生成initrd-3.11.2文件
9.安装内核
linux系统启动时,会从/boot目录下寻找内核文件与init ramdisk,故将制作好的内核文件与init ramdisk文件复制到/boot目录下
#cp /home/david/linux-3.11.2/arch/x86/boot/bzImage /boot/vmlinuz-3.11.2
(vmlinuz-3.11.2文件名可以任意取(不推荐))
#cp /home/david/initrd-3.11.2 /boot/
10.修改启动文件grub.conf
#vi /etc/grub.conf
在文件末添加如下代码:
title my linux (3.11.2)
root (hd0,0)
kernel /vmlinuz-3.11.2 ro root=UUID=22a9a3e5-276a-44a5-a091-85c435934f9b rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initrd-3.11.2
11.重启系统,会发现grub选择菜单中多了我们刚制作好的内核,进入内核测试能否使用。
注:若没有出现grub启动菜单,将grub.conf中的hiddenmenu这一行注释掉就可以了