前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux 实现centos7在线升级最新版本内核

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

作者头像
用户4877748
发布2020-07-22 02:00:02
2.4K0
发布2020-07-22 02:00:02
举报
文章被收录于专栏:LVMLVM

Kernel  (内核)是操作系统的核心,掌握所有硬件设备的控制权,也就是说,你所希望计算机帮你完成的各项工作,都需要通过内核的帮助才能完成,当然,如果我们想完成的某个功能是内核没有的,则内核不会操控计算机来帮你完成这项工作,如果我们想让内核去完成这个功能,那么我们就必须将该功能的模块添加到内核当中,这就类似于驱动程序,有了这样一个“驱动程序”的支持后,我们的硬件才能完成之前所不能完成的功能。

那么内核到底是什么呢?其实内核就是系统上面的一个文件而已,这个文件包含了驱动主机各项硬件的检测程序和驱动模块,在系统启动过程中,我们知道,系统读完BIOS并加载MBR中的Boot Loader之后,就能够加载内核到内存当中了,然后就去开始检测硬件设备,挂载根目录来获取内核模块来驱动所有的硬件设备,之后就开始让/sbin/init进程来完成系统的启动,同时讲到了内核文件就是在/boot 目录下的一个以vmlinuz 开头的文件,有时候我们会发现,/boot目录下有好几个以vmlinuz 开头的文件,也就是说主机可以有多个内核,但是启动后,只能选择一个来加载,所以说linux系统是单内核,模块化体系。

模块化可以这样理解,一个程序可以完成很多功能,那么每个独立的功能就可以称之为模块,这些独立的功能模块组合起来就可以完成一系列大的功能,内核也是一样。

当我们需要实现的功能内核不能提供时,这时我们就需要对内核进行更新升级,来实现满足我们要有功能需要,下面我就演示一下在centos7中升级最新版本内核步骤:

使用  uname -sr 查看自己内核版本号:

代码语言:javascript
复制
[root@localhost ~]# uname -sr
Linux 3.10.0-862.el7.x86_64

然后我们在浏览器中输入 www.kernel.org,查看centos,最新内核版本为:4.18

一:、安装elrepo的yum源

elrepo是CentOS十分有用的稳定的软件源,这是一个第三方仓库,可以将内核升级到最新版本。我们可以在命令行中输入:

首先导入public key

代码语言:javascript
复制
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@localhost ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:elrepo-release-7.0-3.el7.elrepo  ################################# [100%]

仓库启用后,我们可以使用下面的命令列出可用的内核相关包:

代码语言:javascript
复制
yum --disablerepo="*" --enablerepo="elrepo-kernel" list availableLoaded plugins: fastestmirror, langpacks
Repository 'QJC' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
 * elrepo-kernel: hkg.mirror.rackspace.com
elrepo-kernel                                                 | 2.9 kB  00:00:00     
elrepo-kernel/primary_db                                      | 1.8 MB  00:00:00     
Available Packages
kernel-lt.x86_64                          4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-devel.x86_64                    4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-doc.noarch                      4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-headers.x86_64                  4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-tools.x86_64                    4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-tools-libs.x86_64               4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-tools-libs-devel.x86_64         4.4.152-1.el7.elrepo          elrepo-kernel
kernel-ml.x86_64                          4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-devel.x86_64                    4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-doc.noarch                      4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-headers.x86_64                  4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-tools.x86_64                    4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-tools-libs.x86_64               4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-tools-libs-devel.x86_64         4.18.5-1.el7.elrepo           elrepo-kernel
perf.x86_64                               4.18.5-1.el7.elrepo           elrepo-kernel
python-perf.x86_64                        4.18.5-1.el7.elrepo           elrepo-kernel

二:升级内核

在yum的elrepo源中有ml和lt两种内核,其中ml(mainline)为最新版本的内核,lt为长期支持的内核。

如果要安装ml内核,使用如下命令:

yum --enablerepo=elrepo-kernel -y install kernel-ml

如果要安装lt内核,使用如下命令:

yum --enablerepo=elrepo-kernel -y install kernel-lt

在此我们安装的是ml内核,如下:

代码语言:javascript
复制
yum --enablerepo=elrepo-kernel install kernel-ml
Loaded plugins: fastestmirror, langpacks
Repository 'QJC' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
 * elrepo: hkg.mirror.rackspace.com
 * elrepo-kernel: hkg.mirror.rackspace.com
file:///media/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /media/repodata/repomd.xml"
Trying other mirror.
elrepo                                                        | 2.9 kB  00:00:00     
elrepo/primary_db                                             | 469 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:4.18.5-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================
 Package         Arch         Version                      Repository           Size
=====================================================================================
Installing:
 kernel-ml       x86_64       4.18.5-1.el7.elrepo          elrepo-kernel        45 M

Transaction Summary
=====================================================================================
Install  1 Package

Total download size: 45 M
Installed size: 203 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-4.18.5-1.el7.elrepo.x86_64.rpm                      |  45 MB  00:00:04     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : kernel-ml-4.18.5-1.el7.elrepo.x86_64                              1/1 
  Verifying  : kernel-ml-4.18.5-1.el7.elrepo.x86_64                              1/1 

Installed:
  kernel-ml.x86_64 0:4.18.5-1.el7.elrepo                                             

Complete!

内核升级完毕后,不会立即生效,还需要我们修改grub.conf文件。

三:修改grub.conf文件

内核升级完毕后,需要我们修改内核的启动顺序,默认启动的顺序应该为1,升级以后内核是往前面插入为0,打开并编辑 /etc/default/grub并设置GRUB_DEFAULT=0。一般新安装的内核在第一个位置,所以设置default=0,意思是 GRUB 初始化页面的第一个内核将作为默认内核。

接下来运行下面的命令来重新创建内核配置。

代码语言:javascript
复制
grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.5-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.18.5-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-619aa3de60a746919cbffe30b3f3329b
Found initrd image: /boot/initramfs-0-rescue-619aa3de60a746919cbffe30b3f3329b.img
done
[root@localhost ~]# 

然后reboot系统

再次查看内核版本号:

代码语言:javascript
复制
[root@localhost ~]# uname -sr
Linux 4.18.5-1.el7.elrepo.x86_64
[root@localhost ~]# 

内核升级完成!

当我们想开机手动选择内核版本时候,将上一步的0改为1,1 是手动选择在开机时候按方上下方向键 界面会停留在选择内核的界面如图所示:

完毕!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:、安装elrepo的yum源
  • 二:升级内核
  • 三:修改grub.conf文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档