在实际编译内核的过程中会出很多问题,对于初学者或接触不多的朋友来说,几乎百分百的会出些问题,而这些问题几乎90%以上与需要更新的系统工具有关,以下是我这段时间编译2.6内核的一些心得,借此机会,我向那些在论坛帮我解决问题的朋友表示感谢!不断学习、不断的进步!
在编译内核以前,我想我们首先应该要做的是要备份原有系统和数据,特别是在生产用机上,其实如果在生产机上如果现有内核用得稳定,我想也没有必要升级现有内核。
编译之前我们要先确认一些系统工具程序是否能够满足2.6内核的需要,在“http://www.stefan-winter.de/html/kernel_2_6_-_changes.html”上有具体的说明,我在实际当中发现,只用升级三个程序包就行了,其它随便,它们是:“module-init-tools”、“mkinitrd”、“procps”;其中编译安装module-init-tools程序包时有可能会出问题,解决方法在我BLOG中的另外一编文章中,大家如果在这出错,可以看看那编文章。在更新mkinitrd时,因为软件依赖关系,要先安装“lvm2”和“device-mapper”这两个程序,这两个程序可以从RHEL4的光盘中取得,也可以从rpm search中搜取。在升级过程序中,一般是先用“rpm -e softname”卸载软件,然后再使用“rpm -ivh softname*.rpm”,但有时因为软件依赖的原因,有可能卸载或安装不了,如果卸载不了,可以使用命令“rpm -e --nodeps softname”强行卸载软件;如果安装不了,可以使用“rpm -Uvh --force --nodeps softnaem*.rpm”强制安装上去。
在更新完系统工具程序包后,我们就可以升级内核了,从“ftp://ftp.kernel.org”下载自己需要的内核文件,下载到本地硬盘中,可以放在“/usr/src”目录中,也可以放在其它的目录,以前看别的朋友升级内核的文档时,总是说一定要放在“/usr/src”中,还要用“ln”命令建立一些连接,这些东西在实际应该当中,我想是可用可不用的。在安装编译前还有一个问题说的是,如果要打patch的话,如果在内核文件所在目录中就用-p1的参数,如果在上一级目录中就用-p0这个参数。其实安装编译内核的步骤只有四步“make menuconfig”、“make”、“make modules_install”、“make install”;如果是第一次编译不成功,在重新编译前可以运行“make mrproper”和“make clean”,将以前的配置信息和关连文件清除掉。如果想把编译的信息和警告错误信息记录下来,可以在用重定向命令输出到文件中,如“make &> make.log”。在编译安装完毕后,能发现编译程序已经自动的修改了“/etc/grub.conf”和把启动文件cp到“/boot”目录中了。运行“reboot”重启系统,用新内核启动系统,有可能"audit"这个服务启动不了,在2.6的内核中已经把“audit”编译进内核了,不像2.4中是以模块形式加载的,可以运行“ntsysv”把“audit”服务禁止或运行“chkconfig --del audit”把“audit”服务删除。
有的问题有可能没有说全,在以后的文档把它补齐或修改些文档。
不恨此花飞尽,恨西园,落红难缀。晓来雨过,遗踪何在?一池萍碎。春色三分,二分尘土,一分流水。细看来,不是杨花,点点是离人泪。