一、概述

在数据中心基础环境中,Linux系统使用很普遍,但是有时候会遇到应用程序需要运行在高版本的内核上或者有时候系统自身要求需要升级内核,我们要综合考虑升级内核的风险。

二、升级内核的方法

1、查看操作系统内核版本

[root@localhost ~]# uname -r
3.10.0-1062.4.1.el7.x86_64

2、安装ELRepo到CentOS,下载key,并进行安装

最好从官方网站获取最新版本(官网地址:http://elrepo.org/tiki/tiki-index.php)。

[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@localhost ~]# yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
已加载插件:fastestmirror, langpacks
elrepo-release-7.el7.elrepo.noarch.rpm | 8.5 kB 00:00:00
正在检查 /var/tmp/yum-root-LAFBfB/elrepo-release-7.el7.elrepo.noarch.rpm: elrepo-release-7.0-4.el7.elrepo.noarch
/var/tmp/yum-root-LAFBfB/elrepo-release-7.el7.elrepo.noarch.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 elrepo-release.noarch.0.7.0-4.el7.elrepo 将被 安装
--> 解决依赖关系完成
base/7/x86_64 | 3.6 kB 00:00:00
extras/7/x86_64 | 2.9 kB 00:00:00
extras/7/x86_64/primary_db | 165 kB 00:00:00
updates/7/x86_64 | 2.9 kB 00:00:00
updates/7/x86_64/primary_db | 7.6 MB 00:00:01 依赖关系解决 ===========================================================================================
Package 架构 版本 源 大小
===========================================================================================
正在安装:
elrepo-release noarch 7.0-4.el7.elrepo /elrepo-release-7.el7.elrepo.noarch 5.0 k 事务概要
===========================================================================================
安装 1 软件包 总计:5.0 k
安装大小:5.0 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
正在安装 : elrepo-release-7.0-4.el7.elrepo.noarch 1/1
验证中 : elrepo-release-7.0-4.el7.elrepo.noarch 1/1 已安装:
elrepo-release.noarch 0:7.0-4.el7.elrepo 完毕!

3、查看内核列表,可以看到各个现有版本。  

[root@localhost ~]#  yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
* elrepo-kernel: hkg.mirror.rackspace.com
elrepo-kernel | 2.9 kB 00:00:00
elrepo-kernel/primary_db | 1.9 MB 00:00:01
可安装的软件包
kernel-lt.x86_64 4.4.220-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.220-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.220-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.220-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.220-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.220-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.220-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 5.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.6.7-1.el7.elrepo elrepo-kernel
perf.x86_64 5.6.7-1.el7.elrepo elrepo-kernel
python-perf.x86_64

4、安装需要的kernel版本,这里安装kernel-kt

内核版本介绍:

1)、lt:longterm的缩写:长期维护版;
2)、ml:mainline的缩写:最新稳定版;

[root@localhost boot]# yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* elrepo: hkg.mirror.rackspace.com
* elrepo-kernel: hkg.mirror.rackspace.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-ml.x86_64.0.5.6.7-1.el7.elrepo 将被 安装
---> 软件包 kernel-ml-devel.x86_64.0.5.6.7-1.el7.elrepo 将被 安装
--> 解决依赖关系完成 依赖关系解决 =============================================================================================================================================
Package 架构 版本 源 大小
=============================================================================================================================================
正在安装:
kernel-ml x86_64 5.6.7-1.el7.elrepo elrepo-kernel 49 M
kernel-ml-devel x86_64 5.6.7-1.el7.elrepo elrepo-kernel 13 M 事务概要
=============================================================================================================================================
安装 2 软件包 总计:62 M
安装大小:272 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : kernel-ml-devel-5.6.7-1.el7.elrepo.x86_64 1/2
正在安装 : kernel-ml-5.6.7-1.el7.elrepo.x86_64 2/2
验证中 : kernel-ml-5.6.7-1.el7.elrepo.x86_64 1/2
验证中 : kernel-ml-devel-5.6.7-1.el7.elrepo.x86_64 2/2 已安装:
kernel-ml.x86_64 0:5.6.7-1.el7.elrepo kernel-ml-devel.x86_64 0:5.6.7-1.el7.elrepo 完毕!

5、查看系统上面可以使用的内核

[root@localhost boot]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.6.7-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1062.4.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-3d09bf01bc1d401eac8c018ab645a715) 7 (Core)

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

1)修改启动顺序默认值

方法一:命令直接设置

[root@localhost ~]# grub2-set-default 0  

方法二:修改/etc/default/grub 文件

..........................................
设置 GRUB_DEFAULT=0,通过上面查询显示的编号为 0 的内核作为默认内核:
[root@node01 ~]# vi /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=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
...........................................

2)生产grub 配置文件  

[root@localhost boot]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.6.7-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.6.7-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1062.4.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1062.4.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found linux image: /boot/vmlinuz-0-rescue-3d09bf01bc1d401eac8c018ab645a715
Found initrd image: /boot/initramfs-0-rescue-3d09bf01bc1d401eac8c018ab645a715.img
done

7、重新启动

[root@localhost boot]# reboot
[root@localhost ~]# uname -r
5.6.7-1.el7.elrepo.x86_64

8、删除旧内核版本  

[root@localhost ~]# rpm -qa | grep kernel
abrt-addon-kerneloops-2.1.11-55.el7.centos.x86_64
kernel-3.10.0-1062.4.1.el7.x86_64
kernel-ml-5.6.7-1.el7.elrepo.x86_64
kernel-debug-devel-3.10.0-1062.4.1.el7.x86_64
kernel-3.10.0-862.el7.x86_64
kernel-tools-libs-3.10.0-1062.4.1.el7.x86_64
kernel-tools-3.10.0-1062.4.1.el7.x86_64
kernel-headers-3.10.0-1062.4.1.el7.x86_64
kernel-ml-devel-5.6.7-1.el7.elrepo.x86_64

