首页 > 系统相关 >升级CentOS 7内核版本的三种方案

升级CentOS 7内核版本的三种方案

时间:2022-11-01 19:00:15浏览次数:43  
标签:kernel x86 CentOS elrepo 64 内核 版本 el7

 

在实验环境下,已安装了最新的CentOS 7.4操作系统,现在需要升级内核版本。

实验环境

CentOS-7-x86_64-Minimal-1708.iso
CentOS Linux release 7.4.1708 (Core)
Kernel 3.10.0-693.el7.x86_64

方案一:小版本升级

连接并同步CentOS自带yum源,更新内核版本。此方法适用于更新内核补丁 。
具体实验步骤:

 

sudo yum list kernel
sudo yum update -y kernel

 


此时,已安装成功,但若想将系统运行在新版本的kernel上,则需要重新启动操作系统。

重启完成,至此,Kernel版本已升级至【3.10.0-693.17.1.el7.x86_64】


方案二:大版本升级

载入elrepo源,搜索内核更新资源,并进行更新操作。
具体实验步骤:

1 2 3 4 5 6 7 8 9 10 # 载入公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # 安装ELRepo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm # 载入elrepo-kernel元数据 yum --disablerepo=\* --enablerepo=elrepo-kernel repolist # 查看可用的rpm包 yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel* # 安装最新版本的kernel yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64


重启,选择新版本内核进入系统。

此时,操作系统使用的内核已升级为【4.15.0-1.el7.elrepo.x86_64】

最后一步,需要将内核工具包一并升级

# 删除旧版本工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
# 安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64

至此,已完成升级。

注意:内核安装好后,需要设置为默认启动选项并重启后才会生效

查看系统上的所有可用内核:

$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.18.7-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-063ec330caa04d4baae54c6902c62e54) 7 (Core)

设置新的内核为grub2的默认版本

服务器上存在4 个内核,我们要使用 4.18 这个版本,可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置

方法1、通过 grub2-set-default 0 命令设置

其中 0 是上面查询出来的可用内核

grub2-set-default 0

方法2、编辑 /etc/default/grub 文件

设置 GRUB_DEFAULT=0,通过上面查询显示的编号为 0 的内核作为默认内核:

复制代码 复制代码 复制代码
$ vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
复制代码 复制代码 复制代码

生成 grub 配置文件并重启

复制代码 复制代码 复制代码
$ grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.7-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.18.7-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-862.11.6.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.11.6.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-063ec330caa04d4baae54c6902c62e54
Found initrd image: /boot/initramfs-0-rescue-063ec330caa04d4baae54c6902c62e54.img
done

$ reboot
复制代码 复制代码 复制代码

 验证

$ uname -r
4.18.7-1.el7.elrepo.x86_64

 删除旧内核(可选)

查看系统中全部的内核:

复制代码 复制代码
$ rpm -qa | grep kernel
kernel-3.10.0-514.el7.x86_64
kernel-ml-4.18.7-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-862.11.6.el7.x86_64
kernel-tools-3.10.0-862.11.6.el7.x86_64
kernel-3.10.0-862.11.6.el7.x86_64
复制代码 复制代码

方法1、yum remove 删除旧内核的 RPM 包

$ yum remove kernel-3.10.0-514.el7.x86_64 \
kernel-tools-libs-3.10.0-862.11.6.el7.x86_64 \
kernel-tools-3.10.0-862.11.6.el7.x86_64 \
kernel-3.10.0-862.11.6.el7.x86_64

方法2、yum-utils 工具

如果安装的内核不多于 3 个,yum-utils 工具不会删除任何一个。只有在安装的内核大于 3 个时,才会自动删除旧内核。

安装yum-utils

$ yum install yum-utils

删除旧版本  

package-cleanup --oldkernels

方案三:自编译升级

Step1: 下载源码
Step2: 安装gcc bc cmake
Step3: 编译源码,安装新内核
自编译升级过程略微复杂,且不便于后期维护,具体操作步骤在此略去不表。

话题扩展

如何将新安装的内核设定为操作系统的默认内核,或者说如何将新版本的内核设置为重启后的默认内核?
仅需两步,之后重启即可。

grub2-set-default 0
grub2-mkconfig -o /etc/grub2.cfg

 


术语解析

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

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

那些年 弹指间逝去的青春

标签:kernel,x86,CentOS,elrepo,64,内核,版本,el7
From: https://www.cnblogs.com/gaoyuechen/p/16848807.html

相关文章

  • SpringBoot集成微信支付0.4.7版本
    1.引入maven依赖<!--wechat支付--><dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-ap......
  • git还原指定版本
    git还原git还原找到还原的版本号:2b20687810f82bdfa91c4fcfc3faba5683ad0862gitpush-foriginpingmei_1.9.0 ......
  • CentOS7设置时间自动同步
    设置开机自动同步Internet时间,并作定时同步任务1、修改时区rm-rf/etc/localtimeln-s/usr/share/zoneinfo/Asia/Shanghai/etc/localtimevim/etc/sysconfig/clock......
  • Centos7 安装Python3环境
    分享知识 传递快乐  很多linux系统上都会自带python2的环境,这里主要记录在centos7中安装python3。安装依赖[root@contos7local]#yuminstallgcc-c++zlibzl......
  • Linux整合LNMP(Centos7.4+Nginx+PHP+MariaDB)
    分享知识传递快乐 由于之前写过Windows整合方式,有很多相同的地方,在此就不过多重复写了,参考下面几篇文章就够用了。​​Win7整合WNMP(Linux整合LNMP(Centos7.4+Nginx+PHP+Mar......
  • nginx高并发优化之系统内核参数优化
    一、内核参数优化设置vi/etc/sysctl.conffs.file-max=655360net.ipv4.ip_forward=0net.ipv4.conf.default.rp_filter=1net.ipv4.conf.default.accept_source_route=......
  • CentOS7 通过YUM安装MySQL5.7
    2进入到目录/usr/local/中:cd/usr/local/3创建目录/usr/local/tools,如果有则忽略: mkdir-ptools4创建/usr/local/mysql目录,如果已存在则忽略:mkdir-pmysql5进入......
  • centos7下配置redis时出现的一些问题
    1、redis的客户端连接不上centos7的redis原因分析:打开cmd调用telnet192.168.44.1296379发现连接超时,原因可能为防火墙阻塞将6379端口永久开发 firewall-cmd--zone......
  • Ubuntu20.04版本 重置ROOT和其他账户密码(图形化界面)
    Ubuntu20.04版本忘记ROOT密码,重置密码一、自黑吐槽前段时间刚安装的Ubuntu最新版本操作系统,玩了两天就放一边忙别的事情,等今天准备再捣鼓的时候,发现忘记密码这种尴尬的......
  • MDK (Arm Compiler 6)编译器V6版本
    使用过KeilMDK(ArmCompiler6)编译器V6版本的读者应该发现了一个问题,V6版本速度比V5版本编译速度快很多。(说明:是V6版本编译器,不是V6版本MDK)那你发现了ArmCompile......