Centos7升级kernel-lt5.4内核
背景
2025年4月1日,博主发现ELRepo源
仓库的el7
的内核仓库已被清空
,yum在线
更新内核已不可用
.
正确更新Centos7内核
方法如下:
从这个git仓库下载长期内核版本5.4
的rpm包
进行安装即可.
https://github.com/omaidb/centos7_kernel_rpm.git
为什么要更新Centos7的内核到4.4以上
在k8s所有节点上执行
k8s在内核3.10
下有bug,一定要更新到4.4
以上
参考: https://cloud.tencent.com/developer/article/1737907
kernel-lt与kernel-ml的区别
内核名称 | 全拼 | 解释 | 由哪个软件仓库提供 |
---|---|---|---|
kernel-lt | lt 是英文【long term support】的缩写 | 长期支持 版本 | elrepo-kernel |
kernel-ml | ml 是英文【mainline stable】的缩写 | 最新 的稳定主线版本 | elrepo-kernel |
Centos7通过rpm包升级kernel-lt5.4
内核
el7内核
rpm包下载地址: https://github.com/omaidb/centos7_kernel_rpm.git
kernel-lt5.4内核el7
下载地址: http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS
参考: https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=235891
mkdir -p rpm && cd rpm
# 下载Centos7的内核安装包---历史存档
wget -c https://media.githubusercontent.com/media/omaidb/centos7_kernel_rpm/refs/heads/main/Centos7_kernel_lt_rpm/kernel-lt-5.4.278-1.el7.elrepo.x86_64.rpm
wget -c https://media.githubusercontent.com/media/omaidb/centos7_kernel_rpm/refs/heads/main/Centos7_kernel_lt_rpm/kernel-lt-devel-5.4.278-1.el7.elrepo.x86_64.rpm
wget -c https://media.githubusercontent.com/media/omaidb/centos7_kernel_rpm/refs/heads/main/Centos7_kernel_lt_rpm/kernel-lt-headers-5.4.278-1.el7.elrepo.x86_64.rpm
- 安装这3个rpm包
包名 | 作用 | 是否常用 |
---|---|---|
kernel-lt-headers | 提供内核头文件,用于编译用户空间程序 | 否(一般作为依赖) |
kernel-lt-devel | 提供开发所需头文件和静态库,用于编译模块/驱动 | 是 |
kernel-lt | 完整的 Linux 内核镜像 | 是 |
# 安装内核的rpm包
rpm -ivh *.rpm
# 如果报错则忽略依赖强制安装
rpm -ivh *.rpm --nodeps --force
升级到kernel-ml6.6.9内核el7
kernel-ml6.6.9内核el7
下载地址
wget -c http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-ml-headers-6.6.9-1.el7.elrepo.x86_64.rpm
wget -c http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.6.9-1.el7.elrepo.x86_64.rpm
wget -c http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-ml-6.6.9-1.el7.elrepo.x86_64.rpm
安装内核包
rpm -Uvh *.rpm --nodeps --force
将GRUB启动菜单中的第一个启动项设置为默认启动项
# 显示GRUB启动内核的索引号
grep ^menuentry /etc/grub2.cfg | cut -d \' -f 2 | nl -v 0
# 或
grep ^menuentry /etc/grub2-efi.cfg | cut -d \' -f 2 | nl -v 0
方法1: 修改GRUB全局配置文件
# 修改GRUB配置
vim /etc/default/grub
将GRUB_DEFAULT=saved
改为GRUB_DEFAULT=0
参数 | 解释 |
---|---|
GRUB_DEFAULT=saved | GRUB默认启动用户上一次选择的启动项 |
GRUB_DEFAULT=0 | 设置GRUB默认启动最新内核 |
更新 GRUB 配置
# 更新 GRUB 配置
grub2-mkconfig -o /etc/grub2.cfg
# 或
grub2-mkconfig -o /boot/grub2/grub.cfg
方法2: 使用grub2-set-default立即生效GRUB更改
# 设置GRUB默认启动最新内核
grub2-set-default 0
修改的是 /boot/grub2/grubenv
环境文件,权重没有
查看GRUB的默认启动内核
# 查看下次启动内核版本
cat /boot/grub2/grubenv | grep saved_entry
# 或
# 查看GRUB默认启动的内核
grub2-editenv list
结果验证
# 重启系统
reboot
# 查看内核版本好
uname -a