1)方法一:使用yum remove 删除旧版本RPM包

[root@localhost ~]# yum remove kernel-3.10.0-1062.4.1.el7.x86_64 kernel-3.10.0-862.el7.x86_64 kernel-tools-3.10.0-1062.4.1.el7.x86_64 kernel-headers-3.10.0-1062.4.1.el7.x86_64
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel.x86_64.0.3.10.0-862.el7 将被 删除

2)方法二: yum-utils 工具

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

[root@localhost ~]# yum install yum-utils     //安装工具
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* elrepo: hkg.mirror.rackspace.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
软件包 yum-utils-1.1.31-52.el7.noarch 已安装并且是最新版本
无须任何处理
[root@localhost ~]# package-cleanup --oldkernels //删除旧版本
已加载插件:fastestmirror, langpacks
No old kernels to remove

-----------------------------------------------------------书山有路勤为径,学海无涯苦作舟-------------------------------------------------------------  

Linux CentOS7.x 升级内核的方法的更多相关文章

  1. yum-cron更新 CentOS yum update 不升级内核版本方法

    http://www.360doc.com/content/15/0608/17/15798950_476597844.shtml 相关yum-cron说明有一些 CentOS yum update ...

  2. Linux/CentOS配置:使用yum update更新时不升级内核的方法

    RedHat/CentOS/Fedora使用 yum update 更新时,默认会升级内核.但有些服务器硬件(特别是组装的机器)在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦.所以 ...

  3. CentOS升级内核的方法

    升级前的内核版本为:2.6.32-431.el6.x86_64 升级后的内核版本为:3.10.101-1.el6.elrepo.x86_64 升级方法: 1.导入key rpm --import ht ...

  4. Ubantu 16.04升级内核版本和还原到升级之前的内核版本的方法

    一.查看系统信息 1.查看发布版本: 命令: lsb_release -a 运行结果: / 2.查看内核版本: 命令: uname -sr 运行结果: 二.升级内核的方法 1.内核下载地址:http: ...

  5. 在centos 7下升级内核

      前言 今天读了一篇老外的文章,讲的是如何在linux环境下升级内核.比较暴力,比较简单,故做个记录.   文章中,作者先列出一个常识:linux是内核名,不是系统名.我们平时说的"lin ...

  6. linux 实现centos7在线升级最新版本内核

    Kernel  (内核)是操作系统的核心,掌握所有硬件设备的控制权,也就是说,你所希望计算机帮你完成的各项工作,都需要通过内核的帮助才能完成,当然,如果我们想完成的某个功能是内核没有的,则内核不会操控 ...

  7. Linux升级内核教程(CentOS7)

    1.查看当前内核版本 uname -r 2.通过yum升级内核 通过yum升级内核是最保险的升级方式,因为安装的是操作系统发行厂商验证过兼容性的rpm包,升级风险一般很小. yum install - ...

  8. 使用yum更新时不升级Linux内核的方法

    RedHat/CentOS/Fedora使用 yum update 更新时,默认会 升级内核 .但有些服务器硬件(特别是组装的机器)在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦. ...

  9. centos7无故重启-内核升级

    最近有一台物理服务器,centos7操作系统,无故重启,每天都会发生这种情况: 解决: 升级内核 CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本,使用ELRepo升 ...

随机推荐

  1. Web安全之CSRF(跨站请求伪造)

    CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为"CSRF",在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺 ...

  2. Databricks 第7篇:管理Secret

    有时,访问数据要求您通过JDBC对外部数据源进行身份验证,可以使用Azure Databricks Secret来存储凭据,并在notebook和job中引用它们,而不是直接在notebook中输入凭 ...

  3. python3.8.1安装cx_Freeze

    按照官网的提示命令python -m pip install cx_Freeze --upgrade安装,不成功,报了一个错误,说cx_Freeze找不到需要的版本,还有一些警告说PIP需要升级,没理 ...

  4. spring boot 集成 websocket 实现消息主动

    来源:https://www.cnblogs.com/leigepython/p/11058902.html pom.xml 1 <?xml version="1.0" en ...

  5. 05--Docker对DockerFile解析

    一.是什么: 1.1 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本 1.2 构建步骤: 1.2.1 编写Dockerfile文件 1.2.2 docker ...

  6. [Usaco2008 Mar]Cow Travelling游荡的奶牛

    题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...

  7. 阅读lodash源码之旅数组方法篇-compact和concat

    鲁迅说过:只有阅读过优秀库源码的人,才能配的上是真正的勇士. compact 创建一个新数组,包含原数组中所有的非假值元素.例如false, null,0, "", undefin ...

  8. 性能测试WAS内存使用的探索和分析

    性能测试中,CPU和内存是关注最多的两个性能指标.以我行应用最多的系统架构(WAS+Oracle)来说,CPU使用率高的问题多发生于数据库,比如索引不当引发的表扫描.绑定变量使用不当引发的硬解析.连接 ...

  9. dotnet cli 5.0 新特性——dotnet tool search

    dotnet cli 5.0 新特性--dotnet tool search Intro .NET 5.0 SDK 的发布,给 dotnet cli 引入了一个新的特性,dotnet tool sea ...

  10. 什么是STP

    简介 了解STP 配置STP 相关信息 简介 STP(Spanning Tree Protocol)是运行在交换机上的二层破环协议,环路会导致广播风暴.MAC地址表震荡等后果,STP的主要目的就是确保 ...