Linux操作系统内核升级及回退全过程

文章目录

    • **内核版本升级**
      • 1. **查看当前机器操作系统IP,操作系统版本和内核版本**
      • 2. **沟通至业务侧确认业务ip,确认应用下线,业务侧回复后开始操作**
      • 3. **建立本地yum源,挂载高版本内核镜像**
      • 4. **移除原有yum源,新建操作系统yum源**
      • 5. **升级内核**
      • 6. **重启机器使新内核生效**
      • 7. **验证内核是否升级成功**
    • **内核版本回退**
      • 1. **查看当前系统安装的内核**
      • 2. **查看当前系统启动使用的内核**
      • 3. **将操作系统启动的内核修改为之前版本的内核,然后重启机器**
      • 4. **删除无用内核,并重启验证**
      • 5. **重启验证**

注意:我这里以BCLinux21.10为例,该方法同样适用于其他类型的Linux操作系统,需要按实际情况对细节做出调整,我这里使用的是用高版本内核的系统镜像来做操作系统内核升级,同样可以使用yum源来做,废话不多说,正文如下:

内核版本升级

1. 查看当前机器操作系统IP,操作系统版本和内核版本

在正常的生产环境中,在登录机器之后要做的第一件事永远是核对当前机器的IP,主机名,等等信息,可千万别搞错了操作的机器,切记!

[root@localhost ~]# ip -4 a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000inet 127.0.0.1/8 scope host lo​    valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000inet 192.168.243.138/24 brd 192.168.243.255 scope global dynamic noprefixroute ens33​    valid_lft 1637sec preferred_lft 1637sec[root@localhost ~]# cat /etc/redhat-releaseBigCloud Enterprise Linux For Euler release 21.10 (LTS-SP2)[root@localhost ~]# uname -aLinux localhost.localdomain 4.19.90-2107.6.0.0100.oe1.bclinux.x86_64 #1 SMP Wed Dec 1 19:59:44 CST 2021 x86_64 x86_64 x86_64 GNU/Linux

2. 沟通至业务侧确认业务ip,确认应用下线,业务侧回复后开始操作

作为一个运维人员,必须业务开发管理人员做好确认,他们说业务中止或者下线,确保收到工作邮件,微信、钉钉等消息后,检查机器进程停止后再操作,避免发生故障,以及其他各种严重的后果。务必请确认清楚后再操作!!!

3. 建立本地yum源,挂载高版本内核镜像

[root@localhost yum.repos.d]# mount /dev/sr0 /mntmount: /mnt: WARNING: source write-protected, mounted read-only.

4. 移除原有yum源,新建操作系统yum源

这里需要注意的就是,我们在修改任何配置文件之前,最好对他当前的状态做一个备份,这样在后期维护时,有前一个版本的文件作为参考,可以方便我们处理故障或解决其他问题。

[root@localhost ~]# cd /etc/yum.repos.d/[root@localhost yum.repos.d]# mkdir repobak[root@localhost yum.repos.d]# mv *.repo repobak/[root@localhost yum.repos.d]# ls
repobak
[root@localhost yum.repos.d]# touch kernel_upgrade.repo[root@localhost yum.repos.d]# cat >> kernel_upgrade.repo << EOF
> [kernel_upgrade]
> name=BCLinux_U3
> baseurl=file:///mnt
> enabled=1
> gpgcheck=0
> EOF[root@localhost yum.repos.d]# cat kernel_upgrade.repo
[kernel_upgrade]
name=BCLinux_U3
baseurl=file:///mnt
enabled=1
gpgcheck=0[root@localhost yum.repos.d]# yum clean allUnable to connect to Registration Management Service
0 files removed[root@localhost yum.repos.d]# yum makecache
Unable to connect to Registration Management Service
BCLinux_U3                                                                                   57 MB/s | 3.2 MB   00:00
Metadata cache created.
[root@localhost yum.repos.d]#

5. 升级内核

注意:
在一般的内核升级中,需要对三个文件做版本的更新,以redhat为例,分别是:

kernel-devel-3.10.0-1160.49.1.el7.x86_64  #提供C Header 文件,它还有内核的配置文件,以及其他的开发用的资料
kernel-tools-libs-3.10.0-957.el7.x86_64  #提供用于管理和诊断内核的工具
kernel-3.10.0-957.el7.x86_64  #真正的内核

这个命令就可以直接对kernel相关的所有包都进行升级,免去了一个一个输入的麻烦

[root@localhost ~]# yum update kernel*

6. 重启机器使新内核生效

注意:因为升级内核后机器会自动重建grub引导,重建grub这一步一般不需要手动去操作,这里省略

[root@localhost ~]# reboot

7. 验证内核是否升级成功

等机器起来后,查看当前操作系统的版本

