当前位置:首页>Linux>CentOS 7 升级到 Rocky Linux 9 新手完全指南(一):升级前准备与环境检查

CentOS 7 升级到 Rocky Linux 9 新手完全指南(一):升级前准备与环境检查

  • 2026-10-10 16:29:11
CentOS 7 升级到 Rocky Linux 9 新手完全指南(一):升级前准备与环境检查

字数 2568,阅读大约需 13 分钟

最近终于下决心,把公司一台服务器上老掉牙的CentOS 7升级到了Rocky Linux 9,中间踩了无数坑,包括升级完成后由于在CentOS 7上自行编译升级了一些核心库,导致升级后服务器无法启动,又进入应急恢复模式模式修复,血泪教训,因此有了些系列,详细记录了升级步骤、遇到的问题及排查过程。希望对有需要的人有帮助。这里再重申一次:危险操作,没有十足的把握,切勿尝试

一、 为什么要升级?—— 升级的充分理由

CentOS 7 已于 2024 年 6 月 30 日 End of Life(EOL)!

这是升级的最核心原因。CentOS 7 在 2024 年 6 月 30 日 正式停止维护(End of Life),这意味着:

1. 不再提供安全更新

  • • 官方仓库已停止更新:CentOS 官方不再发布任何安全补丁
  • • 漏洞无人修复:发现的 CVE 漏洞永远不会被修复
  • • 风险日益增加:随着时间推移,已知漏洞越来越多,系统越来越危险

举例说明:

  • • 2024 年 7 月后发现的 OpenSSL 心脏出血类漏洞
  • • 新发现的 sudo 提权漏洞
  • • 内核级别的安全漏洞
  • • 这些都永远不会在 CentOS 7 上得到修复!

2. 软件版本严重过时

CentOS 7 的基础软件版本已经非常老旧:

组件
CentOS 7 版本
Rocky Linux 9 版本
影响
Linux 内核
3.10.x (2013年)
5.14.x (2021年)
新硬件不支持、性能差
OpenSSL
1.0.2
3.0.x
不支持 TLS 1.3、存在已知漏洞
Python
2.7 / 3.6
3.9+
Python 2 已 EOL,大量现代库无法使用
PHP
5.4 / 7.0
8.0+
现代框架不支持、性能落后
MySQL
5.6 / 5.7
8.0+
现代应用不兼容、性能差距大
Git
1.8.x
2.31+
缺少现代 Git 特性
gcc
4.8.x
11.x+
无法编译现代 C++ 程序

实际问题:

  • • 现代应用无法安装或运行
  • • 开发环境与生产环境差异大
  • • 编译软件时需要手动升级工具链
  • • 容器技术(Docker、K8s)支持差

3. 合规性风险

如果你的业务涉及以下场景,继续使用 CentOS 7 可能带来合规风险:

  • • PCI DSS 支付卡行业标准:要求使用受支持的操作系统版本
  • • HIPAA 医疗行业:需要及时修补安全漏洞
  • • GDPR 欧盟数据保护:要求采取适当安全措施
  • • 等保 2.0:中国网络安全等级保护要求使用安全版本
  • • SOC 2 / ISO 27001:审计时可能因使用 EOL 系统而不通过

审计风险: 安全审计时,"使用已停止维护的操作系统" 会被标记为高风险项。

4. 不支持新硬件

CentOS 7 的内核(3.10)发布于 2013 年,对现代硬件支持极差:

  • • 新型 CPU:Intel 第 10 代+、AMD Ryzen 5000+ 支持不佳
  • • NVMe SSD:可能没有最优驱动,性能无法发挥
  • • 新网卡:2.5G/5G/10G 网卡可能没有驱动
  • • 显卡:新显卡无法使用
  • • USB 4.0 / Thunderbolt:不支持

5. 已知的严重漏洞无法修复

