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.mzph.cn/diannao/51806.shtml

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

相关文章

手写 Hibernate ORM 框架 00-环境准备

手写框架 类似的还有其他系列&#xff0c;主要用于学习其中的原理。 Hibernate 属于比较早的框架了&#xff0c;后期将实现一套 mybatis。 手写 Hibernate 系列 手写 Hibernate ORM 框架 00-hibernate 简介 手写 Hibernate ORM 框架 00-环境准备 手写 Hibernate ORM 框架…

Lc62---3024.三角形类型(排序)--java版

1.题目 2.思路 就是用选择结构进行if-else if的编写。 除了题目的条件&#xff0c;还要判断是不是三角形&#xff08;两边之和小于等于第三边&#xff0c;也无法构成三角形&#xff09; 3.代码实现 class Solution {public String triangleType(int[] nums) {if(nums.length…

命令行使用ADB,不用root,完美卸载小米预装软件

ADB安装与运行 install java 下载安装 注意选择JDK17以上版本 https://www.oracle.com/java/technologies/downloads/#jdk22-windows 选择中间的安装文件下载 编辑系统变量 C:\Program Files (x86)\Java\jdk-22 C:\Program Files (x86)\Java\jdk-22\bin 把C:\Progra…

nginx 启动 ssl 模块

文章目录 前言nginx 启动 ssl 模块1. 下载2. 启动 ssl 模块 步骤3. 验证前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!! nginx 启动 ssl 模块 1. 下载 下载…

Scrapy 爬取旅游景点相关数据(五)

本期内容&#xff1a;&#xff08;1&#xff09;爬取日本其他城市数据存入数据库&#xff08;2&#xff09;爬取景点评论数据 1 爬取其他城市景点数据 只爬取一个城市的数据对于做数据可视化系统可能是不够的&#xff0c;因为数据样本量少嘛&#xff0c;本期来爬取其他城市的景…

1.Redis介绍

redis是一个键值型数据库。 是一种nosql数据库&#xff0c;非关系型数据库。 sql数据库 1.字段类型是固定的。 2.表的结构是固定的。表数据量特别大的时候&#xff0c;去修改表结构会出现问题。也会导致业务逻辑的修改。 3.每个字段有一定的约束&#xff0c;比如唯一约束&…

【LeetCode】二叉树的锯齿形层序遍历

目录 一、题目二、解法完整代码 一、题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 示例 1&#xff1a; 输…

[Python] (中上难度) 五道高质量例题+详解 算法 奇数个数 求值 猴子分桃 淘汰游戏

1.奇数个数 题目&#xff1a; 计算0—7所能组成的 解析&#xff1a; 代码一&#xff1a; 假设范围为1-8位数的数字&#xff0c;假设sums4是因为个位时只有1&#xff0c;3&#xff0c;5&#xff0c;7四个奇数&#xff0c;循环从两位数开始遍历&#xff1a; 当 j < 2 时…

tof系统标定流程之lens标定

1、lens标定详解 为什么在标定tof时需要进行lens的标定,可以说lens标定是一个必不可少的步骤,tof模组也是有镜头的,镜头的畸变会导致进入的光线出现偏差,最终照射到tof芯片表面导致深度图的分布出现畸变,通常是枕形畸变。例外一个用途在于,在计算fppn误差环节需要知道镜头…

选股回测思路

数据处理 对日线数据进行数据清理 原来的日线数据包括交易日期、股票代码、股票名称、开盘价、收盘价、最高价、最低价首先计算涨跌幅&#xff0c;涨跌幅 &#xff08;收盘价 - 前一天收盘价&#xff09; / 收盘价然后计算当日涨跌幅&#xff0c;当日涨跌幅 &#xff08;收盘…

导游职业资格考试真题题库

导游职业资格考试真题题库 31.我国目前试点运行的10个TIR口岸中&#xff0c;有6个位于&#xff08;&#xff09;。 A.甘肃 B.新疆 C.宁夏 D.黑龙江 答案&#xff1a;B 解析&#xff1a;我国目前试点运行的10个TIR口岸中&#xff0c;有6个位于新疆。 32.下列新疆节日中&…

LangGPT结构化提示词编写实践

当然&#xff0c;我们可以从几个方面来讲解如何编写LangGPT的结构化提示词&#xff1a; 1. **明确目标**&#xff1a; - **目的**&#xff1a;确定提示词的最终目标&#xff0c;比如生成文本、回答问题、撰写报告等。 - **任务描述**&#xff1a;清晰描述任务&#xf…

随机森林(Random Forest)预测模型及其特征分析(Python和MATLAB实现)

## 一、背景 在大数据和机器学习的快速发展时代&#xff0c;数据的处理和分析变得尤为重要。随着多个领域积累了海量数据&#xff0c;传统的统计分析方法常常无法满足复杂问题的需求。在这种背景下&#xff0c;机器学习方法开始广泛应用。随机森林&#xff08;Random Forest&am…

在 Kali Linux 虚拟机中实现主机代理共享的详细指南

Kali Linux 是网络安全和渗透测试领域中广泛使用的操作系统。它提供了丰富的工具和灵活的环境&#xff0c;适合各种网络安全任务。在某些情况下&#xff0c;您可能需要通过主机的代理服务器来实现特定的网络配置&#xff0c;以便更好地保护隐私或进行网络测试。这篇文章将详细介…

langchain 入门指南 - 实现一个多模态 chatbot

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 在前面的文章中&#xff0c;我们学会了如何通过 langchain 实现本地文档库的 QA&#xff0c;又或者通过 langchain 来实现对话式的问答系…

解决Centos不支持docker命令行tab提示问题!!!

一、CentOS不支持Docker Tab提示 在使用CentOS操作系统时&#xff0c;有些用户可能会遇到不能自动补全Docker命令的问题。这是因为CentOS默认不支持Docker Tab提示功能&#xff0c;需要手动配置才能实现。在这篇科普文章中&#xff0c;我们将介绍如何解决这个问题&#xff0c;…

typescrip 定义函数

// 参数默认值和可选值 function fn1(name: string, age?: number): string {// 那么name必传&#xff0c;age选传&#xff0c;返回为字符串return ${name}${age}; }; fn1("全易"); fn1("全易", 18); // fn1("全易", 18, "在北京") …

GCA检查设计约束流程

文章目录 一、什么是GCA二、GCA流程1 .启动GCA2 .设置lib3 .读design并链接design4 .读SDC5 .analyze_design6 .报告或图形化界面分析结果 一、什么是GCA Galaxy Constraint Analyzer&#xff0c;简称GCA&#xff0c;是一个专门检查设计约束的工具&#xff0c;现在已经集成在P…

MySQL使用教程 最最最实用的零基础教程 直接从安装开始教!!!!

数据构成了我们日益数字化的社会基础。想象一下&#xff0c;从移动应用和银行系统到搜索引擎&#xff0c;再到如 ChatGPT 这样的先进人工智能聊天机器人&#xff0c;这些工具若没有数据支撑&#xff0c;将寸步难行。你有没有好奇过这些海量数据都存放在哪里呢&#xff1f;答案正…