首先,要有以下四套软件包:
1、Linux的2.6.18版本内核包(linux-2.6.18.tar.bz2):作用就不多说了,自然是内核的源码包;
2、Modutils 3.2 工具包(module-init-tools-3.2.tar.bz2):原2.4.x下的工具包不适用于2.6.x,必须升级;
3、Mkinitrd 4.1.18-2 工具包(mkinitrd-4.1.18-2.i386.rpm):在make install时需要使用该工具;
4、Device Mapper 开发包(device-mapper-1.00.19-2.i386.rpm):Mkinitrd工具包依赖该包;
5、LVM 开发包(lvm2-2.00.25-1.01.i386.rpm):Device Mapper依赖该包;
6、Binutils 开发包(binutils-2.17.tar.gz):如升级安装于虚拟机上的Red Hat Linux,则必需该包。
开始安装工具包!首先安装Modutils 3.2 工具包,将当前目录切换到module-init-tools-3.2.tar.bz2的下载目录下,依次执行如下命令:

Bunzip2  module-init-tools-3.2.tar.bz2
 cd module-init-tools-3.2
 ./configure --prefix=/
 make moveold(将原来的工具程序改名,这样还可继续使用原来的2.4.x内核)
 make all install
 ./generate-modprobe.conf /etc/modprobe.conf(生成2.6.x内核的新配置文件)
 下面安装Mkinitrd 4.1.18-2 工具包,将当前目录切换到mkinitrd-4.1.18-2.i386.rpm、device-mapper-1.00.19-2.i386.rpm和lvm2-2.00.25-1.01.i386.rpm的下载目录(三个文件最好在同一目录)下,依次执行如下命令:
 rpm  –ivh  –nodeps  --force  lvm2-2.00.25-1.01.i386.rpm
 rpm  -ivh  --nodeps  --force  device-mapper-1.00.19-2.i386.rpm
 rpm  -ivh  --nodeps  --force  mkinitrd-4.1.18-2.i386.rpm
 将当前目录切换到binutils-2.17.tar.gz下载目录,依次执行如下命令:
 gunzip  binutils-2.17.tar.gz
 cd binutils-2.17
 ./configure
 make
 make install
 好了,所有安装包均已齐备,开始编译新内核!
 将当前目录切换到linux-2.6.18.tar.bz2下载目录,依次执行如下命令:
 cp ./linux-2.6.18.tar.bz2  /usr/src 进入该目录
 bunzip2  linux-2.6.18.tar.bz2
 cd linux-2.6.18p 
 make mrproper
 make menuconfig
 此时会出现一个图形界面,列出了所有的内核配置选项,其中有几项是必需的,用“Y”键选中,尽量全部选为配置进内核:
 “Loadable Module support”中,选“Module unloading”和“Automatic kernel module loading”;
 “Device Drivers”→“Block Devices”中,选“Loopback device support”;
 “Device Drivers”→“Multi-device support(RAID and LVM)”中,选“device mapper support”;
 “Device Drivers”→“Graphics support”中,选“Support for frame buffer devices”;
 “Device Drivers”→“USB support”中,若不在虚拟机环境中,应尽量全选以支持USB;
 “Device Drivers”→“Network device support ”→“Ethernet (10 or 100Mbit)”中,选“AMD PCnet32 PCI support”;
 由于Red Hat 9.0使用ext3作为文件系统,故“File System”中的所有关于ext2、ext3的选项必选;
 设置完成!开始进行真正的内核编译工作。依次执行如下命令:
 Make bzImage
 make modules
 make modules_install
 make install
 内核编译到此就完全结束了,若想要成功启动内核,还要做一些后续的工作。依次执行如下命令:
 cp /usr/src/linux-2.6.18/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18(使用VMware的用户必需)
 cp /usr/src/linux-2.6.18/System.map /boot/System.map-2.6.18
 cd /boot
 rm -rf System.map(删除原有的内核启动连接)
 ln -s System.map-2.6.18 System.map(设置新的内核启动连接)
 若你的Linux为GRUB启动,则还要修改相应的启动文件:
 cd /boot
 new-kernel-pkg --mkinitrd --depmod --install 2.6.18
 df(该命令查看根分区,即标识为“/”的分区,看好后要记住它的名字,假设为/dev/sda2)
 vi  /boot/grub/grub.conf (前提是安装了grub)
 在弹出的编辑窗口中,将“default=1”改为“default=0”,并将“kernel”行的“LABEL=/”改为上一步所查看的分区,按我们上一步的假设,改完以后的“kernel”行应该是下面的样子:
 kernel /vmlinuz-2.6.20 ro root=/dev/sda2 rhgb quiet
 建议:1、虚拟机推荐使用IDE硬盘。2、推荐有关ATA/SCSI的驱动选项全部选上。
 好了,整个内核升级大功告成!重新启动之后,在操作系统选择栏中会看到如下两项:
 Red Hat Linux(2.6.18)
 Red Hat Linux(2.4.20-8)
 选择第一项,就可以真正使用2.6.18的Linux系统了。
 Enjoy the new kernel!^_^!