CentOS 7离线升级内核核心是下载→传入→安装→引导配置四步闭环,需选对kernel-lt包、装全依赖(如elfutils-libelf-devel)、用grub2-set-default和grub2-mkconfig正确设默认启动项并验证uname -r。

CentOS 7 在无公网环境下升级内核,核心是「下载→传入→安装→引导配置」四步闭环,不依赖在线仓库或网络源。关键在于选对包、装全依赖、正确设置启动项。
确认当前环境与目标版本
先登录服务器执行:
-
uname -r 查看当前内核(如
3.10.0-1160.el7.x86_64) - rpm -qa | grep kernel 列出已安装内核,避免重复或冲突
- 明确升级目标:kernel-lt(长期支持,稳定)还是 kernel-ml(主线最新,功能新)。CentOS 7 推荐用
kernel-lt,例如kernel-lt-5.4.214-1.el7.elrepo.x86_64.rpm
离线下载并传输内核 RPM 包
在有网的机器上下载必需的 RPM 文件(注意架构必须为 x86_64):
- 主内核包:
kernel-lt-*.rpm(必装) - 开发头文件:
kernel-lt-devel-*.rpm(装 NVIDIA/显卡驱动、DKMS 模块时必需) - 可选但建议:
kernel-lt-headers-*.rpm和kernel-lt-tools-libs-*.rpm(部分驱动编译需用) - 推荐镜像源(国内可用):
• 清华源:https://www.php.cn/link/7cef7f0406190a1213922c4a9243638a
• Coreix 归档源(elrepo 官方已下架旧包,此站保留):https://www.php.cn/link/da9a8522f58d2fd43abc9e2b48a33622
下载完成后,用 scp / U 盘 / 共享挂载等方式将 RPM 文件传到目标服务器的某个目录(如 /root/kernel-upgrade/)。
安装内核并处理依赖
进入 RPM 所在目录,执行安装:
- 若系统缺少基础编译依赖(尤其后续要装 NVIDIA 驱动),先装:
yum install -y elfutils-libelf-devel bc flex bison - 安装内核包(不强制覆盖,保留旧内核):
rpm -ivh kernel-lt-*.rpm kernel-lt-devel-*.rpm - 如提示依赖冲突(如 kernel-headers 版本不兼容),可加
--force --nodeps强制安装(仅限离线且确认无风险时):rpm -ivh --force --nodeps kernel-lt-*.rpm - 安装后检查:
ls /boot/vmlinuz*应能看到新内核文件(如vmlinuz-5.4.214-1.el7.elrepo.x86_64)rpm -qa | grep kernel-lt确认包已注册
更新 GRUB 并设为默认启动
新内核装好后不会自动生效,需手动配置引导:
- 查看启动菜单顺序:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
输出类似:0 : CentOS Linux (5.4.214-1.el7.elrepo.x86_64) 7 (Core)1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) - 设索引 0 为默认启动项:
grub2-set-default 0 - 重生成 GRUB 配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
成功时会显示 “Found linux image: /boot/vmlinuz-5.4.214…” - 重启验证:
reboot→ 启动后执行uname -r,应返回新版本号
整个过程不复杂但容易忽略引导配置环节。只要包版本匹配、安装顺序合理、GRUB 更新到位,离线升级就能一次成功。


















