搬瓦工 VPS 从 CentOS 7 升级到 CentOS 8 存在数据丢失风险,官方不支持就地升级操作。最安全的处理方式是备份数据后重新安装 CentOS 8 或迁移至 Rocky Linux、AlmaLinux 等替代发行版。
先说结论:CentOS 7 到 CentOS 8 的就地升级属于高风险非官方操作,可能导致数据丢失、系统无法启动或 SSH 连接中断。
- 适合:测试环境或有完整快照备份可回滚的场景
- 先看:升级前必须对系统盘和数据盘做快照备份
- 建议:生产环境优先选择迁移至 Rocky Linux 8 或 AlmaLinux 8
命令速用版
升级前必须执行的备份和检查命令:
ss -tnp | grep sshd | wc -l > /tmp/ssh_connections.baseline
rpm -qa | grep -E "openssh|openssl|zlib" > /tmp/openssh_dependencies.baseline
tar -czvf /opt/backups/sshd_config_$(date +%Y%m%d%H%M).tgz /etc/ssh/ssh* /etc/pam.d/sshd
检查当前内核版本和已安装的内核开发包:
uname -r
rpm -qa | grep kernel-devel | sort
为什么会这样
CentOS 8 并非 CentOS 7 的简单功能增强版本,而是一次彻底重构的操作系统代际跃迁。底层从传统的 yum 全面转向 dnf 包管理器,仓库结构由单一 base/updates 拆分为 AppStream 与 BaseOS 双轨并行,glibc 升级至 2.28,systemd 进化至 v239+,内核基线提升至 4.18。这些变更共同构成了一道无法通过常规 yum update 穿越的语义鸿沟,RPM 包管理器原生不支持跨主版本号的原子化事务升级。
分步处理
第一步:环境准备与仓库清理
确保系统是最新的,安装必要的工具包:
yum update -y
yum install -y epel-release
yum install -y yum-utils rpmconf
rpmconf -a
第二步:配置 CentOS 8 的仓库
安装 DNF 并替换 yum 包管理器:
yum install -y dnf
dnf -y remove yum yum-metadata-parser
rm -Rf /etc/yum
第三步:替换发行版信息并安装关键包
使用 DNF 运行系统更新并安装 CentOS 8 软件包:
dnf upgrade -y
dnf install http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.1-1.1911.0.8.el8.x86_64.rpm
第四步:执行系统升级
升级 EPEL 存储库并清理临时文件:
dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf clean all
第五步:升级后配置与清理
检查网卡名称、SSH 配置和引导项是否正确,保留旧内核以备回滚。
怎么验证是否生效
升级完成后执行以下检查命令确认系统状态:
cat /etc/centos-release
uname -r
dnf `--version`
systemctl status sshd
检查日志位置:/var/log/dnf.log、/var/log/leapp/leapp-report.txt(如使用 ELevate 工具)。确认 SSH 端口可连接,关键服务正常运行,数据目录完整。
常见坑
多内核冲突:系统存在多个 kernel-devel 包时,升级工具无法构建有效的事务处理链。升级前只保留最新版本内核开发包,删除其余版本。
PAM 模块变革:RHEL 8 系列彻底移除了 pam_tally2 模块,认证体系重构可能导致 SSH 登录失败。升级前检查/etc/pam.d/sshd 配置差异。
网卡名称改变:NetworkManager 成为网络配置唯一权威,传统 ifconfig、netstat 等工具被标记为废弃,可能导致网络配置失效。
引导丢失:/boot/grub2/grub.cfg 需要手动注入新内核启动项,否则可能无法开机。
SSH 连接中断:升级过程中 sshd 服务可能中断,导致无法远程连接。建议在本地控制台或有带外管理的情况下操作。
常见问题
CentOS 7 升级到 8 会清空数据吗?
就地升级不会主动清空数据,但操作失误、配置冲突或升级失败可能导致数据无法访问或丢失。升级前必须对系统盘和数据盘做快照备份。
搬瓦工 VPS 支持 CentOS 8 吗?
CentOS 8 官方支持已在 2021 年 12 月 31 日终止,搬瓦工等 VPS 服务商可能不再提供 CentOS 8 镜像。建议迁移至 Rocky Linux 8 或 AlmaLinux 8 等替代发行版。
升级失败如何回滚?
最可靠的回滚方式是使用升级前的 VPS 快照恢复。升级过程中保留旧内核启动项可在重启后选择旧内核进入系统,但无法完全回退包版本。
有没有官方推荐的升级工具?
CentOS 7 到 8 的就地升级官方明确不支持。CloudLinux 开展的 ELevate 项目提供 leapp 工具支持从 CentOS 7 迁移到 Rocky Linux 8 或 AlmaLinux 8,但仍在实验阶段。
参考来源
- 从 Centos7 升级到 Centos8 的教程 - 知识库文档
- 如何从 CentOS7 升级到 8?CentOS8 最新安装教程 - 知识库文档
- CentOS 7 就地在线升级到 CentOS 8 的实验性脚本及风险说明 - 知识库文档
- CentOS 7 升级 CentOS 8.5 实战:非官方路径的风险操作与系统蜕变指南 - 知识库文档
- Centos7 升级到 Rocky8 - 知识库文档
- CentOS 7 升 Rocky 8 避坑大全:从内核冲突到 PAM 模块,一次讲清 5 个高优先级风险 - 知识库文档
- 避坑指南:我在内网用 ELevate 从 CentOS 7 升级 Rocky 8 遇到的 5 个典型错误及解决 - 知识库文档