Linux运维之CentOS 7 升级内核版本

简介: Linux运维之CentOS 7 升级内核版本

系统环境:

  • 系统版本:CentOS 7.9
  • 前内核版本:3.10.0-1160
  • 升级后的内核版本:5.4.171-1
$ uname -rs
Linux 3.10.0-1160.45.1.el7.x86_64

安装 ELRepo 最新版本

载入公钥并安装 ELRepo 最新版本:

## 载入公钥
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

## 安装 ELRepo 最新版本
$ yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
Loaded plugins: fastestmirror, langpacks
elrepo-release-7.el7.elrepo.noarch.rpm                                                                                                                                                                                                                 | 8.6 kB  00:00:00     
Examining /var/tmp/yum-root-5iUPAM/elrepo-release-7.el7.elrepo.noarch.rpm: elrepo-release-7.0-5.el7.elrepo.noarch
Marking /var/tmp/yum-root-5iUPAM/elrepo-release-7.el7.elrepo.noarch.rpm to be installed
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> Running transaction check
---> Package elrepo-release.noarch 0:7.0-5.el7.elrepo will be installed
--> Finished Dependency Resolution
base/7/x86_64                                                                                                                                                                                                                                          | 3.6 kB  00:00:00     
docker-ce-stable/x86_64                                                                                                                                                                                                                                | 3.5 kB  00:00:00     
docker-ce-stable/x86_64/primary_db                                                                                                                                                                                                                     |  70 kB  00:00:00     
epel/x86_64                                                                                                                                                                                                                                            | 4.7 kB  00:00:00     
epel/x86_64/updateinfo                                                                                                                                                                                                                                 | 1.0 MB  00:00:00     
epel/x86_64/primary_db                                                                                                                                                                                                                                 | 7.0 MB  00:00:01     
extras/7/x86_64                                                                                                                                                                                                                                        | 2.9 kB  00:00:00     
packages-microsoft-com-prod                                                                                                                                                                                                                            | 3.0 kB  00:00:00     
packages-microsoft-com-prod/primary_db                                                                                                                                                                                                                 | 505 kB  00:00:00     
updates/7/x86_64                                                                                                                                                                                                                                       | 2.9 kB  00:00:00     
updates/7/x86_64/primary_db                                                                                                                                                                                                                            |  13 MB  00:00:02     

Dependencies Resolved

==============================================================================================================================================================================================================================================================================
 Package                                                       Arch                                                  Version                                                         Repository                                                                          Size
==============================================================================================================================================================================================================================================================================
Installing:
 elrepo-release                                                noarch                                                7.0-5.el7.elrepo                                                /elrepo-release-7.el7.elrepo.noarch                                                5.0 k

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

Total size: 5.0 k
Installed size: 5.0 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : elrepo-release-7.0-5.el7.elrepo.noarch                                                                                                                                                                                                                     1/1 
  Verifying  : elrepo-release-7.0-5.el7.elrepo.noarch                                                                                                                                                                                                                     1/1 

Installed:
  elrepo-release.noarch 0:7.0-5.el7.elrepo                                                                                                                                                                                                                                    

Complete!

安装新的内核版本

查询出可以使用的 kernel 包版本:

$ yum list available --disablerepo=* --enablerepo=elrepo-kernel
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
 * elrepo-kernel: hkg.mirror.rackspace.com
elrepo-kernel                                                                                                                                                                                                                                          | 3.0 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                                                                                                                                               | 2.0 MB  00:00:01     
Available Packages
kernel-lt.x86_64                                                                                                                       5.4.171-1.el7.elrepo                                                                                                      elrepo-kernel
kernel-lt-devel.x86_64                                                                                                                 5.4.171-1.el7.elrepo                                                                                                      elrepo-kernel
kernel-lt-doc.noarch                                                                                                                   5.4.171-1.el7.elrepo                                                                                                      elrepo-kernel
kernel-lt-headers.x86_64                                                                                                               5.4.171-1.el7.elrepo                                                                                                      elrepo-kernel
kernel-lt-tools.x86_64                                                                                                                 5.4.171-1.el7.elrepo                                                                                                      elrepo-kernel
kernel-lt-tools-libs.x86_64                                                                                                            5.4.171-1.el7.elrepo                                                                                                      elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                                                                      5.4.171-1.el7.elrepo                                                                                                      elrepo-kernel
kernel-ml.x86_64                                                                                                                       5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
kernel-ml-devel.x86_64                                                                                                                 5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
kernel-ml-doc.noarch                                                                                                                   5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
kernel-ml-headers.x86_64                                                                                                               5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
kernel-ml-tools.x86_64                                                                                                                 5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
kernel-ml-tools-libs.x86_64                                                                                                            5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                                                                      5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
perf.x86_64                                                                                                                            5.16.0-1.el7.elrepo                                                                                                       elrepo-kernel
python-perf.x86_64    

lt表示长期维护版,ml表示最新稳定版。

安装指定的 kernel 版本:

$ yum install -y kernel-lt-5.4.171-1.el7.elrepo --enablerepo=elrepo-kernel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * elrepo: hkg.mirror.rackspace.com
 * elrepo-kernel: hkg.mirror.rackspace.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
elrepo                                                                                                                                                                                                                                                 | 3.0 kB  00:00:00     
elrepo/primary_db                                                                                                                                                                                                                                      | 545 kB  00:00:00     
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> Running transaction check
---> Package kernel-lt.x86_64 0:5.4.171-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================================================================================
 Package                                                       Arch                                                       Version                                                                     Repository                                                         Size
