CentOS升级内核-- CentOS9 Stream/CentOS8 Stream/CentOS7
官方文档在此
升级原因
当我们安装一些软件(对,我说的就是Kubernetes),可能需要新内核的支持,而CentOS又比较保守,不太升级,所以需要我们手工升级.
# 看下目前是什么版本内核
uname -a
# 安装公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 添加仓库,如果不执行该指令后面无法找到elrepo-kernel这个仓库
# 下面两个分别是CentOS7和8的,根据自己情况选择执行
yum install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
#yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
#yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# 查看最新的内核什么版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
# 安装最新的内核,使用disablerepo和enablerepo来直接指定仓库
yum --disablerepo=* --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel -y
# 得到我们最新的kernel版本
KERNEL_VERSION=$(more /boot/grub2/grub.cfg |grep menuentry|grep Core|sort -r|head -1|awk -F "'" '{print $2}')
echo $KERNEL_VERSION
# 设置默认启动时的默认内核版本,需要加引号,否则会被识别为多个变量,导致报错
grub2-set-default "$KERNEL_VERSION"
# 看一下默认内核是否已修改
grubby --default-kernel
# 重启,需要注意在ssh的情况下reboot不会生效只能shutdown或者直接xshell连过去
reboot
# 看下目前是什么版本内核
uname -a
# 安装公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 添加仓库,如果不执行该指令后面无法找到elrepo-kernel这个仓库
# 下面两个分别是CentOS9/8/7的,根据自己情况选择执行
yum install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
#yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
#yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# 查看最新的内核什么版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
# 安装最新的内核,使用disablerepo和enablerepo来直接指定仓库
yum --disablerepo=* --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel -y
# 得到我们最新的kernel版本
KERNEL_VERSION=$(more /boot/grub2/grub.cfg |grep menuentry|grep Core|sort -r|head -1|awk -F "'" '{print $2}')
echo $KERNEL_VERSION
# 设置默认启动时的默认内核版本,需要加引号,否则会被识别为多个变量,导致报错
grub2-set-default "$KERNEL_VERSION"
# 看一下默认内核是否已修改
grubby --default-kernel
# 重启,需要注意在ssh的情况下reboot不会生效只能shutdown或者直接xshell连过去
reboot
重启后再次查看内核
uname -sr
=========================Other Tips===================
CentOS 升级内核的三种方式(yum/rpm/源码)
在 CentOS 使用过程中,难免需要升级内核,但有时候因为源码编译依赖问题,不一定所有程序都支持最新内核版本,所以以下将介绍三种升级内核方式。
CentOS 升级内核的三种方式(yum/rpm/源码)
在 CentOS 使用过程中,难免需要升级内核,但有时候因为源码编译依赖问题,不一定所有程序都支持最新内核版本,所以以下将介绍三种升级内核方式。
注意事项
关于内核种类:
kernel-ml 中的ml是英文【 mainline stable 】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
kernel-lt 中的lt是英文【 long term support 】的缩写,elrepo-kernel中罗列出来的长期支持版本。
# 检查内核版本
uname -r
一、yum安装
1、导入仓库源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
2、查看可安装的软件包
yum --enablerepo="elrepo-kernel" list --showduplicates | sort -r | grep kernel-ml.x86_64
3、选择 ML 或 LT 版本安装
无指定版本默认安装最新
# 安装 ML 版本
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y # 安装 LT 版本,K8S全部选这个
yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y
4、查看现有内核启动顺序
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
5、修改默认启动项
xxx 为序号数字,以指定启动列表中第x项为启动项,x从0开始计数
grub2-set-default xxxx
例如设置以4.4内核启动
则直接输入“grub2-set-default 0”,下次启动即可从4.4启动
# 查看内核启动序号
[root@localhost ~] awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg CentOS Linux (4.4.179-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-6d4c599606814867814f1a8eec7bfd1e) 7 (Core) # 设置启动序号
[root@localhost ~] grub2-set-default 0 # 重启
reboot # 检查内核版本
uname -r
二、RPM安装
检查内核版本
uname -r
1、查找版本
因 ELRepo 源都是最新版本,所以旧版本内核只能手动下载。
查找 kernel rpm 历史版:
http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
2、共需要下载三个类型 rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-headers-4.4.215-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-4.4.215-1.el7.elrepo.x86_64.rpm
3、安装内核
rpm -ivh kernel-lt-4.4.215-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64.rpm
或者
#一键安装所有
rpm -Uvh *.rpm
4、确认已安装内核版本
[root@localhost ~]# rpm -qa | grep kernel
kernel-headers-3.10.0-1160.15.2.el7.x86_64
kernel-devel-3.10.0-1160.49.1.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-ml-4.9.9-1.el7.elrepo.x86_64
kernel-lt-4.4.215-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64
5、设置启动
# 查看启动顺序
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.4.215-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.9.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-b91f945269084aa98e8257311ee713c5) 7 (Core) # 设置启动顺序
[root@localhost ~]# grub2-set-default 0 # 重启生效
[root@localhost ~]# reboot
三、源码安装
1、安装核心软件包
yum install -y gcc make git ctags ncurses-devel openssl-devel
yum install -y bison flex elfutils-libelf-devel bc
2、创建内核编译目录
使用 home 下的 kernelbuild 目录
mkdir ~/kernelbuild
3、获取内核源码
清华大学镜像站:https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/?C=M&O=D
其他源码安装包下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
linux-4.xx.xx.tar.xzlinux-4.xx.xx.tar.gz- 这两个格式都可以的,tar.xz压缩率更高,文件更小。
在线下载:wget https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.17.11.tar.xz
4、解压内核代码
将其解压后进入源码目录:
tar -xvJf linux-4.17.11.tar.xz
为确保内核树绝对干净,进入内核目录并执行 make mrproper 命令:
cd linux-4.17.11
make clean && make mrproper
5、内核配置
复制当前的内核配置文件
config-3.10.0-862.el7.x86_64是我当前环境的内核配置文件,根据实际情况修改
cp /boot/config-3.10.0-862.el7.x86_64 .config
高级配置
y 是启用, n 是禁用, m 是需要时启用.
make menuconfig: 老的 ncurses 界面,被 nconfig 取代make nconfig: 新的命令行 ncurses 界面
6、编译和安装
编译内核
如果你是四核的机器,x可以是8
make -j x
安装内核
编译完内核后安装:Warning: 从这里开始,需要 root 权限执行命令,否则会失败.
make modules_install install
7、设置启动
# 查看启动顺序
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.17.11-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.9.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-b91f945269084aa98e8257311ee713c5) 7 (Core) # 设置启动顺序
[root@localhost ~]# grub2-set-default 0 # 重启生效
[root@localhost ~]# reboot
四、卸载 / 降级 内核
例如:
当系统已存在 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这时就需要进行内核降级,卸载最新版的内核。
1、查看系统当前内核版本
[root@localhost ~]# uname -r
5.4.103-1.el7.elrepo.x86_64
2、查看系统中全部内核
[root@localhost ~]# rpm -qa | grep kernel
kernel-headers-3.10.0-1160.15.2.el7.x86_64
kernel-devel-3.10.0-1160.49.1.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-ml-4.9.9-1.el7.elrepo.x86_64
kernel-lt-5.4.103-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-lt-devel-5.4.103-1.el7.elrepo.x86_64
3、删除指定内核
此处以删除 LT 内核的 5.4.103 版本为例
**注意:**无法卸载当前在用的内核版本。卸载完后不一定需要重启
yum remove -y kernel-lt-devel-5.4.103-1.el7.elrepo.x86_64 yum remove -y kernel-lt-5.4.103-1.el7.elrepo.x86_64
检查卸载后内核版本
[root@localhost ~]# rpm -qa | grep kernel
kernel-headers-3.10.0-1160.15.2.el7.x86_64
kernel-devel-3.10.0-1160.49.1.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-ml-4.9.9-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.el7.x86_64
============================================Other Tips===================
Centos Stream 9升级内核
为了使系统更加稳定,CentOS默认的内核版本会低一些。如果想要升级内核,那就需要到第三方仓库进行下载。ELRepo这个仓库中就存放有CentOS可以使用的新版内核,导入它的仓库后就可以通过yum命令进行安装了。
零、查看当前内核
输入以下命令查看当前系统所使用的内核版本
uname -r
1
[root@localhost ~]# uname -r
5.14.0-205.el9.x86_64
一、导入源
ELRepo官方网站:http://elrepo.org,访问它的首页就能得到仓库的安装方式。
执行以下命令,导入ELRepo仓库。
1.导入公钥,用于校验软件包
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
1
2.导入yum源,用于从该仓库下载软件包
yum install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
1
注意:为了防止误操作,默认情况下elrepo的仓库为禁用状态,使用时需要手动启用。
二、安装新版内核
导入ELRepo仓库后,执行以下命令,安装新版内核。
yum install --enablerepo=elrepo-kernel kernel-ml
1
yum install 安装软件包
–enablerepo=elrepo-kernel 此次安装过程中临时启用elrepo-kernel这个仓库
kernel-ml 新版内核软件包名称
注意默认源中的内核软件包名称为kernel
ml版与lt版可共存
目前CetnOS 9只有ml版本
kernel-ml: 稳定主线版,支持周期短,更新速度快,更快体验新特性。
kernel-lt: 长期维护版,支持周期长,更新速度慢,更加稳定。
安装完成后重启系统,CentOS会自动使用最新安装的内核进行启动。
[root@localhost ~]# uname -r
6.1.0-1.el9.elrepo.x86_64
三、卸载旧版内核
新旧内核可同时存在,如果希望系统中存在两个内核可不执行清理操作。
确认使用新版内核启动后,执行以下命令,查看本机安装的所有内核软件包。
rpm -qa | grep kernel
1
rpm -qa 查询本机安装的所有软件包
grep kernel 过滤出名称中带有kernel的软件包
[root@localhost ~]# rpm -qa | grep kernel
kernel-core-5.14.0-205.el9.x86_64
kernel-modules-5.14.0-205.el9.x86_64
kernel-tools-libs-5.14.0-205.el9.x86_64
kernel-tools-5.14.0-205.el9.x86_64
kernel-5.14.0-205.el9.x86_64
kernel-ml-core-6.1.0-1.el9.elrepo.x86_64
kernel-ml-modules-6.1.0-1.el9.elrepo.x86_64
kernel-ml-6.1.0-1.el9.elrepo.x86_64
软件包名称由kernel-ml或kernel-lt开头的为新版软件包,其余为旧版软件包。
执行以下命令,删除旧版内核。
yum remove kernel-core-5.14.0-205.el9.x86_64 kernel-tools-5.14.0-205.el9.x86_64
1
yum remove 删除软件包
需要输入软件包完整名称
删除kernel-core与kernel-tools时会将其余三个包一并删除。
[root@localhost ~]# rpm -qa | grep kernel
kernel-ml-core-6.1.0-1.el9.elrepo.x86_64
kernel-ml-modules-6.1.0-1.el9.elrepo.x86_64
kernel-ml-6.1.0-1.el9.elrepo.x86_64
CentOS升级内核-- CentOS9 Stream/CentOS8 Stream/CentOS7的更多相关文章
- 干货,分享一次完整的CentOS升级内核脚本。
一.安装常用包 yum install wget vim screen net-tools lrzsz -y wget -O /etc/yum.repos.d/epel.repo http://mir ...
- centos 升级内核方法
方法1:rpm安装方式 rpm安装包可以通过这个网站下载: 这个是CentOS6 x64 : http://elrepo.org/linux/kernel/el6/x86_64/RPMS/ 这个是Ce ...
- centos 升级内核并安装对应kernel-devel
内核包使用ELReo提供 1.准备ELRepo (1)检测ELRepo是否安装 yum --disablerepo="*" --enablerepo="elrepo-ke ...
- CentOS 升级内核
因为要安装go,尝试升级内核到 2.6.32.61,出现了一些问题,参考如下文档,多谢各位 http://liaozy.blog.51cto.com/921527/553921 http://www. ...
- openstack、kvm CentOS升级内核
openstack平台需要使用各种Linux发行版镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的制作好镜像进行修改 问题 FATAL: Module ...
- Vmware由于centos升级内核不可运行(C header files matching your running kernel were not found)的解决方案
C header files matching your running kernel were not found. Refer to your distribution's documentati ...
- Centos升级内核 --已验证
Docekr 对内核由要求,3.10以上 Centos 6.5内核达不到要求 [linux@localhost Desktop]$ sudo service docker statusdocker d ...
- CentOS升级内核的方法
升级前的内核版本为:2.6.32-431.el6.x86_64 升级后的内核版本为:3.10.101-1.el6.elrepo.x86_64 升级方法: 1.导入key rpm --import ht ...
- CentOS升级内核方法
查询现在系统的kernel安装包:rpm -qa |grep kernel 删除不用的内核安装包:rpm -e xxx centos 6升级:https://blog.csdn.net/wh21121 ...
- centos 升级内核失败回救
在升级 centos6.3上使用, yum -y update ... 灾难出现了!!! 解决方法: 1. 在机器启动的时候, 按F1, 会出现选择内核,选一个原来的. 2. vim /etc/gr ...
随机推荐
- spark conf、config配置项总结
1.structured-streaming的state 配置项总结 Config Name Description Default Value spark.sql.streaming.stateSt ...
- 借助 Terraform 功能协调部署 CI/CD 流水线-Part 1
在当今快节奏的开发环境中,实现无缝.稳健的 CI/CD 流水线对于交付高质量软件至关重要.在本文中,我们将向您介绍使用 Bitbucket Pipeline.ArgoCD GitOps 和 AWS E ...
- MP实现ID自增 &日志 &自动填充 & 逻辑删除 &乐观锁
默认ID自增 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 此时的依赖 <dep ...
- 4时4态 加被动 例句:I will have been being done - will have be be do - 频率副词位置
4时4态 频率副词的用法和位置:放在实义动词之前.放在be 动词之后.放在情态动词之后. 频率副词的位置一般是放在实义动词之前.放在be 动词之后.放在情态动词之后.放在be动词之后:She is s ...
- MySql注入—DNS注入
MySql注入-DNS注入 1.DNS注入原理 一.DNS注入原理 DNS注入,是通过查询相应DNS解析产生的记录日志来获取想要的数据 对于sql盲注这样的方法常常用到二分法,非常麻烦而且没有回显,要 ...
- Spring之事务传播属性
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量. 在使用Spring时,大部分会用到他的声明式事务,简单的在配置文件中进行一些规则 ...
- Android组件化开发实践和案例分享
目录介绍 1.为什么要组件化 1.1 为什么要组件化 1.2 现阶段遇到的问题 2.组件化的概念 2.1 什么是组件化 2.2 区分模块化与组件化 2.3 组件化优势好处 2.4 区分组件化和插件化 ...
- 三维模型3DTile格式轻量化的跨平台兼容性问题分析
三维模型3DTile格式轻量化的跨平台兼容性问题分析 三维模型3DTile格式是一种开放的.高效的和互操作的空间信息数据格式.然而,它作为一种新兴的技术,其在轻量化与跨平台兼容性方面存在着一些问题. ...
- 使用Channel传递数据
上次我们使用了事件异步传递数据,这次我们使用Channel在一个线程通信传递数据 直接上代码 public static class ChannelSample { private static re ...
- C# 平台调用过程
(1)调用LoadLibrary加载非托管DLL到内存中,并调用GetProcAddress 获得内存中非托管函数的指针. (2) 为包含非托管函数地址的托管签名生成一个DllImport存根(st ...