1. 区分日常更新和发行版升级#
安装当前发行版的安全补丁属于日常更新;Ubuntu 24.04 升到后续 LTS、Debian 12 升到 13 属于发行版升级,会改变大量依赖和默认行为。后者需要维护窗口、备份和兼容性测试,不能等同于一次 apt upgrade。
先记录当前环境:
cat /etc/os-release
uname -r
df -h
systemctl --failed列出网站、PHP、数据库、Docker 和第三方软件源,查询每个应用是否支持目标系统。长期停更的旧系统通常更适合新建受支持实例迁移数据,避免跨越多个版本直接升级。
2. 先验证备份和控制台入口#
保存应用文件、数据库、配置与计划任务,并下载到另一处。快照可辅助回退,但要确认套餐是否支持、是否包含所有磁盘,以及恢复会覆盖哪些当前数据。

用 tmux 或服务商控制台执行长操作,避免 SSH 断开中止升级。保留足够磁盘空间,尤其是 /boot,并先修复已存在的软件包错误和失败服务。
3. Ubuntu 按官方支持的升级路径操作#
先完成当前版本的更新,阅读待变更包列表;需要重启时在维护窗口先重启到正常状态。再使用发行版提供的升级工具检查可用路径。
sudo apt update
sudo apt upgrade
sudo do-release-upgrade -c确认官方支持从当前版本升级到目标版本后,再运行 sudo do-release-upgrade。不要用开发版选项强行绕过尚未开放的升级路径,也不要直接替换所有软件源代号来模拟升级。
遇到配置文件冲突提示,先看差异:服务商网络配置、SSH 端口和自己的反向代理规则不能盲目覆盖。升级器提示临时 SSH 端口时,按当次说明处理防火墙,并保留控制台入口。
4. Debian 逐版阅读发行说明#
Debian 的稳定版升级以目标版本 Release Notes 为准。先更新当前版本、检查第三方源和 held packages,再按说明调整 Debian 官方源并分阶段升级。不要把其他发行版的 Ubuntu 源混入 Debian。
apt-mark showhold
dpkg --audit第三方源应逐个确认目标版本支持情况。数据库大版本升级可能有独立迁移要求;系统软件包升级成功,不代表数据库数据格式和插件一定兼容。
5. 重启后按业务验收,而不只看版本号#
cat /etc/os-release
uname -r
systemctl --failed
sudo journalctl -p err -b --no-pager再测试新的 SSH 连接、DNS、IPv4/IPv6、网站首页、登录、上传、数据库读写和计划任务。保留旧备份直到关键功能验证完毕;不要刚重启成功就删除唯一回退点。
如果升级失败,先从控制台查看错误。能恢复应用配置就针对修复;需要回退快照时,先保存升级后新增的数据。磁盘空间问题看清理磁盘,包管理问题看APT/DNF 排错。
完成后检查
如果无法证明原地升级可以回退,选择新机迁移通常更容易控制故障范围。