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


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

内核版本升级

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

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

[root@localhost ~]# ip -4 a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

  inet 127.0.0.1/8 scope host lo

​    valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

  inet 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-release

BigCloud Enterprise Linux For Euler release 21.10 (LTS-SP2)

[root@localhost ~]# uname -a

Linux 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 /mnt

mount: /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 all

Unable 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 -a

Linux 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秣宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值