热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

使用RPM包对RedHat进行内核升级

文章标题:使用RPM包对RedHat进行内核升级。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  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 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-
  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使其生效。然后就可以重新启动了。
推荐阅读
  • 本文介绍了一种解决方案,当笔记本电脑不具备作为无线接入点的能力时,如何通过开启Android手机的便携WLAN热点功能,使笔记本能够连接到手机并共享其网络资源,从而实现上网。文中详细描述了在Linux系统下配置的具体步骤。 ... [详细]
  • Linux 文件系统结构详解
    本文详细介绍了Linux操作系统的文件系统结构,包括其独特的树状目录体系、根目录的作用、目录与磁盘分区的关系等,并对各主要目录的功能进行了深入解析。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • 本文探讨了如何在JavaScript中调用PHP函数及实现两者之间的有效交互,包括通过AJAX请求、动态生成JavaScript代码等方法。 ... [详细]
  • Windows 平台 Ruby on Rails 安装指南
    本文详细介绍如何在 Windows 系统上安装 Ruby 及其开发框架 Rails,包括必要的环境配置和组件安装。 ... [详细]
  • 本文详细介绍了如何构建MongoDB的ReplSet复制集群,包括环境准备、配置文件设置以及初始化复制集群的具体步骤。 ... [详细]
  • 如何解除Linux系统中SD卡的只读模式及解决SD卡写保护问题
    当您的SD卡在Linux系统或其他设备上显示为只读模式,或无法进行文件写入操作时,这可能是由于SD卡被设置为了写保护状态。本文将介绍一种非传统的解决方法,通过启用SD卡的SPI模式来尝试恢复其正常功能。 ... [详细]
  • 使用YUM在Linux虚拟机中安装MySQL
    本文详细介绍了如何在Linux虚拟机环境中通过YUM包管理器安装MySQL数据库的过程。包括环境准备、版本选择、安装步骤及启动验证等关键环节。 ... [详细]
  • 本文介绍了如何在三台CentOS 7.5虚拟机上通过Docker部署RabbitMQ集群,包括环境准备、容器创建、集群配置及故障处理等内容。 ... [详细]
  • 本文介绍了如何在IntelliJ IDEA开发环境中配置和使用Sigar库(版本1.6.4),包括下载、模块导入以及Linux环境下的库文件配置步骤。 ... [详细]
  • Linux环境下Memcached安装指南
    本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • 本文探讨了在Java应用中实现线程池优雅关闭的两种方法,包括使用ShutdownHook注册钩子函数以及通过SignalHandler处理信号量。每种方法都提供了具体的代码示例,并讨论了可能遇到的问题及解决方案。 ... [详细]
  • 本文详细介绍了如何在VMware环境下安装CentOS 7 Minimal,并成功配置GNOME桌面环境的过程。包括解决网络连接问题和设置默认图形界面等关键步骤。 ... [详细]
  • grep、sed、awk一、grep的用法1、grep简介grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep包 ... [详细]
author-avatar
k57784506
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有