大约每两到三个月左右就有一个新的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内核?