以下是 CentOS 7 上无法修复的部分高危漏洞示例:

  • • CVE-2024-XXXX(假设的新漏洞):内核级权限提升,无法修复
  • • OpenSSL 相关漏洞:版本太老,不支持新版本
  • • Sudo 漏洞:多个已知提权漏洞
  • • Polkit 漏洞:系统服务提权风险

攻击者知道这些系统有漏洞且不会修复,CentOS 7 服务器成为"软柿子"。

6. 隐性成本增加

继续使用 CentOS 7 的"省钱"是假象,实际成本更高:

  • • 安全事件处理成本:一次入侵事件的损失远超升级成本
  • • 人工维护成本:需要手动编译软件、打补丁、做 workaround
  • • 业务中断风险:系统被攻破导致的服务中断
  • • 技术支持成本:社区不再支持,问题难以解决

7. 为什么选择 Rocky Linux 9?

Rocky Linux 是 CentOS 的最佳替代品:

特性
CentOS 7
Rocky Linux 9
维护状态
❌ EOL (2024.6.30)
✅ 活跃维护到 2032+
内核版本
3.10.x
5.14.x
安全更新
❌ 无
✅ 及时提供
二进制兼容
RHEL 7
RHEL 9
迁移难度
-
有详细文档支持
社区支持
❌ 基本停止
✅ 活跃社区
商业支持
❌ 无
✅ 可选

Rocky Linux 9 支持周期:

  • • 完全支持:到 2027 年
  • • 扩展支持:到 2032 年
  • • 总计 10 年生命周期

重要提示

升级风险提示:

  • • 如果你的服务器托管在IDC机房,又自行编译安装过一些核心组件,比如openssl之类的,请确保安装有远程控制卡,可以在系统启动失败的情况下通过远程控制卡连接到控制台进行修复工作,如果没有控制卡,请勿尝试,切记!!!
  • • 此升级过程涉及系统核心组件更换,存在失败风险
  • • 强烈建议在操作前创建系统快照或完整备份
  • • 生产环境请在维护窗口期操作,并确保有可回滚方案
  • • 升级过程中不要中断 SSH 连接,建议使用带 IPMI/KVM 的服务器

⚡ 紧急提醒:如果你还在用 CentOS 7...

请立即评估以下风险:

  1. 1. 你的服务器暴露在公网吗? → 风险极高,建议立即迁移
  2. 2. 处理敏感数据吗? → 合规风险,可能面临审计不通过
  3. 3. 使用于生产环境吗? → 业务连续性风险
  4. 4. 已经多久没更新了? → 累积的漏洞越来越多

不要心存侥幸! 继续使用 EOL 系统的代价远大于升级的成本。


1.1 升级路径概览

由于无法直接从 CentOS 7 升级到 Rocky Linux 9,需要按以下路径分阶段进行:

CentOS 7.9 → CentOS 8.5 → Rocky Linux 8.8 → Rocky Linux 9.2

整个过程大约需要 1-2 小时,具体时间取决于网络速度和服务器性能。


1.2 环境要求检查

1.2.1 确认当前系统版本

# 检查当前系统版本
cat
 /etc/redhat-release
uname
 -r
uname
 -a

预期输出示例:

CentOS Linux release 7.9.2009 (Core)
3.10.0-1160.95.1.el7.x86_64

注意: 如果你的版本低于 CentOS 7.9,请先执行 yum -y update 升级到最新版本。

1.2.2 检查磁盘空间

# 检查根分区剩余空间,建议至少保留 10GB 以上
df
 -h /

# 检查 /boot 分区空间,建议保留 500MB 以上

df
 -h /boot

如果空间不足,请先清理:

# 清理 yum 缓存
yum clean all

# 删除旧内核(谨慎操作,保留当前使用的内核)

package-cleanup --oldkernels --count=1

1.2.3 备份重要数据

# 备份关键配置文件
cp
 /etc/fstab /etc/fstab.bak
cp
 /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

# 备份网络配置

