CentOS 7 默认搭载的 3.10 版本内核,在面对容器化等现代技术栈时,其功能限制日益凸显。因此,在进行新服务部署前,升级到更新的内核版本成为一项必要的准备工作。
本文将介绍两种主流的内核升级方式:通过 RPM 包手动安装和通过 YUM 仓库自动安装。你可以根据实际的网络环境和维护偏好进行选择。
方式一:RPM 包手动安装
对于无法直连外网或需要严格版本控制的环境,手动下载并安装 RPM 包是可靠的选择。ELRepo 项目提供了两种类型的内核包:
- kernel-lt:长期支持版本,稳定性高。
- kernel-ml:主线版本,更新更激进。
以下是使用长期支持版 (LT) 的升级步骤。
1.1 下载 RPM 包
首先,访问 ELRepo 的归档仓库下载所需的 RPM 包。我们需要下载内核主包、开发包和头文件包。
# RPM 包归档仓库地址:
http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
# 使用 wget 下载以下三个包(以 5.4.203 版本为例)
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.203-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.203-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.203-1.el7.elrepo.x86_64.rpm
1.2 安装内核
下载完成后,使用 rpm 命令依次安装这三个包。
rpm -ivh kernel-lt-5.4.203-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-devel-5.4.203-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-headers-5.4.203-1.el7.elrepo.x86_64.rpm
1.3 确认已安装的内核版本
安装后,可以通过以下命令查看系统中所有已安装的内核包,确认新内核已成功安装。
rpm -qa | grep kernel
命令输出会列出所有内核相关包,你应该能看到新安装的 kernel-lt、kernel-lt-devel 和 kernel-lt-headers,同时旧的 kernel-3.10.0 系列包也会保留。
kernel-tools-3.10.0-1160.el7.x86_64
kernel-lt-5.4.203-1.el7.elrepo.x86_64
kernel-lt-headers-5.4.203-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
kernel-3.10.0-1160.el7.x86_64
kernel-lt-devel-5.4.203-1.el7.elrepo.x86_64
1.4 设置新内核为默认启动项
安装多个内核后,需要修改 GRUB2 配置,将新内核设为默认启动。
# 1. 查看当前所有的启动菜单项及其顺序
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
输出通常类似如下,列表顶部的索引为 0:
CentOS Linux (5.4.203-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-86732e3aca4f409a80d380745684cb24) 7 (Core)
# 2. 设置默认启动项。这里将索引 0(即新内核)设为默认。
grub2-set-default 0
# 3. 重启系统使更改生效
reboot
1.5 重启后验证
系统重启后,登录并执行以下命令,检查当前运行的内核版本是否已更新。
uname -r
如果一切顺利,输出应显示为新安装的内核版本号,例如:
5.4.203-1.el7.elrepo.x86_64
方式二:通过 YUM 仓库安装(简述)
对于可以访问外网的环境,通过配置 ELRepo 的 YUM 仓库来安装和更新内核更为便捷。这种方法便于后续接收安全更新。
- 导入 ELRepo 仓库的 GPG 密钥并安装仓库配置包。
- 使用
yum 命令安装 kernel-lt 或 kernel-ml 及其 -devel 包。
- 同样,后续需要通过
grub2-set-default 设置默认启动项并重启。
由于原文未提供详细步骤,此处不再展开。其核心优势在于依赖自动解析和后续的可更新性。
小结与注意事项
无论采用哪种方式,升级内核前都强烈建议对重要数据进行备份。升级后,如果新内核导致硬件驱动或关键服务不兼容,你仍然可以在系统启动时,在 GRUB 菜单中手动选择旧的内核版本进入系统,并进行回退操作。
内核升级是系统运维中的一项基础但重要的任务,掌握多种方法能让你的部署和维护工作更加灵活。如果你想深入探讨更多Linux系统管理技巧,欢迎来到云栈社区与广大开发者交流。