Linux内核升级:从2.4.20-8到2.6.13-4

这篇文章记录了我在VMWare下将Linux内核从2.4.20-8升级到2.6.13-4的整个过程。其实网上早有这样的文章,只是针对性不是太强,升级内核之后出现不能挂载CDROM和RPM不能使用等问题。如果你也有类似的问题,兴许你可以从这篇文章中找到答案。

环境:
硬件平台:VMWare 4.5
操作系统:Red Hat Linux
内核版本:2.4.20-8
目标版本:2.6.13-4

废话少说,让我们开始。

1.安装module-init-tools-3.0
  下载地址:http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/
  我不知道我为什么不能使用module-init-tools-3.1,总之在多次失败的打击之后,我只能选择module-init-tools-3.0。安装命令如下:
  tar -jxvf module-init-tools-3.0.tar.bz2
  cd module-init-tools-3.0
  ./configure --prefix=/
  make moveold
  make all install
  ./generate-modprobe.conf /etc/modprobe.conf
 
2.下载并安装device-mapper-1.00.19-2.i386.rpm,lvm2-2.00.25-1.01.i386.rpm以及mkinitrd-4.1.18-2.i386.rpm
  rpm -ivh device-mapper-1.00.19-2.i386.rpm --nodeps
  rpm -e lvm-1.0.3-12 --nodeps
  rpm -e mkinitrd-3.4.42-1 --nodeps
  rpm -ivh lvm2-2.00.25-1.01.i386.rpm --nodeps
  rpm -ivh mkinitrd-4.1.18-2.i386.rpm --nodeps
  记得删除前用rpm -q查一下你操作系统上的已安装版本。如果不更新以上几个包在make install时会提示以下错误:
  mkinitrd failed
  make[1]: *** [install] Error 1
  make: *** [install] Error 2
 
3.编译内核
  下载内核:到http://www.kernel.org/pub/linux/kernel/v2.6/上下载linux-2.6.13.4.tar.bz2,然后运行如下命令:
  tar -jxvf linux-2.6.13.4.tar.bz2
  mv linux-2.6.13.4 /usr/src
  cd /usr/src/linux-2.6.13.4
 
  make menuconfig
  这一步你可以选择你需要将哪些功能编译成模块,哪些是需要直接编译进内核的。一般来说,下面几个步骤是必须的:
 
  A.Device Drivers->SCSI device support-><*>SCSI device support
  B.Device Drivers->SCSI device support-><*>SCSI disk support
  C.Device Drivers->SCSI device support->SCSI low-level drivers-><*>BusLogic SCSI support
  如果这几项不选,等编译完成后重启后会发现系统会提示:No module BusLogic found for kernel的错误,然后死掉
 
  D.File systems-><*>Ext3 journalling file system support
  E.File systems->[*]Ext3 Security Labels
  F.File systems->[*]JBD (ext3) debugging support
  如果这几项不选则重启系统后会提示:Mount: error 19 mounting ext3
 
  G.Device Drivers->Network device support->Ethernet (10 or 100Mbit)-><*>AMD PCnet32 PCI support
  如果这一项不选网卡不能正常工作
 
  H.Device Drivers->ATA/ATAPI/MFM/RLL support-><*>Include IDE/ATAPI CDROM support
  如果这一项不选则升级内核后无法挂载CDROM(根据你的CDROM类型自行选择)
 
  终于可以编译了!运行:
  make modules_install
  make install
  即完成整个内核的编译过程。
 
4.善后工作
  内核编译完成后重启系统,发现你有两个内核可以选择了,选择刚才编译好的内核进去,发现rpm命令不能用了,这个可以通过export LD_ASSUME_KERNEL=2.2.5来解决。我一般是将其放到/etc/profile中。另外,IPTables,USB等模块在系统Load的时候失败,你可以按照你的需求再去仔细定制内核。

你可能感兴趣的:(vmware,Security,ext,include,debugging,linux内核)