==============================================================================================================================================================================================================================================================================
Installing:
 kernel-lt                                                     x86_64                                                     5.4.171-1.el7.elrepo                                                        elrepo-kernel                                                      50 M

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

Total download size: 50 M
Installed size: 228 M
Downloading packages:
kernel-lt-5.4.171-1.el7.elrepo.x86_64.rpm                                                                                                                                                                                                              |  50 MB  00:00:08     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-lt-5.4.171-1.el7.elrepo.x86_64                                                                                                                                                                                                                      1/1 
  Verifying  : kernel-lt-5.4.171-1.el7.elrepo.x86_64                                                                                                                                                                                                                      1/1 

Installed:
  kernel-lt.x86_64 0:5.4.171-1.el7.elrepo                                                                                                                                                                                                                                     

Complete!

这里我选择安装5.4的版本。

设置开启系统启动时使用的内核版本:

## 查看系统可用内核
$ cat /boot/grub2/grub.cfg | grep menuentry
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (5.4.171-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0bb4bfa4-b315-43ca-a789-2b43e726c10c' {
menuentry 'CentOS Linux 7 Rescue d7566b7634d99969d46b74186b897f86 (3.10.0-1160.45.1.el7.x86_64)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0bb4bfa4-b315-43ca-a789-2b43e726c10c' {
menuentry 'CentOS Linux (3.10.0-1160.45.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0bb4bfa4-b315-43ca-a789-2b43e726c10c' {
menuentry 'CentOS Linux 7 Rescue d4387c178451a59914edf1c69e6972e6 (3.10.0-1127.el7.x86_64)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0bb4bfa4-b315-43ca-a789-2b43e726c10c' {
menuentry 'CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0bb4bfa4-b315-43ca-a789-2b43e726c10c' {
menuentry 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0bb4bfa4-b315-43ca-a789-2b43e726c10c' {
menuentry 'CentOS Linux (0-rescue-4314bdb98c294da598ef91c169d55769) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-4314bdb98c294da598ef91c169d55769-advanced-0bb4bfa4-b315-43ca-a789-2b43e726c10c' {

## 设置开机从新内核启动
$ grub2-set-default "CentOS Linux (5.4.171-1.el7.elrepo.x86_64) 7 (Core)"

## 查看内核启动项
$ grub2-editenv list
saved_entry=CentOS Linux (5.4.171-1.el7.elrepo.x86_64) 7 (Core)

重启系统并观察内核版本

## 重启系统
$ reboot

## 启动完成查看内核版本是否更新:
$ uname -rs
Linux 5.4.171-1.el7.elrepo.x86_64
目录
相关文章
|
2月前
|
缓存 Linux 开发者
Linux内核中的并发控制机制
本文深入探讨了Linux操作系统中用于管理多线程和进程的并发控制的关键技术,包括原子操作、锁机制、自旋锁、互斥量以及信号量。通过详细分析这些技术的原理和应用,旨在为读者提供一个关于如何有效利用Linux内核提供的并发控制工具以优化系统性能和稳定性的综合视角。
|
2月前
|
缓存 负载均衡 算法
深入探索Linux内核的调度机制
本文旨在揭示Linux操作系统核心的心脏——进程调度机制。我们将从Linux内核的架构出发,深入剖析其调度策略、算法以及它们如何共同作用于系统性能优化和资源管理。不同于常规摘要提供文章概览的方式,本摘要将直接带领读者进入Linux调度机制的世界,通过对其工作原理的解析,展现这一复杂系统的精妙设计与实现。
108 8
|
2月前
|
算法 Linux 调度
深入理解Linux内核调度器:从基础到优化####
本文旨在通过剖析Linux操作系统的心脏——内核调度器,为读者揭开其高效管理CPU资源的神秘面纱。不同于传统的摘要概述,本文将直接以一段精简代码片段作为引子,展示一个简化版的任务调度逻辑,随后逐步深入,详细探讨Linux内核调度器的工作原理、关键数据结构、调度算法演变以及性能调优策略,旨在为开发者与系统管理员提供一份实用的技术指南。 ####
84 4
|
7天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
42 15
|
16天前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
118 3
|
1月前
|
算法 Linux
深入探索Linux内核的内存管理机制
本文旨在为读者提供对Linux操作系统内核中内存管理机制的深入理解。通过探讨Linux内核如何高效地分配、回收和优化内存资源,我们揭示了这一复杂系统背后的原理及其对系统性能的影响。不同于常规的摘要,本文将直接进入主题,不包含背景信息或研究目的等标准部分,而是专注于技术细节和实际操作。
|
1月前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
1月前
|
监控 算法 Linux
Linux内核锁机制深度剖析与实践优化####
本文作为一篇技术性文章,深入探讨了Linux操作系统内核中锁机制的工作原理、类型及其在并发控制中的应用,旨在为开发者提供关于如何有效利用这些工具来提升系统性能和稳定性的见解。不同于常规摘要的概述性质,本文将直接通过具体案例分析,展示在不同场景下选择合适的锁策略对于解决竞争条件、死锁问题的重要性,以及如何根据实际需求调整锁的粒度以达到最佳效果,为读者呈现一份实用性强的实践指南。 ####
|
1月前
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
1月前
|
负载均衡 算法 Linux
深入探索Linux内核调度机制:公平与效率的平衡####
本文旨在剖析Linux操作系统内核中的进程调度机制,特别是其如何通过CFS(完全公平调度器)算法实现多任务环境下资源分配的公平性与系统响应速度之间的微妙平衡。不同于传统摘要的概览性质,本文摘要将直接聚焦于CFS的核心原理、设计目标及面临的挑战,为读者揭开Linux高效调度的秘密。 ####
37 3

热门文章

最新文章