[root@localhost ~]# uname -aLinux localhost.localdomain 4.19.90-2107.6.0.0192.8.oe1.bclinux.x86_64 #1 SMP Fri Mar 24 10:04:47 CST 2023 x86_64 x86_64 x86_64 GNU/Linux

内核版本回退

1. 查看当前系统安装的内核

默认情况下,之前的内核是不会被删除的,确认升级成功就可以删除之前的内核,使用yum或者rpm卸载即可,在保留之前内核的情况下,可以对当前版本的内核进行回退操作,演示如下:

[root@localhost ~]# rpm -qa  | grep kernel
kernel-tools-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64
kernel-devel-4.19.90-2107.6.0.0192.oe1.bclinux.x86_64
kernel-tools-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64
kernel-devel-4.19.90-2107.6.0.0192.oe1.bclinux.x86_64
kernel-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64
kernel-4.19.90-2107.6.0.0192.8.oe1.bclinux.x86_64

2. 查看当前系统启动使用的内核

[root@localhost ~]# grub2-editenv list
saved_entry=BigCloud Enterprise Linux (4.19.90-2107.6.0.0192.8.oe1.bclinux.x86_64) 21.10 (LTS-SP2)

3. 将操作系统启动的内核修改为之前版本的内核,然后重启机器

还有一种更简单直接的方法就是删除当前高版本的内核,然后重建grub引导

[root@localhost ~]# grub2-set-default "BigCloud Enterprise Linux (4.19.90-2107.6.0.0100.oe1.bclinux.x86_64) 21.10 (LTS-SP2)"[root@localhost ~]# grub2-editenv list
saved_entry=BigCloud Enterprise Linux (4.19.90-2107.6.0.0100.oe1.bclinux.x86_64) 21.10 (LTS-SP2)
boot_success=0
[root@localhost ~]# reboot

4. 删除无用内核,并重启验证

[root@localhost ~]# rpm -qa  | grep kernel
kernel-tools-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64
kernel-devel-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64
kernel-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64[root@localhost ~]# yum remove kernel-4.19.90-2107.6.0.0192.8.oe1.bclinux.x86_64 kernel-tools-4.19.90-2107.6.0.0192.oe1.bclinux.x86_64 kernel-devel-4.19.90-2107.6.0.0192.oe1.bclinux.x86_64

5. 重启验证

[root@localhost ~]# reboot[root@localhost ~]# uname -r
4.19.90-2107.6.0.0100.oe1.bclinux.x86_64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/384385.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【个人记录】pkg可以将Node.js应用打包为可执行文件

背景 之前按客户需求做了一个简易定时任务应用&#xff0c;完成后为方便客户使用需要打包为可执行文件。 pkg工具 pkg 是一个非常流行的工具&#xff0c;它能够将 Node.js 应用打包成独立的可执行文件。它支持多个平台&#xff0c;包括 Windows、macOS 和 Linux。 测试环境…

【SpringBoot】 4 Thymeleaf

官网 https://www.thymeleaf.org/ 介绍 Thymeleaf 是一个适用于 Web 和独立环境的现代服务器端 Java 模板引擎。 模板引擎&#xff1a;为了使用户界面和业务数据分离而产生的&#xff0c;它可以生成特定格式的文档&#xff0c;用于网站的模板引擎会生成一个标准的 html 文档…

Hadoop单机版环境搭建

一 . 案例信息 Hadoop 的安装部署的模式一共有三种&#xff1a; 本地模式&#xff0c;默认的模式&#xff0c;无需运行任何守护进程&#xff08; daemon &#xff09;&#xff0c;所有程序都在单个 JVM 上执行。由 于在本机模式下测试和调试 MapReduce 程序较为方便&#x…

逻辑操作符 、||、!

逻辑操作符为提供逻辑判断的功能&#xff0c;能够构建更复杂的表达式所以有以下三种运算符 &#xff01;&#xff1a;逻辑取反运算符&#xff08;可以改变单个运算符的真假&#xff09;。 &&&#xff1a;逻辑与运算符&#xff0c;就是并且的意思。当两侧均为真的时候…

微信小程序之调查问卷

一、设计思路 1、界面 调查问卷又称调查表&#xff0c;是以问题的形式系统地记载调查内容的一种形式。微信小程序制作的调查问卷&#xff0c;可以在短时间内快速收集反馈信息。具体效果如下所示&#xff1a; 2、思路 此调查问卷采用服务器客户端的方式进行设计&#xff0c;服…

【CodinGame】趣味算法(教学用) CLASH OF CODE -20240726

文章目录 正文字符图形快乐蛇进度条 写在最后END 正文 字符图形 import math import sys# Auto-generated code below aims at helping you parse # the standard input according to the problem statement.zreb int(input())mylist [] for i in range(1, zreb):mylist.app…

Godot入门 03世界构建1.0版

