一、概述

在数据中心基础环境中,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. 记忆中的像素块褪色了吗?用开源的体素编辑器重新做个 3D 的吧!

    本文适合对图形表现有兴趣的美术或者开发人员 本文作者:HelloGitHub-Joey 早期的的显示设备像素颗粒较大,使得显示内容的颗粒感严重,像是由一堆方块组成的.比较好的例子就是 GBA 上的游戏 ...

  2. oracle 释放表空间到OS(resize)

    1.查看表空间里面的对象 SELECT OWNER AS OWNER, SEGMENT_NAME AS SEGMENT_NAME, SEGMENT_TYPE AS SEGMENT_TYPE, SUM ...

  3. MongoDB查询优化--explain,慢日志

    引入 与Mysql数据库一样,MongoDB也有自己的查询优化工具,explain和慢日志 explain shell命令格式 db.collection.explain().<method(. ...

  4. django使用缓存之drf-extensions

    使用方法:1.直接添加装饰器@cache_response该装饰器装饰的方法有两个要求: 它必须是继承了rest_framework.views.APIView的类的方法 它必须返回rest_fram ...

  5. 学习Java第一天

    public 保证类名和文件名一致 关键字字母全小写,编辑器中有颜色标记 null空常量不能打印 变量就是内存中的存储空间 计算机中最小的存储单元时字节(byte) //1字节(B) = 8位(bit ...

  6. java之 Request

    0x01.Request 什么是request 在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息. ...

  7. centos7 centos-home 磁盘空间转移至centos-root下

    亲测可用,转载是为了记录,方便下次自己查看,如后朋友看到,请去查看作者原文,支持原创!!! 原文连接:https://www.cnblogs.com/renshengruxi/p/11782980.h ...

  8. vuex有哪几种属性

    有五种,分别是 State. Getter.Mutation .Action. Modulestate => 基本数据(数据源存放地)getters => 从基本数据派生出来的数据muta ...

  9. 在VMware15安装Ubuntu 16.04

    安装环境: VMware15 VMware15官网地址:https://my.vmware.com/cn/web/vmware/info/slug/desktop_end_user_computing ...

  10. C#编写一个在asp.net core 3.1下的简单的corn模式的计划任务和一个更简单的定时器类

    asp.net core 下,新增了一个BackgroundService用来实现能在后台跑一个长久运行的任务,因此,也可以用来替换掉原来使用的static的Timer组件, Timer组件主要有以下 ...