如何在CentOS 7上将Linux内核升级到Stable 4.7

时间:2020-03-05 15:30:02  来源:igfitidea点击:

这是有关在CentOS 7上将Linux内核升级到最新的稳定版本(4.7.0)的文章。
其中我们将理解为什么我们应该升级内核以及执行相同操作的不同方法。

我们可能知道,内核是操作系统(OS)的一部分,充当应用程序和硬件之间的接口。
Linux OS是高度模块化的,我们可以通过添加所需的功能并删除不再需要的功能来非常轻松地对其进行自定义。
这使我们可以轻松更改内核,因此更新非常常见。
为什么要频繁更新内核有多种原因,最重要的原因是

  • 安全性安全漏洞在最新版本中不断得到修复

  • 稳定性对于系统平稳运行而没有任何崩溃和挂起,这一点很重要。内核升级有助于减少系统崩溃的机会。

  • 效率内核更新侧重于效率和速度。

  • 新功能随着我们周围世界的变化如此之快,新功能已成为日常工作。为了保持最新状态,对我们来说,合并这些功能以使应用程序可以利用它们非常重要。

Linux稳定核心4.7

例如,2015年7月24日发布了Linux内核的最新稳定版本:4.7.
已添加了许多新功能。

在接下来的部分中,让我们学习如何升级到此版本。

Warning: Before proceeding with upgrading the kernel on your system, please backup all your important data on an external drive as the upgrade might make the system unstable at times.

使用ELRepo升级

ELRepo是Enterprise Linux Packages的RPM存储库,它支持RHEL及其衍生产品(如CentOS)。
让我们使用命令“ uname -r”检查当前拥有的内核版本:

[root@li900-251 ~]# uname -r
3.10.0-327.22.2.el7.x86_64

这需要更新到v4.7.
启用ELRepo并通过执行以下命令进行升级:

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

这将自动为CentOS 7安装最新的内核。
示例输出如下所示:

[root@li900-251 ~]# yum --enablerepo=elrepo-kernel install kernel-ml
Loaded plugins: fastestmirror
base | 3.6 kB 00:00
elrepo | 2.9 kB 00:00
elrepo-kernel | 2.9 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/3): updates/7/x86_64/primary_db | 5.7 MB 00:00
(2/3): elrepo/primary_db | 454 kB 00:01
(3/3): elrepo-kernel/primary_db | 1.6 MB 00:01
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* elrepo: ftp.osuosl.org
* elrepo-kernel: ftp.osuosl.org
* extras: mirrors.linode.com
* updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:4.7.0-1.el7.elrepo will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================
Package Arch Version Repository Size
===============================================================================
Installing:
kernel-ml x86_64 4.7.0-1.el7.elrepo elrepo-kernel 39 M
Transaction Summary
===============================================================================
Install 1 Package
Total download size: 39 M
Installed size: 175 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-4.7.0-1.el7.elrepo.x86_64.rpm | 39 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.7.0-1.el7.elrepo.x86_64 1/1
Verifying : kernel-ml-4.7.0-1.el7.elrepo.x86_64 1/1
Installed:
kernel-ml.x86_64 0:4.7.0-1.el7.elrepo
Complete!

通过编译源进行升级

安装依赖

编译Linux内核需要某些软件包。
如果尚未安装,则需要安装它们。

$yum install gcc ncurses ncurses-devel

现在,我们将只用一个命令就可以升级系统中的所有软件。

$yum update

下载包

我们可以使用'wget'命令下载最新的内核版本,也可以直接从kernel.org下载它。
其中我们将使用wget将其下载到/tmp目录中。

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.7.tar.xz

提取

由于下载的文件将采用压缩格式,因此我们需要先将其提取,然后再进行编译。
让我们将其下载到/usr/src目录中。

$tar -xf -C
[root@li900-251 tmp]# tar -xf linux-4.7.tar.xz -C /usr/src/
[root@li900-251 tmp]# cd /usr/src/linux-4.7/
[root@li900-251 linux-4.7]#

配置

新配置

切换到提取内核源代码的目录(usr/src/linux-4.7)如果是第一次编译内核,或者要在现有内核之上添加新功能,请在终端上运行make menuconfig命令进行配置Linux内核中的所有必需功能。
弹出如下所示的窗口,其中一些菜单带有多个菜单。
选择所需的配置后,选择“保存”选项并退出。
如果要退出而不保存任何内容,请按两次“ Esc”键。

旧配置

如果要保留内核的旧配置,则只需执行以下命令:

# make oldconfig

这会将现有配置保存到.config文件,我们可以继续进行编译

[root@li900-251 linux-4.7]# make oldconfig
scripts/kconfig/conf --oldconfig Kconfig
## using defaults found in /boot/config-3.10.0-327.22.2.el7.x86_64
#.....
## configuration written to .config
#

编译安装

为了编译内核,我们需要执行make命令。
根据系统的配置,编译内核通常大约需要30分钟。
有时,如果缺少任何软件包,可能会在编译时收到错误消息。
例如,当我进行编译时,出现诸如“找不到bc命令”和“ opensslv.h没有这样的文件或者目录”之类的错误。
第一个错误是通过安装'bc'(yum install bc)解决的,第二个错误是通过安装'openssl-devel'(yum install openssl-devel)软件包解决的。

#make

内核编译完成后,可以通过执行以下命令准备将其安装在系统上:

# make modules_install install

此命令将编译模块,将二进制文件安装到/boot目录中,并在grub.conf文件中为此内核添加一个条目。

确认

安装新内核后重新引导系统,一旦系统启动,执行uname -r命令以验证内核版本是否已成功更新。

[root@li900-251 ~]# uname -r
4.7.0