从 Ubuntu 20.04(Focal Fossa)升级到 22.04(Jammy Jellyfish)或 24.04(Noble Numbat)是可行的,但官方仅支持逐代升级(即 20.04 → 22.04 → 24.04),不支持跨版本直接升级(如 20.04 → 24.04)。以下是关键注意事项和分步建议,涵盖技术、安全、兼容性及最佳实践:
✅ 一、核心前提与官方政策
| 项目 | 说明 |
|---|---|
| 仅支持 LTS→LTS 逐代升级 | Ubuntu 官方只保证 20.04 → 22.04 和 22.04 → 24.04 的升级路径。跳过中间版本(如 20.04 → 24.04)未被测试、不受支持,极可能导致系统损坏。 |
| 必须启用标准仓库(非 ESM 或自定义源) | 升级前需确保 /etc/apt/sources.list 使用官方 archive.ubuntu.com(非 old-releases.ubuntu.com 或第三方镜像),且未启用 proposed、backports 等不稳定源。 |
| 20.04 支持周期 | 20.04 LTS 将于 2030年4月 结束标准支持(含安全更新),但 2025年4月起进入 ESM(Extended Security Maintenance)阶段,需 Ubuntu Pro 订阅才能获取后续安全补丁。建议在 ESM 开始前完成升级。 |
⚠️ 二、升级前必须检查事项(适用于 20.04→22.04 或 22.04→24.04)
1. 系统健康检查
# 更新并修复依赖
sudo apt update && sudo apt full-upgrade -y
sudo apt autoremove --purge -y
sudo apt autoclean
# 检查是否有失败的包/半安装状态
dpkg -l | grep "^rc" # 查看待清除配置残留
sudo dpkg --configure -a # 修复中断的配置
# 检查磁盘空间(至少 25GB 可用空间)
df -h /
2. 禁用第三方/PPA 源(高风险!)
- 第三方 PPA(如
ppa:graphics-drivers/ppa、nodejs、docker等)常导致升级失败或冲突。 - ✅ 操作:
# 列出所有启用的 PPA grep -r ^deb /etc/apt/sources.list* | grep ppa # 临时禁用(重命名 .list 文件) sudo mv /etc/apt/sources.list.d/*.list /tmp/ 2>/dev/null || true sudo apt update - ⚠️ 升级完成后,再选择性重新启用并测试兼容性。
3. 内核与驱动兼容性
- NVIDIA 驱动:22.04 默认使用
nvidia-driver-515(或更高),24.04 推荐535+。
→ 升级前卸载闭源驱动(改用nouveau临时过渡):sudo apt purge *nvidia* sudo reboot - 旧硬件(如 BIOS/UEFI 模式混合):确认系统为纯 UEFI 或纯 Legacy 模式(避免 GRUB 引导问题)。
4. 关键服务与自定义配置
- 检查
/etc/fstab中挂载项(尤其是 NFS/CIFS/加密卷)是否仍有效。 - 备份数据库(MySQL/PostgreSQL)、Web 服务器(Apache/Nginx)配置、SSL 证书路径。
- 若使用
systemd-resolved、dnsmasq或bind9,注意 22.04+ 默认启用systemd-resolved并监听53端口,可能与本地 DNS 冲突。
📌 三、各版本升级关键差异与风险点
| 版本 | 关键变化 | 升级风险提示 |
|---|---|---|
| 20.04 → 22.04 | • Python 3.8 → 3.10(系统脚本需兼容) • GRUB 2.06 + Secure Boot 改进 • 默认文件系统:ext4(Btrfs 仅限桌面版可选) • snapd 成为默认包管理器(apt install 被 snap install 替代部分应用) |
• python3 命令指向 3.10,旧脚本若硬编码 #!/usr/bin/env python3.8 会失败• snap 应用(如 core22, gnome-42-2204)占用额外磁盘空间(需定期清理 sudo snap autoremove)• 某些硬件(如老款 AMD GPU)需手动安装 amdgpu-pro 或切换内核参数 |
| 22.04 → 24.04 | • Python 3.10 → 3.12(重大变更:asyncio、zoneinfo 标准化)• GNOME 46(Wayland 默认,X11 降级为备选) • Kernel 6.8(支持新硬件,但可能丢弃旧驱动如 rtl8192cu)• systemd 255+(更严格的安全策略) |
• GNOME 46 Wayland 下,某些旧版远程桌面(VNC)、屏幕录制工具失效 • systemd-resolved 默认接管 DNS,可能干扰 dnsmasq/unbound• iptables-nft 成为默认,旧 iptables-legacy 规则需迁移 |
🛠 四、推荐升级流程(以 20.04 → 22.04 为例)
# 1. 备份!(重要)
sudo rsync -avh --exclude='/proc' --exclude='/sys' --exclude='/dev' --exclude='/run' --exclude='/tmp' / /backup/2004-full/
# 2. 清理 & 更新
sudo apt update && sudo apt full-upgrade -y
sudo reboot
# 3. 启用升级通道(确保 /etc/update-manager/release-upgrades 中 Prompt=lts)
sudo sed -i 's/Prompt=.*$/Prompt=lts/' /etc/update-manager/release-upgrades
# 4. 执行升级(终端模式,关闭 GUI)
sudo do-release-upgrade -d # -d 表示升级到最新 LTS(22.04)
# 或指定版本(22.04)
sudo do-release-upgrade -f DistUpgradeViewNonInteractive
# 5. 升级后必做
sudo apt autoremove --purge -y
sudo snap refresh # 更新 snap 包
sudo reboot
🔁 22.04 → 24.04 同理:等待 24.04 发布后(2024年4月25日已发布),运行
sudo do-release-upgrade即可(无需-d,因 24.04 是当前 LTS)。
❌ 五、明确不推荐的操作
- 跳过 22.04 直接升 24.04 → 极高概率失败(
do-release-upgrade会拒绝或中途崩溃)。 - 在生产服务器上无备份直接升级 → 必须先在测试环境验证。
- 升级时保持 SSH 会话活跃 → 建议使用
screen或tmux,避免网络中断导致升级中断。 - 忽略 ESM 提醒 → 20.04 在 2025年4月后将不再接收公共安全更新,必须升级或订阅 Ubuntu Pro。
💡 六、替代方案(适合生产环境)
| 场景 | 推荐做法 |
|---|---|
| 关键业务服务器 | ✅ 执行全新安装(22.04/24.04),通过脚本/Ansible 迁移配置与数据(更稳定、可审计)。 |
| 开发机/桌面用户 | ✅ 升级前创建 Live USB,用 Timeshift 备份整个系统快照(支持 Btrfs 快照回滚)。 |
| 老旧硬件(<4GB RAM) | ⚠️ 24.04 GNOME 46 资源占用较高 → 考虑安装 ubuntu-mate-desktop 或 xubuntu-desktop(轻量版)。 |
📚 官方资源
- Ubuntu 升级文档
- 22.04 发行说明
- 24.04 发行说明
- ESM 支持政策
如有具体场景(如:Docker 主机、Kubernetes 节点、CUDA 开发环境、特定硬件型号),欢迎补充,我可提供针对性建议。安全第一,备份先行!🔐
CLOUD技术博