在game场景&#xff0c;删除StaticBody2D节点&#xff0c;添加TileMap节点 添加TileSet图块集 添加TileSet源 拖动图片到图块&#xff0c;自动创建图块 使用橡皮擦擦除。取消橡皮擦后按住Shift创建大型图块。 进入选择模式&#xff0c;TileMap选择绘制&#xff0c;选中图块后在…

一步步教你学会如何安装VMare虚拟机(流程参考图)

前言&#xff1a;一步步教你安装VMare虚拟机&#xff08;此版本为17.5。2版本&#xff09;。 1、安装 2、确认协议 3、选择位置存放 4、选择第二个 5、都不选。 6、都选提供便捷操作 7、点击许可证&#xff0c;将密钥输入&#xff08;可以在网络寻找自己版本的密钥&#xff…

高级及架构师高频面试题-基础型

1、设计模式有哪些原则&#xff08;待解释的更直白&#xff09; 单一职责原则&#xff1a;一个类或方法应只负责一项职责&#xff0c;避免一个类因为多个变化原因而改变。开闭原则&#xff1a;软件实体应对扩展开放&#xff0c;对修改封闭。比如要增加用户类别的时候可以新增一…

【资料分享】2024钉钉杯大数据挑战赛A题思路解析+代码演示

2024第三届钉钉杯大学生大数据挑战赛今天已经开赛&#xff0c;【A题】思路解析代码&#xff0c;资料预览&#xff1a;

Apache Doris + Paimon 快速搭建指南|Lakehouse 使用手册(二)

湖仓一体&#xff08;Data Lakehouse&#xff09;融合了数据仓库的高性能、实时性以及数据湖的低成本、灵活性等优势&#xff0c;帮助用户更加便捷地满足各种数据处理分析的需求。在过去多个版本中&#xff0c;Apache Doris 持续加深与数据湖的融合&#xff0c;已演进出一套成熟…

在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法各有不同。以下是针对每种操作系统的详细步骤&#xff1a; Linux 使用DHCP客户端&#xff1a;大多数Linux发行版都使用DHCP&#xff08;动态主机配置协议&#xff09;来自动获取IP地址…

php--高级反序列化

&#x1f3bc;个人主页&#xff1a;金灰 &#x1f60e;作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持&#xff01;❤️ &#x1f34a;易编橙终身成长社群&#…

必应快速收录自动提交链接到IndexNow代码

近来发现bing的搜索量也越来越大了&#xff0c;为了更好的对必应进行seo优化&#xff0c;我们可以把最新的网站文章链接提交给必应IndexNow&#xff0c;以此来加快必应快速收录网站文章链接&#xff0c;那么我们我如何使用php代码来实现提交网站文章链接到必应IndexNow呢&#…

【QAC】分布式部署下其他机器如何连接RLM

1、 文档目标 解决分布式部署下其他机器如何连接RLMLicense管理器。 2、 问题场景 分布式部署下QAC要在其他机器上单独运行扫描&#xff0c;必须先连接RLMLicense管理器&#xff0c;如何连接&#xff1f; 3、软硬件环境 1、软件版本&#xff1a;HelixQAC23.04 2、机器环境…

快手可灵视频生成大模型全方位测评

快手视频生成大模型“可灵”&#xff08;Kling&#xff09;&#xff0c;是全球首个真正用户可用的视频生成大模型&#xff0c;自面世以来&#xff0c;凭借其无与伦比的视频生成效果&#xff0c;在全球范围内赢得了用户的热烈追捧与高度评价。截至目前&#xff0c;申请体验其内测…

路由表与IP数据报转发:基础小白指南

目录 1. 路由表的基本概念 2. 路由表中的默认路由 3. IP数据报的转发流程 4. 路由聚合 5. 最长前缀匹配 总结 在网络世界中&#xff0c;IP数据报的转发是如何进行的&#xff1f; 这篇文章将带你深入了解路由表的基本概念和IP数据报的转发流程。我们会用简洁明了的语言和实…

MYSQL 第四次作业

任务要求&#xff1a; 具体操作&#xff1a; 新建数据库&#xff1a; mysql> CREATE DATABASE mydb15_indexstu; Query OK, 1 row affected (0.01 sec) mysql> USE mydb15_indexstu; Database changed 新建表&#xff1a; mysql> CREATE TABLE student( ->…

计算机网络知识-面试点1

1. 三握四挥 定义&#xff1a; 在计算机网络中&#xff0c;特别是TCP/IP协议中&#xff0c;“三握”指的是三次握手&#xff08;Three-way Handshake&#xff09;&#xff0c;而“四挥”则指的是四次挥手&#xff08;Four-way Handshake&#xff09;。这两个过程分别用于TCP连接…

用python程序发送文件(python实例二十六)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.文件上传 3.1 代码构思 3.2 服务端代码 3.3 客户端代码 3.4 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具…