当前位置: 首页 > news >正文

【Linux】Centos7升级内核的方法:yum更新(ELRepo)

在这里插入图片描述

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。
🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。
🌼 同时洲洲已经建立了程序员技术交流群,如果您感兴趣,可以私信我加入社群,可以直接vx联系(文末有名片)v:bdizztt
🖥 随时欢迎您跟我沟通,一起交流,一起成长、进步!点此也可获得联系方式~

本文目录

  • 前言
  • 一、Linxu内核
    • 1.1 内核解析
    • 1.2 内核的分类
    • 1.3 内核的选择
    • 1.4 内核的升级
    • 1.5 注意事项
  • 二、ELRepo升级内核
  • 总结

前言

Linux操作系统的多样性很大程度上归功于其内核的灵活性和可定制性。内核作为操作系统的核心,不仅决定了系统的性能和稳定性,也影响着系统的安全性和功能性。

Linux内核是操作系统的核心,负责管理系统资源、控制程序执行、处理硬件设备等。不同版本的内核对应着不同的功能和性能表现,这也是Linux发行版多样化的原因之一。

一、Linxu内核

1.1 内核解析

在Linux系统中,我们可以通过uname -r命令查看当前使用的内核版本。例如,3.10.0-1127.19.1.el7.x86_64这个版本号中,3是主版本号,10是次版本号,表明这是一个稳定的版本,0是修订版本号,而1127.19.1则是发行版的补丁版本号。el7表示这是为RedHat/CentOS系列发行版专用的内核,x86_64指明它适用于64位CPU的操作系统。

1.2 内核的分类

Linux内核可以分为官方内核和各大Linux发行版内核。内核版本号的分类如下:

Prepatch/RC:主要面向内核开发人员和Linux爱好者,包含新功能,需要从源代码编译。
Mainline:由Linus Torvalds维护,每2-3个月发布一次,引入所有新功能。
Stable:主线内核发布后即被认为是稳定的,按需发布BUG修复版本。
Longterm:长期维护版本,用于修复旧版内核的重大BUG,发布频率较低。

1.3 内核的选择

在众多内核版本中,选择一个稳定且经过充分测试的版本至关重要。Longterm内核因其稳定性和较低的BUG修复频率而成为理想的选择。例如,5.4.69版本的内核就是一个长期维护的稳定版本。

选择Longterm内核的理由包括:
稳定性:Longterm内核经过长时间的测试和使用,大部分BUG已被修复。
功能性:新功能的引入使得Longterm内核能够提供更多的系统功能。
向下兼容性:内核的向下兼容性保证了在升级过程中系统的兼容性和稳定性。

1.4 内核的升级

Linux系统通常支持多版本内核共存,因此在升级内核时,我们可以选择保留旧版本内核,仅安装新版本内核,并在系统启动时通过GRUB选择使用新版本内核。

升级策略
1.备份当前系统:在进行内核升级前,备份当前系统状态,以防万一。
2.下载新内核:从可信的源下载新内核的源码包或二进制包。
3.安装新内核:根据系统和内核类型,编译并安装新内核。
4.更新GRUB配置:确保GRUB配置文件中包含了新内核的启动项。
5.重启并选择新内核:重启系统,在GRUB菜单中选择新内核启动。

1.5 注意事项

不要删除旧内核:保留旧内核可以在新内核出现问题时快速回退。

测试新内核:在生产环境部署新内核前,应在测试环境中充分测试其稳定性和兼容性。

二、ELRepo升级内核

ELRepo是一个为Red Hat Enterprise Linux及其衍生版(如CentOS)提供最新内核的第三方仓库。使用ELRepo可以轻松升级到最新的主线(Mainline)或长期支持(Long Term Support, LTS)内核。

步骤1:检查已安装的内核版本

在开始升级之前,首先要确认当前系统中已安装的内核版本。可以通过执行以下命令来查看:

uname -rs