cp
 /etc/sysconfig/network-scripts/ifcfg-* /root/network-backup/ 2>/dev/null || true

# 记录已安装的重要软件包列表

rpm -qa > /root/installed-packages-before-upgrade.txt

1.3 更换国内镜像源(加速下载)

为了加快下载速度,建议更换为阿里云镜像源。

1.3.1 备份原有源配置

cd /etc/yum.repos.d/
cp
 CentOS-Base.repo CentOS-Base.repo.bak

1.3.2 更换阿里云镜像源

# 下载阿里云 CentOS 7 源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 如果没有 wget,使用 curl

# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

1.3.3 清理并重建缓存

yum clean all
yum makecache

验证镜像源是否生效:

yum repolist

你应该能看到 base-aliyun、extras-aliyun、updates-aliyun 等仓库。


1.4 安装必要的工具

1.4.1 安装 EPEL 仓库

EPEL 包含了许多额外的软件包,升级过程中可能需要:

yum -y install epel-release

1.4.2 安装升级工具

# 安装必要的升级工具
yum -y install yum-utils rpmconf

# 安装 dnf(CentOS 8+ 默认使用 dnf)

yum -y install dnf

1.4.3 运行 rpmconf 处理配置文件

# 运行 rpmconf,如果出现提示,输入 Y 和回车继续
# 如果没有提示,继续下一步

rpmconf -a

说明:rpmconf 会检查系统中需要处理的配置文件冲突。


1.5 切换到 DNF 包管理器

从 CentOS 8 开始,系统默认使用 dnf 替代 yum。

1.5.1 移除 yum(可选但推荐)

# 移除 yum 和 yum-metadata-parser
dnf -y remove yum yum-metadata-parser

# 清理 yum 配置目录

rm
 -Rf /etc/yum

注意: 这一步执行后,就不能使用 yum 命令了,请确保 dnf 可以正常使用。

1.5.2 验证 dnf 安装

dnf --version

预期输出:

4.0.9
  Installed: dnf-0:4.0.9.2-2.el7_9.noarch

1.6 检查并解决包冲突(重要)

在升级之前,必须先解决包冲突问题,否则后续升级会遇到报错。

1.6.1 检查孤立包和依赖问题

# 检查孤立包(没有依赖的包)
package-cleanup --leaves

# 检查损坏的依赖

package-cleanup --orphans

1.6.2 标记可能冲突的包

注意: 这些包可能在升级过程中引起冲突,先记录下来:

# 列出可能引起冲突的包
rpm -qa | grep -E "(sysvinit-tools|annobin|dracut-network)"

常见冲突包:

  • • sysvinit-tools - 与 util-linux 冲突
  • • annobin - GCC 版本依赖问题
  • • dracut-network - 网络管理器依赖问题

1.7 准备阶段检查清单

在开始正式升级前,请确认以下事项:

  • •  系统版本为 CentOS 7.9 或更高
  • •  根分区剩余空间 > 10GB
  • •  已更换为阿里云镜像源
  • •  已安装 dnf 并能正常使用
  • •  已运行 rpmconf -a 处理配置文件
  • •  已备份关键配置文件
  • • 已创建系统快照或完整备份(重要!)

1.8 升级前的最后提醒

再次确认你是否真的需要升级?

必须升级的情况(符合任意一条就必须升级):

  • • ✅ 服务器暴露在公网
  • • ✅ 处理敏感/重要数据
  • • ✅ 用于生产环境
  • • ✅ 有合规性要求
  • • ✅ 需要运行现代软件
  • • ✅ 使用较新的硬件

可以暂缓升级的情况(同时满足以下条件):

  • • ⭕ 内网环境且与外网物理隔离
  • • ⭕ 不处理敏感数据
  • • ⭕ 只是测试/开发环境
  • • ⭕ 短期内(1-2 个月内)计划退役或重建

即便如此,如果条件允许,还是尽可能升级到新版本!

最新文章

随机文章