如何在 CentOS 7 中安装或升级最新的内核
虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,Linux 只是个内核。另一方面,发行版是一个完整功能的系统,它建立在内核之上,具有各种各样的应用程序工具和库。
在正常操作期间,内核负责执行两个重要任务:
- 作为硬件和系统上运行的软件之间的接口。
- 尽可能高效地管理系统资源。
为此,内核通过内置的驱动程序或以后可作为模块安装的驱动程序与硬件通信。
例如,当你计算机上运行的程序想要连接到无线网络时,它会将该请求提交给内核,后者又会使用正确的驱动程序连接到网络。
- 建议阅读: 如何在 Ubuntu 中升级内核
随着新的设备和技术定期出来,如果我们想充分利用它们,保持最新的内核就很重要。此外,更新内核将帮助我们利用新的内核函数,并保护自己免受先前版本中发现的漏洞的攻击。
准备好了在 CentOS 7 或其衍生产品(如 RHEL 7和 Fedora)上更新内核了么?如果是这样,请继续阅读!
步骤 1:检查已安装的内核版本
让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:
# uname -sr
下面的图片展示了在一台 CentOS 7 服务器上的输出信息:
在 CentOS 7 上检查内核版本
如果我们现在进入 https://www.kernel.org/,在撰写本文时,我们看到最新的内核版本是4.10.1(其他版本可以从同一网站获得)。
还要考虑的一个重要的事情是内核版本的生命周期 - 如果你当前使用的版本接近它的生命周期结束,那么在该日期后将不会提供更多的 bug 修复。关于更多信息,请参阅内核发布页。
步骤 2:在 CentOS 7 中升级内核
大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。
但是,这只会升级内核到仓库中可用的最新版本 - 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。
与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。
要在 CentOS 7 上启用 ELRepo 仓库,请运行:
# 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
在 CentOS 7 启用 ELRepo
仓库启用后,你可以使用下面的命令列出可用的内核相关包:
# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum - 找出可用的内核版本
接下来,安装最新的主线稳定内核:
# yum --enablerepo=elrepo-kernel install kernel-ml
在 CentOS 7 中安装最新的内核版本
最后,重启机器并应用最新内核,接着运行下面的命令检查最新内核版本:
uname -sr
验证内核版本
步骤 3:设置 GRUB 默认的内核版本
为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:
打开并编辑 /etc/default/grub
并设置 GRUB_DEFAULT=0
。意思是 GRUB 初始化页面的第一个内核将作为默认内核。
GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
接下来运行下面的命令来重新创建内核配置。
# grub2-mkconfig -o /boot/grub2/grub.cfg
在 GRUB 中设置内核
[root@cpu015 ~]# cat /boot/grub2/grubenv
# GRUB Environment Block
saved_entry=CentOS Linux (4.20.11-1.el7.elrepo.x86_64) 7 (Core)
#saved_entry=CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
重启并验证最新的内核已作为默认内核。
在 CentOS 7 中启动默认内核版本
恭喜你!你已经在 CentOS 7 中升级内核了!
总结
在本文中,我们解释了如何轻松升级系统上的 Linux 内核。我们还没讲到另外一个方法,因为它涉及从源代码编译内核,这可以写成一本书,并且不推荐在生产系统上这么做。
虽然它是最好的学习体验之一,并且允许细粒度配置内核,但是你可能会让你的系统不可用,并且可能必须从头重新安装它。
如果你仍然有兴趣构建内核作为学习经验,你可以在 Kernel Newbies页面中获得指导。
一如既往,如果你对本文有任何问题或意见,请随时使用下面的评论栏。
如何在 CentOS 7 中安装或升级最新的内核的更多相关文章
- 教你三步在CentOS 7 中安装或升级最新的内核
转载自:https://www.linuxprobe.com/update-kernel-centos7.html #步骤 1:检查已安装的内核版本 >uname -sr #步骤 2:在 Cen ...
- 如何在CentOS系统中安装配置SNMP服务
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...
- 如何在CentOS 7中安装最新Git(源码安装)
如何在CentOS 7中安装最新Git 2017年05月20日 11:49:53 阅读数:1624 Git是在今天的软件开发行业一个非常有用的版本控制工具.我一直使用Git.于是为Linux公社的读者 ...
- 如何在 CentOS 7 中安装、配置和安全加固 FTP 服务
步骤 1:安装 FTP 服务器 1. 安装 vsftpd 服务器很直接,只要在终端运行下面的命令. # yum install vsftpd 2. 安装完成后,服务先是被禁用的,因此我们需要手动启动, ...
- 如何在 CentOS 8 中安装 Cockpit Web 控制台
如何在 CentOS 8 中安装 Cockpit Web 控制台 [日期:2019-10-31] 来源:Linux公社 作者:醉落红尘 [字体:大 中 小] 在本文中,我们将帮助您在CentOS ...
- 【转】如何在CentOS/RHEL中安装基于Web的监控系统 linux-das
Linux-dash是一款为Linux设计的基于Web的轻量级监控面板.这个程序会实时显示各种不同的系统属性,比如CPU负载.RAM使用率.磁盘使用率.网速.网络连接.RX/TX带宽.登录用户.运行的 ...
- CentOS 7中安装和配置Promethues
Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prome ...
- 在CentOS 7中安装nginx服务器
简要地介绍一下,如何在CentOS 7中安装nginx服务器 下载对应当前系统版本的nginx包(package) # wget http://nginx.org/packages/centos/ ...
- 在CentOS 7中安装Jetty服务器
Jetty 是一款纯Java的HTTP (Web) 服务器和Java Servlet容器. 通常在更大的网络框架中,Jetty经常用于设备间的通信,而其他Web服务器通常给"人类" ...
随机推荐
- ubuntu 安装 android studio
总共分三个步骤: 安装JDK 这里引用下别人的安装过程http://blog.csdn.net/bhq2010/article/details/6839762 注:android studio 版本为 ...
- go语音之进阶篇爬百度贴吧单线程版本
一.爬什么? 1.明确目标 : 知道你准备在那个范围或者网站去搜索 2.爬: 将所有的网站的内容全部爬下来 3.取:去掉对我们没用处的数据 4.处理数据:按照我们想要的方式存储或使用 二.百度贴吧小爬 ...
- C#中转义字符[转]
https://www.cnblogs.com/muran/p/3174865.html 编程中很多细节问题我们都要十分的注意,要不一个小小的字母错误就能引起程序的无法运行. C#中转义字符分2中,一 ...
- EntityFramework6 快速入门教程【转】
https://www.cnblogs.com/wujingtao/p/5401113.html 不得不说EF在国内实在是太小众,相关的技术文章真实屈指可数,而且很多文章都很旧了,里面使用的版本跟如今 ...
- log4net修改数据库连接字符串和写自定义信息
最近项目需要用log4net来写日志,因为整个平台式在sharepoint上,我们需要记录具体是哪个子站点发生的日志,因此需要再原来的log表里面添加一个自定义信息列.由于平台的安全性要求,我们需要对 ...
- C#开发winform程序的界面框架
首先创建一个“Windows应用程序”,默认的“Form1”文件修改为MainForm的窗体,作为程序的主窗体.从控件箱拖3个控件过来:MenuStrip.ToolStrip.StatusStrip. ...
- 基于PU-Learning的恶意URL检测
https://xz.aliyun.com/t/2190 Ya-Lin Zhang, Longfei Li, Jun Zhou, Xiaolong Li, Yujiang Liu, Yuanchao ...
- java根据图片路径下载到服务器方案 (转)
http://www.cnblogs.com/thinkingandworkinghard/articles/5589484.html 平常做的工作中,有一部分是同步数据的.但是同步的过程中碰到个问题 ...
- redis 中 set 和 hset 有什么不同,什么时候使用 hset 什么时候使用set?
转载:https://blog.csdn.net/wab719591157/article/details/73379844 redis 中存数据时,到底什么时候用 hset 相比于 set 存数据 ...
- WinForm 之 自定义标题栏的窗体移动
通过标题栏的鼠标事件实现窗体移动,代码如下: bool m_isMouseDown = false; //窗体是否移动 Point m_mousePos; //记录窗体的位置 /// <summ ...