1.准备工作 1.1.确定是否要进行内核升级 通常需要进行内核升级是为了: a.支持新安装的硬件设备:比如您刚买了一块新的声卡,但是当前的内核没有提供其驱动,而新版本内核可以驱动该声卡。 b.当前的系统内核被发现有安全漏洞,需要升级到新的版本进行修复。 1.2.确定所需下载的rpm包 首先通过以下命令确定系统当前所安装的内核包: # rpm -qa grep kernel kernel-source-2.4.2-2 kernel-headers-2.4.2-2 kernel-2.4.2-2 我们需要下载这三个包的新版本,以及以下三个非内核包的新版本: [root@test update]# rpm -qa grep init initscripts-5.83-1 mkinitrd-3.0.10-1 SysVinit-2.78-17 1.3.获取新版本内核rpm包 从FTP://updates.redhat.com/7.1/en/os/i386/获取以上六个个包的新版本的rpm包,也就是: kernel-source-2.4.3-12.i386.rpm kernel-headers-2.4.3-12.i386.rpm kernel-2.4.3-12.i386.rpm SysVinit-2.78-17.i386.rpm 因为当前RedHat只发布了SysVinit-2.78-17.i386.rpm,所以就只下载了这个包。 1.4.检验新版本内核rpm包 为了保证下载过程不出错,使用以下命令对下载的包进行校验: # rpm -K --nogpg *rpm kernel-2.4.3-12.i386.rpm: md5 OK kernel-headers-2.4.3-12.i386.rpm: md5 OK kernel-source-2.4.3-12.i386.rpm: md5 OK SysVinit-2.78-17.i386.rpm: md5 OK 如果校验结果为OK,说明传输过程没问题,所下载的rpm包是完整的。就可以接着做下一步,如果rpm不完整,请重新下载一次,最好使用支持断点续传的下载工具进行下载。 1.5.制作应急启动盘 使用以下命令制作一张系统启动盘,以便在系统升级失败后可以启动及恢复老系统: # mkbootdisk --device /dev/fd0 2.4.2-2 Insert a disk in /dev/fd0. Any information on the disk will be lost. Press <Enter> to continue or ^C to abort: 2.4.2-2是当前的系统内核版本,可以使用以下命令进行确定: # uname -r 2.4.2-2
2.升级内核 2.1.升级非内核rpm包: #rpm –Uvh SysVinit-2.78-17.i386.rpm 2.2.升级内核源码rpm包: # rpm -Uvh kernel-source-2.4.3-12.i386.rpm kernel-headers-2.4.3-12.i386.rpm Preparing... ########################################### [100%] 1:kernel-source ########################################### [ 50%] 2:kernel-headers ########################################### [100%] 2.3.升级内核rpm包: # rpm -Uvh kernel-2.4.3-12.i386.rpm Preparing... ########################################### [100%] 1:kernel ########################################### [100%] 2.4.重新配置初始化RAM盘 如果系统中有SCSI设备,并且正在使用SCSI设备驱动模块,则必须重新配置初始化RAM盘,如果没有SCSI设备,可以直接跳到第5个步骤。 判断系统中是否有SCSI设备驱动模块的方法: # more /etc/modules.conf grep scsi alias scsi_hostadapter megaraid alias scsi_hostadapter1 sym53c8xx alias scsi_hostadapter2 sym53c8xx 也即,如果这个命令有输出时,表明您的系统正在使用SCSI设备驱动模块,这时我们就必须重新配置初始化RAM盘。 所谓的RAM盘通常是用来驻留模块的,这些模块必须在内核访问相关设备(通常是SISC设备)前载入RAM盘中。 首先,查看/boot下的文件,以获取刚才安装的内核版本: # ls -l /boot/ total 3408 … -rwxr-xr-x 1 root root 2174722 Jun 9 01:57 vmLinux-2.4.3-12 lrwxrwxrwx 1 root root 16 Jul 26 22:56 vmlinuz -> vmlinuz-2.4.3-12 … 可见,我们新的内核版本是2.4.3-12,我们使用以下命令来创建新的RAM盘: #mkinitrd initrd-2.4.3.img 2.4.3-12 2.5.更新lilo信息 更新您的lilo.conf文件如下所示: image=/boot/vmlinuz-<新安装的内核版本号> label=linux root=<您的/分区> initrd=/boot/initrd-<RAM盘的版本号> read-only 我的机器上的lilo.conf更新文件如下: # more /etc/lilo.conf boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 message=/boot/message linear default=linux image=/boot/vmlinuz-2.4.3-12 label=linux read-only root=/dev/hda1 更新完成后,别忘了执行lilo使其生效。然后就可以重新启动了。
[1] [2] 下一页
(出处:http://www.sheup.com)
上一页 [1] [2]