Centos 7/8内核升级

背景

默认在centos8.x版本上的内核版本为4.18,这个版本还是比较低的在操作软件时,很多时候会遇见内核版本过低的情况,本文主要学习升级内核版本。
**升级内核操作需谨慎。**
内核是操作系统的核心,负责:

  1. 进程管理: 确定哪些程序可以使用哪个cpu,使用多长时间;
  2. 内存管理;
  3. 设备驱动提供;
  4. 系统调用和安全。

内核相关列表:

kernel: This package contains the kernel for single-core, multi-core, and multi-processor systems
kernel-devel : This contains kernel headers and makefiles used to build kernel modules against installed Kernel version.
kernel-headers: This package includes the C header files that powers interfacing between the Linux kernel and user-space libraries and programs.
kernel-tools: Contains tools for manipulating the Linux kernel and supporting documentation.
perf: This package contains the perf tool, which enables performance monitoring of the Linux kernel.
linux-firmware: This contains the firmware files required by various devices to operate.

yum安装

添加ELRepo仓库

#centos 8
sudo dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

#centos 7
sudo yum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

查看是否安装库成功:

cat /etc/yum.repos.d/elrepo.repo

导入签名的密钥

# centos 7或8 一样的
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

选择安装内核

列出主线内核版本

dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-ml

image.png
长期支持版本,可以用下面命令查看:

dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-lt

image.png
下面可以选择长期版本或主线最新稳定版本:

#安装主线内核版本
sudo dnf --enablerepo=elrepo-kernel install kernel-ml
或者
# 安装长期支持版本
sudo dnf --enablerepo=elrepo-kernel install kernel-lt

安装其他内核:

#mainline
dnf  --allowerasing   --enablerepo=elrepo-kernel install kernel-ml-{devel,headers}
或者
#lt
dnf  --allowerasing   --enablerepo=elrepo-kernel install kernel-lt-{devel,headers}

allowerasing 是替换老版本的其他核心,比如kenel-headers等

切换默认内核版本

centos8设置新内核

# 查看所有可用内核版本
grubby --info=ALL | grep ^kernel
#查看默认的内核版本
grubby --default-kernel
# 设置内核版本
 grubby --set-default "/boot/vmlinuz-6.10.4-1.el8.elrepo.x86_64"
#重启
reboot

验证
image.png

centos7设置新内核

#查看现有内核启动顺序
[root@nginx pages]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.4.274-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.114.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-20190711105006363114529432776998) 7 (Core)

#修改默认启动项
#xxx 为序号数字,以指定启动列表中第x项为启动项,x从0开始计数
grub2-set-default xxxx

#例如设置以5.4内核启动
grub2-set-default 0

#重启
reboot
# 检查内核版本
uname -r

RPM安装

查找版本

因 ELRepo 源都是最新版本,所以旧版本内核只能手动下载
7下载地址
https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
8下载地址
https://mirrors.coreix.net/elrepo-archive-archive/kernel/el8/x86_64/RPMS/

下载内核 RPM

共需要下载三个类型 rpm

wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.274-1.el7.elrepo.x86_64.rpm
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.274-1.el7.elrepo.x86_64.rpm
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.274-1.el7.elrepo.x86_64.rpm

安装内核

rpm -ivh kernel-lt--5.4.274-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-devel--5.4.274-1.el7.elrepo.x86_64.rpm

确认已安装内核版本

[root@caonima pages]# rpm -qa | grep kernel
kernel-tools-3.10.0-1160.114.2.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-1160.114.2.el7.x86_64
kernel-tools-libs-3.10.0-1160.114.2.el7.x86_64
kernel-lt-5.4.274-1.el7.elrepo.x86_64
kernel-3.10.0-957.21.3.el7.x86_64
kernel-devel-3.10.0-957.21.3.el7.x86_64
kernel-3.10.0-1160.114.2.el7.x86_64
kernel-devel-3.10.0-1160.114.2.el7.x86_64
kernel-lt-devel-5.4.274-1.el7.elrepo.x86_64

设置启动

centos7

#查看现有内核启动顺序
[root@nginx pages]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.4.274-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.114.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-20190711105006363114529432776998) 7 (Core)

#修改默认启动项
#xxx 为序号数字,以指定启动列表中第x项为启动项,x从0开始计数
grub2-set-default xxxx

#例如设置以5.4内核启动
grub2-set-default 0

#重启
reboot
# 检查内核版本
uname -r

centos8

# 查看所有可用内核版本
grubby --info=ALL | grep ^kernel
#查看默认的内核版本
grubby --default-kernel
# 设置内核版本
 grubby --set-default "/boot/vmlinuz-6.10.4-1.el8.elrepo.x86_64"
#重启
reboot
posted @ 2024-08-14 11:16  &UnstopPable  阅读(207)  评论(0编辑  收藏  举报