如何升级Linux内核?

大约每两到三个月左右就有一个新的Linux内核版本发布,与此类似,一个内核版本支持多长时间也没有固定的日期和时间表。一个普通的稳定内核版本通常会被支持两个半月到三个月,这取决于下一个稳定内核版本的发布时间。但是 LTS(长期支持)内核版本的支持期要比 3 个月长得多,有些版本可能达到2到6年。

内核发布和支持时间可以在Linux内核官网查看,地址:https://www.kernel.org/。Redhat系列操作系统内核RPM包可以在elrepo官网查看,地址: https://elrepo.org/linux/kernel/el8/x86_64/RPMS/

一般来说不要轻易升级服务器的内核,除非:

  • 许多出于对安全的考虑,如避免以前版本中发现的漏洞
  • 更充分地认识内核,了解内核的各个内核模块和功能
  • 更好的利用/体验新内核的的新功能和特性

升级内核前请备份数据

实验环境

服务器:AlmaLinux 8

客户端:Windows 11

SSH客户端:MobaXterm 21.1

使用的用户:root

查看当前内核版本

使用uname命令查看内核版本,其中 -a 选项输出信息更为详细。

# uname -a
Linux ibetterlife 4.18.0-425.3.1.el8.x86_64 #1 SMP Tue Nov 8 14:08:25 EST 2022 x86_64 x86_64 x86_64 GNU/Linux

# uname -r
4.18.0-425.3.1.el8.x86_64

启用 ELRepo

ELRepo 是企业 Linux 软件包的 RPM 存储库。 ELRepo 支持 Red Hat Enterprise Linux (RHEL) 及其衍生产品,如 Scientific Linux、CentOS Linux、Alma Linux 和 Rocky Linux。 ELRepo 项目专注于与硬件相关的软件包,以增强您对 Enterprise Linux 的体验。 这包括文件系统驱动程序、图形驱动程序、网络驱动程序、声音驱动程序、网络摄像头和视频驱动程序。

从 CentOS/AlmaLinux/RockLinux 8 开始,ELRepo 已经加入到官方软件仓库中,名称为 “elrepo-release”。

启用 ELRepo 只需要执行命令:

dnf -y install elrepo-release

安装ELRepo公钥

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

升级内核

使能 elrepo-kernel 仓库,查看仓库中目前可用的内核

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

kernel-ml 中的 ml 是英文 “mainline stable” 的缩写,elrepo-kernel 中列出来的是最新的稳定主线版本。 kernel-lt 中的 lt 是英文 “long term support” 的缩写,elrepo-kernel 中列出来的长期支持版本。

对于生产服务器建议安装LT长期支持版的内核,对于个人学习来说可以安装ML主线版本内核。

dnf -y install --enablerepo=elrepo-kernel kernel-lt kernel-lt-devel

kernel-devel:包含用于内核开发环境所需的内核头文件以及Makefile,可选的

安装成功之后查看内核版本

grubby --default-kernel

输出结果示例:

/boot/vmlinuz-5.4.225-1.el8.elrepo.x86_64

新版本内核安装成功后,一般情况下回同时设置为默认启动内核,重启后替换当前内核。

如果没有生效,可以手动设置默认内核。

grubby --set-default=/boot/vmlinuz-5.4.225-1.el8.elrepo.x86_64

重启系统

需要重启系统才能启用新版本的内核。

reboot

重启之后,再次查看内核版本

# uname -r
5.4.225-1.el8.elrepo.x86_64

删除旧内核(可选的)

删除旧内核是可选的,毕竟内核占据的空间也就不到100M,而且万一有问题还可以回滚到旧内核。

当然就想测试一下,也是可以的,首先查看当前存在的内核

# rpm -qa | grep kernel | sort -V
kernel-4.18.0-240.15.1.el8_3.x86_64
kernel-core-4.18.0-240.15.1.el8_3.x86_64
kernel-lt-5.4.225-1.el8.elrepo.x86_64
kernel-lt-core-5.4.225-1.el8.elrepo.x86_64
kernel-lt-modules-5.4.225-1.el8.elrepo.x86_64
kernel-modules-4.18.0-240.15.1.el8_3.x86_64
kernel-tools-4.18.0-240.15.1.el8_3.x86_64
kernel-tools-libs-4.18.0-240.15.1.el8_3.x86_64

删除旧内核

# dnf remove kernel-4.18.0 kernel-core-4.18.0 kernel-modules-4.18.0 kernel-tools-4.18.0 kernel-tools-libs-4.18.0

再次查看当前的内核,检查是否删除成功。

# rpm -qa | grep kernel | sort -V
kernel-lt-5.4.225-1.el8.elrepo.x86_64
kernel-lt-core-5.4.225-1.el8.elrepo.x86_64
kernel-lt-modules-5.4.225-1.el8.elrepo.x86_64

未经允许不得转载:海淘实验室 » 如何升级Linux内核?

赞 (2) 打赏

评论 0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