CentOS7升级内核的三种方法

在当今的计算机世界中,操作系统的性能和安全性至关重要,其中内核是操作系统的心脏,它的升级可以带来性能提升、增加新特性和更好的安全性。CentOS7是一种广泛使用的企业级Linux操作系统,它的内核对于系统的稳定性和性能至关重要。那么CentOS7怎么升级内核,这里介绍CentOS7升级内核的三种方法。

注意:内核升级可能涉及系统稳定性和兼容性的风险;在进行内核升级之前,请确保了解这些风险并备份重要的数据。

关于内核种类

  • kernel-ml:kernel-ml 中的ml是英文【 mainline stable 】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
  • kernel-lt:kernel-lt 中的lt是英文【 long term support 】的缩写,elrepo-kernel中罗列出来的长期支持版本。
  • ML 与 LT 两种内核类型版本可以共存,但每种类型内核只能存在一个版本。

一、yum安装

1、升级至最新

centos7升级内核,3.1-> 4.4 (4.17.8)

2、导入仓库源

<code class="language-text">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

3、查看可安装的软件包

<code class="language-text">yum --enablerepo="elrepo-kernel" list --showduplicates | sort -r | grep kernel-ml.x86_64

4、选择 ML或 LT版本安装

<code class="language-text"># 安装 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

5、查看现有内核启动顺序

<code class="language-text">awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

6、修改默认启动项

xxx 为序号数字,以指定启动列表中第x项为启动项,x从0开始计数。

<code class="language-text">grub2-set-default xxxx

例如设置以4.4内核启动,则直接输入“grub2-set-default 0”,下次启动即可从4.4启动。

<code class="language-text"># 查看内核启动序号
[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

本次以安装 LT 内核的 4.415 版本为例。

1、查找版本

因 ELRepo 源都是最新版本,所以旧版本内核只能手动下载。查找 kernel rpm 历史版本:http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/

2、下载内核 RPM

共需要下载三个类型 rpm

<code class="language-text">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、安装内核

<code class="language-text">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

4、确认已安装内核版本

<code class="language-text">[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、设置启动

<code class="language-text"># 查看启动顺序
[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、环境准备

CentOS 7 1804 最小化安装

2、安装核心软件包

<code class="language-text">yum install -y gcc make git ctags ncurses-devel openssl-devel
yum install -y bison flex elfutils-libelf-devel bc

3、创建内核编译目录

使用 home 下的 kernelbuild 目录

<code class="language-text"> mkdir ~/kernelbuild

4、获取内核源码

linux-4.xx.xx.tar.xz

linux-4.xx.xx.tar.gz

这两个格式都可以的,tar.xz压缩率更高,文件更小。

<code class="language-text">wget https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.17.11.tar.xz

5、解压内核代码

将其解压后进入源码目录:

<code class="language-text">tar -xvJf linux-4.17.11.tar.xz

为确保内核树绝对干净,进入内核目录并执行 make mrproper 命令:

<code class="language-text">cd linux-4.17.11
make clean && make mrproper

6、内核配置

复制当前的内核配置文件

config-3.10.0-862.el7.x86_64是当前环境的内核配置文件,根据实际情况修改。

<code class="language-text">cp /boot/config-3.10.0-862.el7.x86_64 .config

高级配置

  • y 是启用, n 是禁用, m 是需要时启用.
  • make menuconfig: 老的 ncurses 界面,被 nconfig 取代
  • make nconfig: 新的命令行 ncurses 界面

7、编译和安装

编译内核:如果是四核的机器,x可以是8

<code class="language-text">make -j x

安装内核

Warning: 从这里开始,需要 root 权限执行命令,否则会失败.

编译完内核后安装:

<code class="language-text">make modules_install install

8、设置启动

<code class="language-text"># 查看启动顺序
[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、查看系统当前内核版本

<code class="language-text">[root@localhost ~]# uname -r
5.4.103-1.el7.elrepo.x86_64

2、查看系统中全部内核

<code class="language-text">[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 版本为例

注意:无法卸载当前在用的内核版本。

<code class="language-text">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

卸载完后不一定需要重启。

检查卸载后内核版本

<code class="language-text">[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
广告合作
QQ群号:707632017
标签:

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

热门教程

  • Z-Blog教程
    Z-Blog教程
    ZBlog教程分享ZBlog安装教程、ZBlog建站教程和ZBlog使用教程等相关教程,包括如何创建...
  • WordPress教程
    WordPress教程
    WordPress教程提供了关于WordPress的基础知识和技巧,包括安装、设置、发布内容、选择主...
  • 宝塔面板教程
    宝塔面板教程
    宝塔面板教程是一个致力于向用户传授宝塔面板的使用技巧和知识的学习资源,旨在帮助用户快速上手和充分利用...
  • Shopify教程
    Shopify教程
    Shopify教程提供了关于Shopify平台的基本知识和操作指南,包括商店设置、商品管理、订单处理...
  • PHP教程
    PHP教程
    PHP教程提供了关于PHP语法、变量、函数、流程控制等概念的详细指导,同时介绍了常见的Web开发技术...

3个月免费VPS

亚马逊云科技

阿里云