搬瓦工 VPS 从 CentOS 7 升级到 CentOS 8 数据会丢失吗?

文章导读
搬瓦工 VPS 从 CentOS 7 升级到 CentOS 8 存在数据丢失风险,官方不支持就地升级操作。最安全的处理方式是备份数据后重新安装 CentOS 8 或迁移至 Rocky Linux、AlmaLinux 等替代发行版。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

搬瓦工 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 个典型错误及解决 - 知识库文档