查看当前内核版本及系统版本

  1. $ uname -r
  2. 3.10.0-1127.el7.x86_64
  3. $ cat /etc/centos-release
  4. CentOS Linux release 7.8.2003 (Core)

安装内核

yum 方式安装最新内核

大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。
但是,这只会升级内核到仓库中可用的最新版本,而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。

与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,其中包含最新 主线稳定版本(ml) 内核和最新 长期支持版本(lt) 内核的 rpm 包。

要在 CentOS 7 上启用 ELRepo 仓库,需运行:

  1. $ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  2. $ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

仓库启用后,可以使用下面的命令列出可用的内核相关包:

  1. $ yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

image.png
其中 ml 代表 mainline(主线版本),lt 代表 longterm(长期支持版本)。

安装最新的主线稳定版本内核:

  1. $ yum --enablerepo=elrepo-kernel install kernel-ml

rpm 方式安装最新内核

手动去 https://pkgs.org/download/kernel 下载内核 rpm 包。

实际上仍然下载的是 ELRepo 中的 rpm 包:
image.png

下载到本地后用 yum 安装:

  1. $ yum install kernel-ml-5.15.10-1.el7.elrepo.x86_64.rpm

rpm 方式安装任意版本内核

CentOS 官方源中只有一个内核版本,且很老。ELRepo 中只有最新的 ml 和 lt 内核。

如果要安装任意版本内核,需要下载该版本内核的 rpm 包,下载地址:http://mirror.mat.ensmp.fr/elrepo/kernel/el7/x86_64/RPMS/
ELRepo 把以前打的历史 rpm 包都放在了上面这上链接中。

找到并下载内核,然后用 yum 安装:

  1. $ yum install kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm

从源码编译安装

TODO

修改 GRUB 配置

为了让新安装的内核成为默认启动选项,需要修改 GRUB 配置。

首先查看系统上的所有可用内核:

  1. $ awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

image.png

可以看到存在 4 个内核,我要使用第 1 个内核,有三种设置方法:

第一种(推荐):

  1. $ grub2-set-default 'CentOS Linux (5.15.11-1.el7.elrepo.x86_64) 7 (Core)'

第二种:

  1. $ grub2-set-default 1

第三种:
修改 /etc/default/grub 文件,找到 GRUB_DEFAULT=0,将 0 改为要设置的内核的编号。

设好后,reboot 即可。

安装其他内核相关工具包(可选)

相关工具包:

  1. kernel-ml-devel / kernel-lt-devel(CentOS 中的 kernel-devel 简单介绍
  2. kernel-ml-doc / kernel-lt-doc
  3. kernel-ml-headers / kernel-lt-headers
  4. kernel-ml-tools / kernel-lt-tools
  5. kernel-ml-tools-libs / kernel-lt-tools-libs
  6. kernel-ml-tools-libs-devel / kernel-lt-tools-libs-devel
  7. perf
  8. python-perf

安装时注意这些工具包的版本要与内核版本一致。

在 ELRepo 中有最新 ml、最新 lt 内核对应的工具包的 rpm 包,可以用 yum 或 rpm 方式安装。
其他版本的可以在 http://mirror.mat.ensmp.fr/elrepo/kernel/el7/x86_64/RPMS/ 下载。