例如,输出结果可能是Linux 3.10.0-1127.19.1.el7.x86_64。

步骤2:启用ELRepo仓库

接下来,需要启用ELRepo仓库以获取新的内核包。按照以下步骤操作:

导入ELRepo的GPG密钥:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装ELRepo仓库包:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

查看可用的内核版本:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

步骤3:安装新内核

根据输出的内核版本列表,选择一个合适的版本进行安装。可以选择安装主线版本(较新但可能不稳定)或长期稳定版本(经过充分测试的稳定版本)。

安装主线版本(以5.8.13为例):

yum --enablerepo=elrepo-kernel install kernel-ml -y

安装长期稳定版本(以4.4.238为例):

yum --enablerepo=elrepo-kernel install kernel-lt -y

安装完成后,重启计算机,并在GRUB启动菜单中手动选择新安装的内核版本。

步骤4:设置GRUB默认内核版本
为了让新安装的内核成为默认启动项,需要修改GRUB配置文件:

打开并编辑 /etc/default/grub 文件,设置 GRUB_DEFAULT=0:

nano /etc/default/grub

修改配置如下:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

保存并关闭文件后,更新GRUB配置:

grub2-mkconfig -o /boot/grub2/grub.cfg

重启计算机,新内核将作为默认内核启动。

总结

📝Hello,各位看官老爷们好,我已经建立了CSDN技术交流群,如果你很感兴趣,可以私信我加入我的社群。

📝社群中不定时会有很多活动,例如每周都会包邮免费送一些技术书籍及精美礼品、学习资料分享、大厂面经分享、技术讨论谈等等。

📝社群方向很多,相关领域有Web全栈(前后端)、人工智能、机器学习、自媒体副业交流、前沿科技文章分享、论文精读等等。

📝不管你是多新手的小白,都欢迎你加入社群中讨论、聊天、分享,加速助力你成为下一个大佬!

📝想都是问题,做都是答案!行动起来吧!欢迎评论区or后台与我沟通交流,也欢迎您点击下方的链接直接加入到我的交流社群!~ 跳转链接社区~

在这里插入图片描述

相关文章:

  • 一键生成迷宫-Word插件-大珩助手新功能
  • RabbitMQ简单使用方法,以异步处理日志为例:
  • 西门子PLC学习之数据块的单个实例,多重实例与参数实例间的区别
  • codeforces round 949 div2
  • 【Linux】进程2——管理概念,进程概念
  • c++调用动态库LNK2019无法解析的外部符号LNK1120无法解析的外部命令
  • 【C++】植物大战僵尸杂交版自动存档——防闪退存档消失
  • 【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
  • 常见的api:Runtime Object
  • day 37 738.单调递增的数字
  • Springboot引入redis启动报错问题的解决
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • 【教程】如何实现WordPress网站降级(用于解决插件和主题问题)
  • C++STL---stack queue模拟实现
  • 混合关键性系统技术【同构异构】【SMP、AMP、BMP】【嵌入式虚拟化】
  • 【Leetcode】101. 对称二叉树
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【RocksDB】TransactionDB源码分析
  • Android Volley源码解析
  • es6(二):字符串的扩展
  • ES6系列(二)变量的解构赋值
  • gf框架之分页模块(五) - 自定义分页
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • If…else
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Mysql数据库的条件查询语句
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • SAP云平台里Global Account和Sub Account的关系
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Vultr 教程目录
  • zookeeper系列(七)实战分布式命名服务
  • 关于List、List?、ListObject的区别
  • 你不可错过的前端面试题(一)
  • 前端路由实现-history
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 线上 python http server profile 实践
  • 一个SAP顾问在美国的这些年
  • 以太坊客户端Geth命令参数详解
  • Linux权限管理(week1_day5)--技术流ken
  • 移动端高清、多屏适配方案
  • #ifdef 的技巧用法
  • $.proxy和$.extend
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (java)关于Thread的挂起和恢复
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)uboot源码分析