背景

在 CentOS 使用过程中,难免需要升级内核,但有时候因为源码编译依赖问题,不一定所有程序都支持最新内核版本,所以以下将介绍两种升级内核方式。

注意事项

  1. ML 与 LT 两种内核类型版本可以共存
  1. 但每种类型内核只能存在一个版本
      • 例如:
        • 当系统已存在 LT 内核的 5.4.103 版本时,继续安装 LT 内核的 4.4.215 版本则会提示: package kernel-lt-5.4.103-1.el7.elrepo.x86_64 (which is newer than kernel-lt-4.4.215-1.el7.elrepo.x86_64) is already installed

yum安装

升级至最新

导入仓库源

查看可安装的软件包

选择 ML 或 LT 版本安装

查看现有内核启动顺序

修改默认启动项

xxx 为序号数字,以指定启动列表中第x项为启动项,x从0开始计数

例如设置以4.4内核启动

则直接输入“grub2-set-default 0”,下次启动即可从4.4启动

安装指定内核版本

本次以安装 LT 内核的 4.415 版本为例。

查找版本

下载内核 RPM

安装内核

确认已安装内核版本

设置启动

源码安装

环境准备

安装核心软件包

创建内核编译目录

使用 home 下的 kernelbuild 目录

获取内核源码

  • linux-4.xx.xx.tar.xz
  • linux-4.xx.xx.tar.gz
这两个格式都可以的,tar.xz压缩率更高,文件更小。

解压内核代码

将其解压后进入源码目录:
为确保内核树绝对干净,进入内核目录并执行 make mrproper 命令:

内核配置

复制当前的内核配置文件

config-3.10.0-862.el7.x86_64是我当前环境的内核配置文件,根据实际情况修改

高级配置

编译和安装

编译内核

安装内核

编译完内核后安装:

设置启动

卸载 / 降级 内核

例如:
当系统已存在 LT 内核的 5.4.103 版本时,继续安装 LT 内核的 4.4.215 版本则会提示: package kernel-lt-5.4.103-1.el7.elrepo.x86_64 (which is newer than kernel-lt-4.4.215-1.el7.elrepo.x86_64) is already installed
这时就需要进行内核降级,卸载最新版的内核。

查看系统当前内核版本

查看系统中全部内核

删除指定内核

检查卸载后内核版本
📚2023.09 Reading List.bash_profile和.bashrc的区别(如何设置生效)