yum更新Centos7的内核到最新
!!!ELRepo源仓库的el7的内核仓库已被清空
由于ELRepo源
仓库的el7
的内核仓库已被清空
,Centos7
使用yum在线更新内核已不可用
.
Centos7
正确更新内核方法如下:
https://blog.youkuaiyun.com/omaidb/article/details/120892948
yum更新默认内核
该文档适用于RHEL8
# 从默认源中安装最新版内核
yum -y install kernel kernel-core kernel-tools kernel-modules kernel-headers kernel-devel dkms
Linux常见内核
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
kernel-lt与kernel-ml的区别
参考: 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中罗列出来的是最新
的稳定主线版本。
前置条件
- 安装epel源
参考: https://blog.youkuaiyun.com/omaidb/article/details/126462414
- 安装ELRepo源
参考: https://blog.youkuaiyun.com/omaidb/article/details/126462414
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.51cto.com/u_14757092/2631074
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://zhjwpku.com/2016/11/30/os-identification.html
# 安装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中选择从旧版内核启动