如何在CentOS 7中升级Linux内核

admin
2024-04-11 / 0 评论 / 438 阅读 / 正在检测是否收录...

介绍

Linux内核是所有Linux发行版运行的基础。它是开源软件-任何人都可以反编译、检查和修改代码。

内核的更新版本可以提高安全性,增加功能,并提高操作系统的运行速度。

本指南将指导您如何在CentOS 7上升级Linux内核。

 先决条件

  • CentOS服务器
  • 访问命令行/终端访问
  • Sudo特权
  • 您系统的最新备份

更新CentOS内核版本的步骤

yum软件包管理器允许内核更新。然而,CentOS没有在官方存储库中提供最新的内核版本。

要更新CentOS上的内核,您需要安装一个名为ElRepo的第三方存储库。ElRepo提供来自kernel.org的最新内核版本。

官方版本经过测试,以确保它们正常工作,并且不会破坏应用程序和操作系统功能的稳定性。有两种类型的Linux内核版本:

稳定的长期支持内核版本-更新频率较低,但支持时间更长。
主线内核发布-支持期限较短,但更新更频繁。

步骤1:检查您当前的内核版本

要在CentOS上检查当前内核版本,请打开命令行界面并输入以下命令:


[root@web ~]# uname  -msr

系统应该返回一个如下所示的条目:

Linux 3.10.0-862.el7.x86-64 x86-64

输出指示您当前运行的内核版本,以及它基于哪种架构。

 第2步:更新CentOS存储库

在升级内核之前,所有软件包都必须更新到最新版本。

要更新CentOS软件存储库,请使用以下命令:

[root@web ~]# yum -y update

步骤3:启用ELRepo存储库

要安装新的内核版本,需要启用一个新的存储库(ELRepo存储库)。

在终端窗口中,键入:

导入ELRepo存储库安装GPG密钥。这很重要-CentOS不允许安装未签名的软件包。GPG密钥提供数字签名,以验证软件是否真实。

[root@web ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo库

[root@web ~]# rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

安装完成输出:

luul6e1v.png

第4步:列出可用内核

要列出可用的内核,请输入:

[root@web ~]# yum list available --disablerepo='*' --enablerepo=elrepo-kernel

系统应返回可用模块的列表。在列表中,注意一行说kernel-lt——表示稳定的长期支持版本——或kernel-ml——表示主线版本,支持期限较短,但更新更频繁。

[root@web ~]# yum list available --disablerepo='*' --enablerepo=elrepo-kernel
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel                                                                                                                                          | 3.0 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                                               | 2.1 MB  00:00:05     
可安装的软件包
elrepo-release.noarch                                                                  7.0-6.el7.elrepo                                                          elrepo-kernel
kernel-lt.x86_64                                                                       5.4.267-1.el7.elrepo                                                      elrepo-kernel
kernel-lt-devel.x86_64                                                                 5.4.267-1.el7.elrepo                                                      elrepo-kernel
kernel-lt-doc.noarch                                                                   5.4.267-1.el7.elrepo                                                      elrepo-kernel
kernel-lt-headers.x86_64                                                               5.4.267-1.el7.elrepo                                                      elrepo-kernel
kernel-lt-tools.x86_64                                                                 5.4.267-1.el7.elrepo                                                      elrepo-kernel
kernel-lt-tools-libs.x86_64                                                            5.4.267-1.el7.elrepo                                                      elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                      5.4.267-1.el7.elrepo                                                      elrepo-kernel
kernel-ml.x86_64                                                                       6.7.1-1.el7.elrepo                                                        elrepo-kernel
kernel-ml-devel.x86_64                                                                 6.7.1-1.el7.elrepo                                                        elrepo-kernel
kernel-ml-doc.noarch                                                                   6.7.1-1.el7.elrepo                                                        elrepo-kernel
kernel-ml-headers.x86_64                                                               6.7.1-1.el7.elrepo                                                        elrepo-kernel
kernel-ml-tools.x86_64                                                                 6.7.1-1.el7.elrepo                                                        elrepo-kernel
kernel-ml-tools-libs.x86_64                                                            6.7.1-1.el7.elrepo                                                        elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                      6.7.1-1.el7.elrepo                                                        elrepo-kernel
perf.x86_64                                                                            5.4.267-1.el7.elrepo                                                      elrepo-kernel
python-perf.x86_64                                                                     5.4.267-1.el7.elrepo                                                      elrepo-kernel

第5步:安装新的CentOS内核版本

要安装最新的主线内核

[root@web ~]# yum --enablerepo=elrepo-kernel install kernel-ml

第6步:查看可用版本

[root@web ~]# cat /boot/grub2/grub.cfg | grep 'menuentry '
menuentry 'CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-6.7.1-1.el7.elrepo.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {
menuentry 'CentOS Linux (3.10.0-1160.114.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.114.2.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {
menuentry 'CentOS Linux (3.10.0-1160.95.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.95.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {
menuentry 'CentOS Linux (3.10.0-1160.92.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.92.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {
menuentry 'CentOS Linux (3.10.0-1160.71.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.71.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {
menuentry 'CentOS Linux (0-rescue-e57ef32020fa406d9bbee213aba339ed) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-e57ef32020fa406d9bbee213aba339ed-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {

第7步:设置新内核为默认启动

修改启动内核两种方法:

第一种:修改grub引导到配置文件

一旦您确认新内核兼容并正常工作,您将需要编辑GRUB引导实用程序,以便默认情况下,它会加载您的新内核。

导航到/etc/default/,然后使用文本编辑器打开grub文件。或者,在终端中键入以下内容:

sudo vim /etc/default/grub

文件打开后,查找显示GRUB_DEFAULT=X的行,并将其更改为GRUB_DEFAULT=0(零)。此行将指示引导加载程序默认为列表中的第一个内核,这是最新的。

保存文件,然后在终端中键入以下命令以重新创建内核配置:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

第二种:直接通过命令修改

grub2-set-default 'CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)'

第8步: 查看设置的内核版本

[root@web ~]# grub2-editenv list 
saved_entry=CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)

第9步:重启服务

reboot

验证默认情况下,引导加载程序是否设置为加载最新的内核。

2

评论 (0)

取消