运维系列:yum更新Centos7的内核到最新




yum更新Centos7的内核到最新

yum更新默认内核

该文档适用于Centos7rhel8

# 从默认源中安装最新版内核
yum -y install kernel kernel-core kernel-tools kernel-modules kernel-headers kernel-devel dkms

Linux常见内核

Linux 内核 RPM 软件包概述

  • kernel:此软件包包含用于单核,多核和多处理器系统的内核

  • kernel-core: 包含内核的二进制镜像、所有与 initramfs(初始 RAM 文件系统) 相关的对象来引导系统,以及确保核心功能的内核模块数量最少。仅在虚拟和云环境中使用这个子软件包来为 Red Hat Enterprise Linux 8 内核提供一个快速引导时间和小磁盘空间。

  • kernel-modules: - 包含没有包括在 kernel-core 中的其他内核模块。

上述 kernel 子软件包中的一部分旨在帮助系统管理员减少需要维护的范围,特别是在虚拟化和云环境中

  • perf:此软件包包含perf 工具,可用于监视Linux内核的性能。

  • linux-firmware:它包含各种设备运行所需的固件文件。

  • DKMS 全称是Dynamic Kernel Module Support(动态内核模块支持),即在内核版本变动之后可以自动重新生成新驱动模块。

可选内核软件包:

  • kernel-modules-extra: - 包含用于默认禁用加载的个别硬件和模块的内核模块。

  • kernel-debug: - 包含内核诊断启用大量调试选项的内核,但牺牲了性能降低。

  • kernel-tools:包含用于操纵Linux内核和支持文档的工具。

  • kernel-devel: - 包含内核标头和 makefile,以根据 kernel 软件包构建模块。

  • kernel-abi-stablelists: - 包含与 RHEL 内核 ABI 相关的信息,包括外部 Linux 内核模块yum 插件辅助功能所需的内核符号列表。

  • kernel-headers: - 包含 C 标头文件,用于指定 Linux 内核与用户空间库和程序之间的接口。头文件定义了构建大多数标准程序所需的常量结构和常量。

# 升级可选内核软件包
yum install -y kernel-modules-extra kernel-tools kernel-devel kernel-abi-stablelists kernel-headers

为什么要更新Centos7的内核到4.4以上

k8s所有节点上执行 k8s内核3.10下有bug,一定要更新到4.4以上

参考: https://blog.csdn.net/weixin_54626591/article/details/138131196

在这里插入图片描述

前置条件
安装epel源

参考: https://blog.csdn.net/weixin_54626591/article/details/138063915

安装ELRepo源

参考: https://blog.csdn.net/weixin_54626591/article/details/138282401

安装4.4以上新内核

参考: https://shawn0915.github.io/redhat/2018/02/04/how-to-upgrade-centos-kernel.html

kernel-lt 中的lt是英文【long term support】的缩写,elrepo-kernel中罗列出来的长期支持版本。
kernel-ml 中的ml是英文【mainline stable】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。

Centos7安装4.4以上新内核

参考: https://blog.csdn.net/weixin_54626591/article/details/138280488

Centos7安装kernel-lt内核

kernel-lt 中的lt是英文【long term support】的缩写,elrepo-kernel中罗列出来的长期支持版本。

# 安装kernel-lt内核---Centos7
yum --enablerepo=elrepo-kernel install kernel-lt -y
# 重启
reboot
## 卸载旧版内核组件
yum remove kernel kernel-core kernel-modules kernel-devel kernel-tools kernel-tools-libs kernel-headers -y
# 安装kernel-lt扩展内核---Centos7
yum --enablerepo=elrepo-kernel install kernel-lt* -y
Centos7安装kernel-ml内核

kernel-ml 中的ml是英文【mainline stable】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。

# 安装kernel-ml内核---Centos7
yum -y --enablerepo=elrepo-kernel install kernel-ml
# 重启
reboot
## 卸载旧版内核组件
yum remove kernel kernel-core kernel-modules kernel-devel kernel-tools kernel-tools-libs kernel-headers -y
# 安装kernel-ml扩展内核---Centos7
yum --enablerepo=elrepo-kernel install kernel-ml* -y
Centos7设置默认启动的内核为最新内核
# 查看内核启动编号
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 设置默认启动的内核为最新内核
grub2-set-default 0
# 重启
reboot
Centos7设置默认启动的内核为最新内核–方法2

