RHEL8内核升级实战:从ELRepo源到最新稳定版的完整指南
2026/6/20 2:50:47 网站建设 项目流程

1. 为什么需要升级RHEL8内核?

作为RHEL8系统管理员,你可能已经习惯了系统默认的内核版本。但随着时间的推移,你会发现新内核带来的性能优化、硬件兼容性提升和安全补丁非常重要。特别是在生产环境中,一个稳定的新内核往往能解决很多硬件驱动问题和性能瓶颈。

我遇到过不少案例,比如某次服务器部署新型NVMe SSD时,默认内核无法充分发挥其性能;还有一次是某款10G网卡在默认内核下频繁丢包。这些问题通过升级到ELRepo提供的最新稳定版内核都得到了完美解决。

ELRepo仓库提供了两种内核选择:kernel-lt(长期支持版)和kernel-ml(主线稳定版)。前者更适合追求稳定性的生产环境,后者则适合需要最新功能的测试环境。选择哪个版本取决于你的具体需求,但无论如何,升级过程都需要谨慎操作。

2. 环境准备与依赖安装

2.1 配置EPEL仓库

在开始内核升级前,我们需要确保系统已经配置了EPEL(Extra Packages for Enterprise Linux)仓库。EPEL提供了很多额外的软件包,是ELRepo依赖的基础。

# 安装EPEL仓库 sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

安装完成后,建议更新缓存:

sudo dnf makecache

2.2 添加ELRepo仓库

ELRepo是专门提供硬件驱动和内核更新的高质量仓库。我们需要先导入其GPG密钥,再安装仓库配置:

# 导入GPG密钥 sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # 安装ELRepo仓库 sudo dnf install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

如果你在国内,可以考虑使用清华大学的镜像源来加速下载:

sudo sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/elrepo.repo sudo sed -i 's|^#baseurl=http://elrepo.org/linux|baseurl=https://mirrors.tuna.tsinghua.edu.cn/elrepo|g' /etc/yum.repos.d/elrepo.repo

3. 内核版本选择与安装

3.1 理解kernel-lt和kernel-ml的区别

ELRepo提供了两种内核版本:

  • kernel-lt(Long Term Support):长期支持版本,经过充分测试,稳定性高,适合生产环境
  • kernel-ml(Mainline Stable):主线稳定版本,包含最新功能和改进,但可能存在未知问题,适合测试环境

我个人的经验是:生产服务器用kernel-lt,开发测试机用kernel-ml。这样可以兼顾稳定性和新特性体验。

3.2 安装kernel-lt长期支持版

如果你需要长期稳定运行的环境,kernel-lt是最佳选择:

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

这里的--allowerasing参数会自动解决可能的包冲突问题,非常实用。

3.3 安装kernel-ml主线稳定版

如果你追求最新功能,可以安装kernel-ml:

sudo dnf --enablerepo=elrepo-kernel install -y kernel-ml kernel-ml-devel kernel-ml-headers

安装完成后,建议检查已安装的内核版本:

rpm -qa | grep kernel

4. 配置系统启动项

4.1 检查当前内核启动顺序

安装新内核后,我们需要确保系统会默认启动新内核:

sudo grubby --default-kernel

查看所有可用内核:

sudo grubby --info=ALL

4.2 设置默认启动内核

找到新安装的内核路径后,可以设置为默认启动项:

sudo grubby --set-default /boot/vmlinuz-5.4.17-1.el8.elrepo.x86_64

也可以通过索引号设置:

sudo grub2-set-default 0

4.3 验证grub配置

最后,重新生成grub配置并验证:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

检查配置文件中是否包含新内核的启动项:

grep menuentry /boot/grub2/grub.cfg

5. 升级后的维护工作

5.1 安全移除旧内核

为了节省空间和提高安全性,建议移除旧内核:

sudo dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)

这个命令会保留最新的两个内核版本(包括当前运行的),删除更旧的版本。

5.2 验证新内核运行状态

重启系统后,检查当前运行的内核版本:

uname -r

同时建议检查系统日志,确认没有内核相关的错误:

journalctl -p 3 -xb

5.3 常见问题排查

如果遇到启动问题,可以在grub界面选择旧内核启动,然后检查:

# 查看安装的内核包 rpm -qa | grep kernel # 检查grub配置 cat /boot/grub2/grub.cfg | grep -A10 menuentry

我在实际运维中遇到过几次grub配置不完整的情况,通常重新安装一次内核包就能解决。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询