从 Ubuntu 20.04 (Focal Fossa) 升级到 22.04 (Jammy Jellyfish) 或 24.04 (Noble Numbat) 是一个重要的系统维护操作。由于这两个版本跨度较大(20.04 到 22.04 跨越两个 LTS,20.04 到 24.04 则跨越三个 LTS),直接升级虽然可行,但存在较高的风险。
以下是针对这两种升级路径的详细注意事项和最佳实践建议:
1. 核心原则:不要“跨代”直接升级
强烈建议先升级到 Ubuntu 22.04,然后再从 22.04 升级到 24.04。
- 原因:Ubuntu 官方通常不建议直接从 20.04 跳过 22.04 升级到 24.04。虽然
do-release-upgrade工具有时能处理,但依赖库的变动、内核版本的跳跃以及配置文件的变更可能导致严重的系统不稳定或软件冲突。 - 例外:除非你非常清楚自己在做什么,并且有完整的备份和回滚方案,否则请遵循“阶梯式”升级策略。
2. 升级前的准备工作(至关重要)
无论选择哪个目标版本,以下步骤是必须执行的:
A. 完整备份数据
这是最重要的一步。升级过程中如果断电、网络中断或出现脚本错误,可能导致系统无法启动。
- 数据备份:备份
/home目录下的个人文件、配置文件(如.bashrc,.ssh等)。 - 系统快照:如果是虚拟机(VMware, VirtualBox, KVM),请在升级前创建快照。如果是物理机,建议制作可启动的救援盘。
- 记录配置:记录下你手动修改过的关键配置文件路径,因为升级后某些默认配置可能会覆盖它们。
B. 更新当前系统
在开始升级流程前,确保 20.04 系统是最新的:
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y
C. 清理第三方源和 PPA
许多第三方仓库(PPA)可能不支持新版本,导致升级失败。
- 检查并移除不再维护的 PPA:
sudo add-apt-repository --remove ppa:xxx/yyy # 或者使用 software-properties-gui 图形界面管理 - 对于非官方软件源,建议在升级后重新添加,而不是在升级过程中保留。
D. 检查磁盘空间
升级过程需要下载大量包并解压,通常需要预留 5GB – 10GB 的额外空闲空间。
df -h /
3. 特定版本的差异与注意事项
升级至 Ubuntu 22.04 (Jammy Jellyfish)
- Python 版本变化:22.04 默认将 Python 3.10 作为系统默认版本(20.04 为 3.8)。如果你的脚本强依赖特定版本或使用了旧版库,可能需要调整。
- Snap 支持增强:22.04 对 Snap 的支持更加深入,部分原本通过
apt安装的组件可能被引导向 Snap 安装(如 Firefox, Chromium),注意检查权限和集成情况。 - SSH 协议:OpenSSH 版本更新,旧客户端连接可能需要更新。
- GNOME 桌面:界面风格略有微调,但整体逻辑一致。
升级至 Ubuntu 24.04 (Noble Numbat)
- 内核版本大跳:24.04 默认搭载较新的 Linux 6.8+ 内核。老旧的硬件驱动(特别是专有显卡驱动、Wi-Fi 网卡)可能在旧内核下工作正常,但在 24.04 的新内核上失效。务必确认你的硬件厂商提供了 24.04 的驱动支持。
- Wayland 默认化:24.04 进一步推广 Wayland 显示协议。如果你习惯使用 X11 的某些特性(如特定的屏幕录制工具、多显示器扩展模式),可能需要重新配置或寻找替代品。
- Docker 和容器:Docker 引擎和 Kubernetes 组件的版本会有显著更新,需测试现有容器环境的兼容性。
- 安全增强:默认启用了更严格的安全策略(如 AppArmor 规则更新),某些自定义服务可能需要调整权限。
4. 执行升级的操作步骤
推荐使用命令行进行升级,以便查看详细的日志输出。
场景一:20.04 -> 22.04
# 确保安装了升级工具
sudo apt install update-manager-core
# 检查是否有可用的新发行版
sudo do-release-upgrade -d # 注意:-d 用于开发版,LTS 间升级通常不需要此参数,直接运行即可
# 如果提示没有检测到新版本,尝试强制检测
sudo do-release-upgrade
- 交互过程:系统会询问是否保留旧配置文件,建议选择 "Yes" 或 "No" 视具体情况而定(通常选 "No" 让系统用新配置,然后手动合并差异更安全;选 "Yes" 则保留旧配置,可能引入兼容性问题)。
- 重启:升级完成后,务必重启系统。
场景二:22.04 -> 24.04
重复上述步骤。此时系统会自动识别 24.04 为可用版本。
5. 升级后的验证清单
升级完成并重启后,请立即执行以下检查:
- 系统信息确认:
lsb_release -a uname -r # 确认内核版本已更新 - 服务状态:
检查关键服务(Web 服务器、数据库、SSH)是否正常启动:systemctl status <service_name> - 软件兼容性:
- 运行常用应用程序,看是否有报错。
- 检查第三方软件(如 IDE、开发工具链)是否需要重新安装或配置。
- 清理残留:
删除不再需要的旧内核和临时文件:sudo apt autoremove --purge
总结建议
- 生产环境:如果是在生产服务器上,绝对不要直接在业务高峰期进行升级。应在测试环境中完全模拟一遍流程,确认所有业务逻辑无误后,再在维护窗口期进行操作。
- 首选路径:坚持 20.04 → 22.04 → 24.04 的顺序。
- 心态准备:升级后大概率会遇到一些小的配置问题或软件不兼容,保持耐心,查阅官方文档或社区论坛通常是解决之道。
如果您不确定某个特定软件是否兼容,请先在沙箱或虚拟机中测试。
云服务器