linux 实现centos7在线升级最新版本内核
Kernel (内核)是操作系统的核心,掌握所有硬件设备的控制权,也就是说,你所希望计算机帮你完成的各项工作,都需要通过内核的帮助才能完成,当然,如果我们想完成的某个功能是内核没有的,则内核不会操控计算机来帮你完成这项工作,如果我们想让内核去完成这个功能,那么我们就必须将该功能的模块添加到内核当中,这就类似于驱动程序,有了这样一个“驱动程序”的支持后,我们的硬件才能完成之前所不能完成的功能。
那么内核到底是什么呢?其实内核就是系统上面的一个文件而已,这个文件包含了驱动主机各项硬件的检测程序和驱动模块,在系统启动过程中,我们知道,系统读完BIOS并加载MBR中的Boot Loader之后,就能够加载内核到内存当中了,然后就去开始检测硬件设备,挂载根目录来获取内核模块来驱动所有的硬件设备,之后就开始让/sbin/init进程来完成系统的启动,同时讲到了内核文件就是在/boot 目录下的一个以vmlinuz 开头的文件,有时候我们会发现,/boot目录下有好几个以vmlinuz 开头的文件,也就是说主机可以有多个内核,但是启动后,只能选择一个来加载,所以说linux系统是单内核,模块化体系。
模块化可以这样理解,一个程序可以完成很多功能,那么每个独立的功能就可以称之为模块,这些独立的功能模块组合起来就可以完成一系列大的功能,内核也是一样。
当我们需要实现的功能内核不能提供时,这时我们就需要对内核进行更新升级,来实现满足我们要有功能需要,下面我就演示一下在centos7中升级最新版本内核步骤:
使用 uname -sr 查看自己内核版本号:
[root@localhost ~]# uname -sr
Linux 3.10.-.el7.x86_64
然后我们在浏览器中输入 www.kernel.org,查看centos,最新内核版本为:4.18
一:、安装elrepo的yum源
elrepo是CentOS十分有用的稳定的软件源,这是一个第三方仓库,可以将内核升级到最新版本。我们可以在命令行中输入:
首先导入public key:
[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... ################################# [%]
Updating / installing...
:elrepo-release-7.0-.el7.elrepo ################################# [%]
仓库启用后,我们可以使用下面的命令列出可用的内核相关包:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available Loaded 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 ::
elrepo-kernel/primary_db | 1.8 MB ::
Available Packages
kernel-lt.x86_64 4.4.-.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.-.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.-.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.-.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.-.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.-.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.-.el7.elrepo elrepo-kernel
kernel-ml.x86_64 4.18.-.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 4.18.-.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 4.18.-.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 4.18.-.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 4.18.-.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 4.18.-.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 4.18.-.el7.elrepo elrepo-kernel
perf.x86_64 4.18.-.el7.elrepo elrepo-kernel
python-perf.x86_64 4.18.-.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内核,如下:
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 ::
elrepo/primary_db | kB ::
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 :4.18.-.el7.elrepo will be installed
--> Finished Dependency Resolution Dependencies Resolved =====================================================================================
Package Arch Version Repository Size
=====================================================================================
Installing:
kernel-ml x86_64 4.18.-.el7.elrepo elrepo-kernel M Transaction Summary
=====================================================================================
Install Package Total download size: M
Installed size: M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-4.18.-.el7.elrepo.x86_64.rpm | MB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : kernel-ml-4.18.-.el7.elrepo.x86_64 /
Verifying : kernel-ml-4.18.-.el7.elrepo.x86_64 / Installed:
kernel-ml.x86_64 :4.18.-.el7.elrepo Complete!
内核升级完毕后,不会立即生效,还需要我们修改grub.conf文件。
三:修改grub.conf文件
内核升级完毕后,需要我们修改内核的启动顺序,默认启动的顺序应该为1,升级以后内核是往前面插入为0,打开并编辑 /etc/default/grub并设置GRUB_DEFAULT=0。一般新安装的内核在第一个位置,所以设置default=0,意思是 GRUB 初始化页面的第一个内核将作为默认内核。
接下来运行下面的命令来重新创建内核配置。
grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.-.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.18.-.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.-.el7.x86_64
Found initrd image: /boot/initramfs-3.10.-.el7.x86_64.img
Found linux image: /boot/vmlinuz--rescue-619aa3de60a746919cbffe30b3f3329b
Found initrd image: /boot/initramfs--rescue-619aa3de60a746919cbffe30b3f3329b.img
done
[root@localhost ~]#
然后reboot系统
再次查看内核版本号:
[root@localhost ~]# uname -sr
Linux 4.18.-.el7.elrepo.x86_64
[root@localhost ~]#
内核升级完成!
当我们想开机手动选择内核版本时候,将上一步的0改为1,1 是手动选择在开机时候按方上下方向键 界面会停留在选择内核的界面如图所示:
完毕!
linux 实现centos7在线升级最新版本内核的更多相关文章
- Linux(Fedora)下NodeJs升级最新版本(制定版本)
Linux(Fedora)下NodeJs升级最新版本(制定版本) 首先安装n模块: npm install -g n 升级node.js到最新稳定版 n stable 升级node.js到制定版本 n ...
- 如何在 CentOS 7 中安装或升级最新的内核
虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,Linux 只是个内核.另一方面,发行版是一个完整功能的系统,它建立在内核之上,具有各种各样的应用程序工具和库. 在正常操作期 ...
- 教你三步在CentOS 7 中安装或升级最新的内核
转载自:https://www.linuxprobe.com/update-kernel-centos7.html #步骤 1:检查已安装的内核版本 >uname -sr #步骤 2:在 Cen ...
- [转载]Linux 环境下编译 0.11版本内核 kernel
最近在看<.如果Clobber/Modify 为空,则其前面的冒号(:)必须省略. 2.如果Output,Input,Clobber/Modify都为空,Output,Input之前的冒号(:) ...
- linux centos系统下升级python版本
本文参考资料:https://www.cnblogs.com/leon-zyl/p/8422699.html,https://blog.csdn.net/tpc1990519/article/deta ...
- <摘录>Linux 环境下编译 0.11版本内核 kernel
系统环境:Fedora 13 + gcc-4.4.5 最近在看<linux内核0.11完全注释>一书,由于书中涉及汇编语言的地方众多,本人在大学时汇编语言学得一塌糊涂,所以实在看不下去了, ...
- ABP开发框架前后端开发系列---(16)ABP框架升级最新版本的经验总结
有一小段时间没有持续升级ABP框架了,最近就因应客户的需要,把ABP框架进行全面的更新,由于我们应用的ABP框架,基础部分还是会使用官方的内容,因此升级的时候需要把官方基础ABP的DLL进行全面的更新 ...
- centos7.5升级系统内核版本
1.yum update curl nss 2.yum install wget 3.rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.or ...
- 关于升级最新版本node.js你知道多少?
1.先检查版本 node -v 2.清除缓存 npm cache clean -f 3.全局安装管理node.js版本工具 npm install -g n 4.确认安装最新版本 n stable 5 ...
随机推荐
- 反射:修改请求头HttpWebRequest/Webclient Header属性的date值-"此标头必须使用适当的属性进行修改"
场景:调用外部接口,接口要求Header信息里面包涵Date信息,且Date信息必须是格式化好的,(他们用的是Java),但是C#默认的是Date属性不能被修改, 所以就会出现下面的错误: 未处理的异 ...
- Django 笔记分享
Django是一个基于MVC构造的框架.但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model).模板(Template)和视图(Views), ...
- Chrome opacity非1时border-radius圆角边框剪裁问题
border-radius:50%可以让元素正方形元素表现为正圆. 如果元素设置了border边框,则会表现为一个正圆圈圈,类似这样: 但有时候,border边框的这个圈圈会在边缘处发生剪裁,个别浏览 ...
- 华为云的API调用实践(python版本)
一.结论: 1.华为云是符合openstack 社区的API,所以,以社区的API为准.社区API见下面的链接. https://developer.openstack.org/api-ref/net ...
- 解决TOC与目录导航冲突问题
TOC是指markdown的TOC; 目录导航是指博客园中各个博主提供的各种目录导航. 现在改换markdown写博文了,我喜欢使用TOC作为目录,让大家了解博文的内容,也喜欢用"目录导航& ...
- 搭建MHA时 yum 安装perl模块提示 baseurl 错误
今天在搭建MySQL MHA 安装MHA node所需的perl模块(DBD:mysql)时遇到了一个小的错误,如果思路不对的话,还是产生不少麻烦. 现梳理记录下来. 问题现象 执行的命令 yum ...
- SQL Server 数据库状态选项-用户使用
选项 1. single_user(单用户),multi_user(多用户),restricted_user(受限用户); 描述数据库的用户访问属性,它们互斥,设置其中任何一个选项就会取消对其它选项的 ...
- cmd切换目录
想必大家都用过命令行工具来完成一些骚操作: 今天我在用cmd命令的时候,需要切换不同的目录来获取我所需要的文件,但是发现用cd的话切换不了: 如下图所示,我用cd切换到E盘下的一个文件夹,但是按回车之 ...
- 关于opencv模板匹配功能的项目测试记录
模板匹配功能介绍的很好的一篇博客:https://www.cnblogs.com/XJT2018/p/9934139.html 就如上述博客所言:“若原图像中的匹配目标发生旋转或大小变化,该算法无效. ...
- C#基础知识之类和结构体
虽然项目中一直在使用类.结构体等类型,仔细琢磨,还真无法系统的说出个所以然.记录一下类.结构体.类和结构体区别 一.类 对于类,大家都特别熟悉.简单的介绍一下类的结构,然后记录一下Class需要注意的 ...