跳转到主要内容

使用 yum 升级 CentOS 7 内核版本(Elrepo)

升级到发行版官方最新版

没啥好说的,升级到发行版官方最新内核。

sudo yum list kernel
sudo yum update -y kernel


升级到 ELRepo 最新版

ELRepo 项目专注于硬件相关的软件包,以增强您使用 Enterprise Linux 的体验。这包括文件系统驱动程序、图形驱动程序、网络驱动程序、声音驱动程序、网络摄像头和视频驱动程序。

ELRepo 包含四个通道,我们要用到即为内核通道。

elrepo-kernel 通道使用源代码提供长期支持内核和最新的稳定主线内核。
请参阅 kernel-lt  kernel-ml 页面以获取更多详细信息。
此通道可以在 /etc/yum.repos.d/elrepo.repo 文件中启用或与 'yum --enablerepo=elrepo-kernel' 一起使用。

内核配置基于默认的 RHEL 配置,并酌情启用了附加功能。这些包被有意命名为 kernel-lt/ml,以免与默认 RHEL 内核冲突,因此,它们可以与常规内核一起安装和更新。

这些软件包按“原样”提供,不提供任何暗示担保或支持。使用 kernel-lt/ml 可能会使您的系统面临安全、性能和或数据损坏问题。由于 ELRepo 项目可能无法及时更新,最终用户有最终责任决定是否继续在常规服务中使用 kernel-lt/ml 软件包。这些包没有为 SecureBoot 签名。

摘自 https://elrepo.org (经过翻译)


1.安装源

升级到 elrepo 的最新内核,通常也就是最新版。

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  • 安装公钥;
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  • 安装 ELRepo 源;
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
  • 缓存 elrepo-kernel 部分的元数据,不做也行;
yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
  • 看看有什么版本能装,想更新到最新不必执行;

当前最新内核列表可以到 kernel.org 查看,elrepo 源会慢一点点。


2.安装内核
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
  • 安装最新版本的 kernel-ml (最新稳定版)
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-devel.x86_64
  • 安装最新版本的 kernel-ml-devel (开发工具)


  • kernel-ml(mainline stable),elrepo-kernel 中代表的是最新的稳定主线版本。对应 kernel.org 的 stable 和 mainline 版;
  • kernel-lt(long term support),elrepo-kernel 中代表的是最新的长期支持版本。对应 kernel.org 的 longterm 版;

3.升级内核工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
  • 删除老版本的内核工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
  • 安装新版本的内核工具包


4.设置为默认内核

仅 Centos 7 需要,Centos 8 已不需要更改内核启动顺序。

传统 BIOS 启动

grub2-set-default 0
grub2-mkconfig -o /etc/grub2.cfg
  • 启动时自动选择第一个内核
  • 重新生成启动配置,会自动将新内核排到第一个

现代 UEFI 启动

grub2-set-default 0
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg


日后一键操作

传统 BIOS 启动

yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-devel.x86_64
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
grub2-set-default 0
grub2-mkconfig -o /etc/grub2.cfg

现代 UEFI 启动

yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-devel.x86_64
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
grub2-set-default 0
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

不设置启动项(CentOS 8)

yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-devel.x86_64
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64