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

centos7升级内核至最新

应用背景

最近在接触docker,其对内核版本要求较高,就连目前使用的centos7.x默认内核版本为3.10.0-xxx,也是刚好满足其最低要求,故借此机会记录一下升级内核的操作步骤。

 

测试环境:

系统当前内核版本小版本升级
CentOS 7.63.10.0-9573.10.0-957.5.1

 

 

 

系统当前内核版本大版本升级
CentOS 7.63.10.0-9574.20.12-1(目前最新)

 

 

 

操作步骤:

小版本升级

1. 查看当前和可升级版本

[root@server-1 ~]# yum list kernel
Installed Packages
kernel.x86_64                           3.10.0-957.el7                                      @anaconda
Available Packages
kernel.x86_64                           3.10.0-957.5.1.el7                                  updates  

2. 升级

 [root@server-1 ~]# yum update kernel -y 

3. 重启并检查

 [root@server-1 ~]# reboot   

 [root@server-1 ~]# uname -r 

 

大版本升级

1. 载入公钥

[root@server-1 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2. 升级安装ELRepo

[root@server-1 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

3. 载入elrepo-kernel元数据

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel repolist

4. 查看可用的rpm包

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
Installed Packages
kernel.x86_64                           3.10.0-957.el7                           @anaconda    
kernel.x86_64                           3.10.0-957.5.1.el7                       @updates     
kernel-tools.x86_64                     3.10.0-957.el7                           @anaconda    
kernel-tools-libs.x86_64                3.10.0-957.el7                           @anaconda    
Available Packages
kernel-lt.x86_64                        4.4.176-1.el7.elrepo                     elrepo-kernel
kernel-lt-devel.x86_64                  4.4.176-1.el7.elrepo                     elrepo-kernel
kernel-lt-doc.noarch                    4.4.176-1.el7.elrepo                     elrepo-kernel
kernel-lt-headers.x86_64                4.4.176-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools.x86_64                  4.4.176-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools-libs.x86_64             4.4.176-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       4.4.176-1.el7.elrepo                     elrepo-kernel
kernel-ml.x86_64                        4.20.12-1.el7.elrepo                     elrepo-kernel // 安装目标版本
kernel-ml-devel.x86_64                  4.20.12-1.el7.elrepo                     elrepo-kernel
kernel-ml-doc.noarch                    4.20.12-1.el7.elrepo                     elrepo-kernel
kernel-ml-headers.x86_64                4.20.12-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools.x86_64                  4.20.12-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools-libs.x86_64             4.20.12-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       4.20.12-1.el7.elrepo                     elrepo-kernel

说明

lt  :long term support,长期支持版本;

ml:mainline,主线版本;

5. 安装最新版本的kernel

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml.x86_64  -y

6. 删除旧版本工具包

[root@server-1 ~]# yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64  -y

7. 安装新版本工具包

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64  -y

8. 查看内核插入顺序

[root@server-1 ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-ca0f6fb3c5f24478abc0a2e275281d7a) 7 (Core)

说明:默认新内核是从头插入,默认启动顺序也是从0开始(当前顺序还未生效),或者使用:

[root@server-17 ~]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-ca0f6fb3c5f24478abc0a2e275281d7a) 7 (Core)
View Code

其中文件 /etc/grub2.cfg 和 /boot/grub2/grub.cfg 内容一致。

9. 查看当前实际启动顺序

[root@server-1 ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)

10. 设置默认启动

[root@server-1 ~]# grub2-set-default 'CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)'
[root@server-1 ~]# grub2-editenv list
saved_entry=CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)

或者直接设置数值

[root@server-1 ~]# grub2-set-default 0  // 0代表当前第一行,也就是上面的4.20.12版本那一行内容
[root@server-1 ~]# grub2-editenv list
saved_entry=0

11. 重启并检查

 [root@server-1 ~]# reboot 

 [root@server-1 ~]# uname -r 

 

 

参考: https://github.com/gjmzj/kubeasz/blob/master/docs/guide/kernel_upgrade.md

    https://wiki.centos.org/HowTos/Grub2#head-535f476a61e62f24bc150c73f7e0816f85345f46   

转载于:https://www.cnblogs.com/ding2016/p/10429640.html

相关文章:

  • 什么软件可以剪辑音乐?
  • 初探 Vue 生命周期和钩子函数
  • 关于AWS的Firecracker,技术人应该知道的十件事
  • spring boot 2.0单元测试
  • ansible API 常用模块
  • 追踪解析 FutureTask 源码
  • 再次简单明了总结flex布局,一看就懂...
  • 倒计时3天,公链黑马YOUChain正式开启节点测试
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 可达性分析算法
  • MySQL的sql语言分类DML、DQL、DDL、DCL、
  • 在IIS上部署ASP.NET Core项目出现错误 500.19
  • poj 1088(dfs+dp)
  • flutter的key在widget list的作用以及必要性
  • [PHP内核探索]PHP中的哈希表
  • 3.7、@ResponseBody 和 @RestController
  • extjs4学习之配置
  • HTML5新特性总结
  • JS基础之数据类型、对象、原型、原型链、继承
  • mockjs让前端开发独立于后端
  • Python学习之路13-记分
  • SQLServer之索引简介
  • vue2.0项目引入element-ui
  • 番外篇1:在Windows环境下安装JDK
  • 分享一份非常强势的Android面试题
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 判断客户端类型,Android,iOS,PC
  • 前嗅ForeSpider中数据浏览界面介绍
  • 深入浏览器事件循环的本质
  • 微信小程序开发问题汇总
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (第一天)包装对象、作用域、创建对象
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (力扣)1314.矩阵区域和
  • (六)软件测试分工
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)创业的注意事项
  • (转)创业家杂志:UCWEB天使第一步
  • (转)德国人的记事本
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .htaccess配置重写url引擎
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net开发时的诡异问题,button的onclick事件无效
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [Android] Android ActivityManager
  • [Android]常见的数据传递方式
  • [APUE]进程关系(下)
  • [CDOJ 1343] 卿学姐失恋了
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意