参考: https://blog.csdn.net/weixin_54626591/article/details/138155065

# 查看默认启动的内核
[root@c78 ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)
# 查看默认启动的内核
[root@c78 ~]# grubby --default-kernel
/boot/vmlinuz-3.10.0-1127.el7.x86_64
# 查看下次启动生效内核版本
sudo cat /boot/grub2/grubenv | grep saved_entry
# 查看内核启动顺序
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
## 或
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
## 打印的内核编号
0 : CentOS Linux (5.4.163-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.49.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-256ac73c25b94a4ba8336a4455214622) 7 (Core)
# 查看系统中有哪些内核
rpm -qa | grep -i kernel
# 设置默认启动的内核为最新内核
grub2-set-default 0
# 刷新grub2
sudo grub2-mkconfig -o /etc/grub2.cfg
# 重启系统
reboot
# 重启后查看是否是新内核
uname -a
RHEL8安装4.4以上新内核
RHEL8安装kernel-lt内核

kernel-lt 中的lt是英文【long term support】的缩写,elrepo-kernel中罗列出来的长期支持版本。

# 安装kernel-lt长期支持内核---RHEL8
## --allowerasing参数自动卸载冲突包
yum -y --enablerepo=elrepo-kernel install kernel-lt kernel-lt-* --allowerasing
RHEL8安装kernel-ml内核

kernel-ml 中的ml是英文【mainline stable】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。

# 安装kernel-ml最新稳定版内核---RHEL8
## --allowerasing参数自动卸载冲突包
yum -y --enablerepo=elrepo-kernel install kernel-ml kernel-ml-* --allowerasing
rhel8设置默认启动的内核为最新内核

参考: https://blog.csdn.net/weixin_54626591/article/details/138155065

centos8使用grubby修改内核启动参数

也适用于部分Centos7

## 安装完成后检查 /boot/grub2/grub.cfg 中对应内核 menuetry 中是否包含 initrd16 配置,如果没有,再安装一次
cat /boot/grub2/grub.cfg |grep menuetry
# 1、执行下述命令查看默认内核
grubby --default-kernel

# 执行下述命令查看所有内核
grubby --info=ALL

# 查看/boot下有哪些版本的vmlinuz
ls /boot|grep vmlinuz
# 2、设置需要设置的启动的默认的内核
grubby --set-default /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64

在这里插入图片描述

后置条件

当内核升级完成并重启后,建议卸载旧版内核

## 卸载旧版内核组件
yum remove kernel kernel-core kernel-modules kernel-devel kernel-tools kernel-tools-libs kernel-header -y
lsb—Linux标准基础(Linux Standards Base,简称LSB)

参考: https://en.wikipedia.org/wiki/Linux_Standard_Base

Linux标准基础(Linux Standards Base,简称LSB)是一套核心标准,是Linux标准化领域中事实上的标准,制定了应用程序与运行环境之间的二进制接口。 它保证了LINUX发行版同LINUX应用程序之间的良好结合。

# 安装lsb_release命令
yum install -y redhat-lsb
脚本示例

参考: https://blog.csdn.net/weixin_54626591/article/details/138281807

# 安装lsb_release命令
yum install -y redhat-lsb
# 导入gpg key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Centos7安装epelrepo源
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# Centos8安装epelrepo源
# rpm -Uvh https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# 替换为清华源
cd /etc/yum.repos.d
cp elrepo.repo elrepo.repo.bak
# 将elrepo.org/linux替换为mirrors.tuna.tsinghua.edu.cn/elrepo
sed -i 's/elrepo.org\/linux/mirrors.tuna.tsinghua.edu.cn\/elrepo/g' elrepo.repo
# 刷新缓存
yum repolist && yum clean all && yum makecache
# 安装kernel-lt长期支持版本内核
yum -y --enablerepo=elrepo-kernel install kernel-lt kernel-lt-*
# 查看内核启动编号
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 设置默认启动的内核为最新内核
grub2-set-default 0
内核更新失败

重启系统,从Grub中选择从旧版内核启动







识途老码

yum更新Centos7的内核到最新

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值