之前尝试过将系统升级到2.6.31,结果失败了,由于工作太紧张,也没有去继续尝试,最近的时间稍微有些空,就又想起来这事情了。到www.kernel.org看了下,最新的内核版本都到2.6.33了,就打算直接升级2.6.33了。一、环境使用的Vmware安装装的RedHat5.3,下面都是使用的root用户进行操作#uname -r2.6.18-53.el5二、升级过程1) 下载内核升级之前到www.kernel.org看看有没有最新的内核,目前为止最新的是2.6.33,下载地址是:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.tar.bz22) 将linux-2.6.33.tar.bz2拷贝到/usr/local/src目录下面,使用下面的命令解压,得到文件夹linux-2.6.33tar xjvf linux-2.6.33.tar.bz23) make distclean假如是第一次编译,这一步骤可以省掉的。4) 复制原有的config文件到linux-2.6.33目录#cd /usr/local/src/linux-2.6.33# cp /boot/config-2.6.18-53.el5 .config5) make menuconfig选择Load an Alternate Configuration File,导入.config文件,更加自己的需要添加功能或者进行精简。注:内核配置有两种方法,一种是直接置入内核* ;另一种是编成模块M ;两种方法各有优点;直接编入内核的,比如设备的启动,不再需要加载模块的这一过程了;而编译成模块,则需要加载设备的内核支持的模块;但直接把所有的东西都编入内核也不是可行的,内核体积会变大,系统负载也会过重。我们编内核时最好把极为重要的编入内核;其它的如果您不明白的,最好用默认[3]。修改完毕选择Save an Alternate Configuration File,然后退出配置。 6) 修改.config文件在.config文件搜索CONFIG_SYSFS_DEPRECATED_V2,会发现# CONFIG_SYSFS_DEPRECATED_V2 is not set这一行,将该行修改为CONFIG_SYSFS_DEPRECATED_V2=y假如不修改该行,在升级重新启动后会报如下的错,导致启动失败Volume group "VolGroup00" not foundUnalbe to access resume device (/dev/VolGroup00/LogVol00)mount: could not find filesystem "/dev/root"setuproot:moving /dev failed: No such file or directorysetuproot:error mounting /proc: No such file or directorysetuproot:error mounting /sys: No such file or directoryswitchroot: mount failed: No such file or directoryKernel panic - not syncing:Attempted to kill init!7) 编译内核#make all大概需要半个小时到一个小时的时间。8) #make modules_install9) #make install这时候会出现3个警告[2]WARNING: No module dm-mem-cache found for kernel 2.6.33, continuing anywayWARNING: No module dm-message found for kernel 2.6.33, continuing anywayWARNING: No module dm-raid45 found for kernel 2.6.33, continuing anyway经过测试,这3个警告不会影响内核的升级,参考资料[2]中有相关的说明。10) 修改initrd文件假如在升级重启后会报的错误insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits,这是由于initrd里面的init中加载dm-region-hash.ko这个模块重复了,因此需要修改生成的initrd文件(不是所有的机器都会出现这个错),修改的方式如下[1],方法见参考资料1:a) 解压initrd # cp /boot/initrd-2.6.33.img /tmp # cd /tmp/ # ls initrd-2.6.33.img # mkdir newinitrd # cd newinitrd/ # zcat ../initrd-2.6.33.img |cpio -i # ls bin dev etc init lib proc sbin sys sysroot b) 编辑init,删掉重复的两行echo "Loading dm-region-hash.ko module" insmod /lib/dm-region-hash.ko echo "Loading dm-region-hash.ko module" insmod /lib/dm-region-hash.ko c) 重新打包initrd # find .|cpio -c -o > ../initrd # cd .. # gzip -9 < initrd > initrd-2.6.33.imgd) 将initrd重新复制到/boot目录下#cp initrd-2.6.33.img /boot11) 重新启动启动成功。#uname –r2.6.33
Ubuntu升级到10.04后的使用报告Linux内核模块开发之Hello world相关资讯 redhat
- 为什么像 RedHat 那样的开源旗手很 (12/23/2014 07:50:53)
- 红帽目录服务RHDS(Red Hat (11/28/2012 19:14:22)
- RedHat 6 配置网卡team (09/28/2012 18:52:50)
| - RedHat Linux 用户登录认证失败 (06/24/2014 19:56:55)
- Red Hat Enterprise Linux 5.8日志 (09/29/2012 11:41:27)
- Red Hat Enterprise Linux 5--- (09/12/2012 17:10:35)
|
本文评论 查看全部评论 (0)