从Ubuntu 20.04升级到22.04或24.04有哪些注意事项?

从 Ubuntu 20.04 LTS 升级到后续版本(22.04 LTS 或 24.04 LTS)是一项重要操作,需谨慎规划。以下是关键注意事项、推荐路径及实操建议,按优先级和风险等级整理:


✅ 一、核心原则与官方推荐路径

升级目标 官方支持路径 是否直接支持?
→ Ubuntu 22.04 LTS ✅ 20.04 → 22.04(LTS-to-LTS) 是,官方完整支持,稳定可靠
→ Ubuntu 24.04 LTS ❌ 不支持直接升级(20.04 → 24.04 跳过一个LTS) 否 —— 必须先升至 22.04,再升至 24.04

📌 重要提醒:Ubuntu 默认仅支持相邻版本升级(且仅对 LTS 版本启用 LTS 升级通道)。
do-release-upgrade 工具在 20.04 上默认不会显示 24.04,除非手动启用开发版通道(强烈不建议生产环境使用)。


⚠️ 二、升级前必须检查的 7 项关键事项

  1. 备份!备份!备份!

    • 使用 rsync、borgbackup 或 Timeshift(快照级备份)完整备份 /home、/etc、关键配置(如 Nginx/Apache、数据库)、自定义脚本。
    • 验证备份可恢复性(至少抽样还原一次)。
  2. 确认系统状态健康

    sudo apt update && sudo apt full-upgrade -y  # 确保 20.04 已完全更新
    sudo apt autoremove && sudo apt autoclean
    sudo dpkg --configure -a  # 修复中断安装
    sudo apt install --fix-broken
  3. 检查第三方/PPA 仓库兼容性

    • 运行 apt list --upgradable 查看待升级包,特别关注来自 ppa: 的软件(如 graphics-drivers, kubuntu-backports)。
    • 禁用所有非必要 PPA(sudo add-apt-repository --remove ppa:name),避免升级冲突。部分 PPA 可能在新版本中失效或导致依赖错误。
  4. 内核与硬件兼容性

    • Ubuntu 22.04 使用 Linux 5.15 内核,24.04 使用 6.8;老旧硬件(如某些 Wi-Fi 网卡、显卡驱动)可能需额外固件。
    • 检查:lspci -k | grep -A 3 -i "network|graphics",确认驱动是否被新内核支持(参考 Ubuntu Hardware Support)。
  5. 关键服务与应用兼容性

    • 数据库:MySQL 8.0+(22.04 自带 8.0.32,24.04 为 8.0.39)—— 检查自定义 SQL 语法、认证插件(caching_sha2_password)。
    • Python:20.04 默认 Python 3.8 → 22.04 为 3.10 → 24.04 为 3.12。若项目硬依赖 python3.8,需调整 python3 符号链接或使用 pyenv。
    • Docker:22.04+ 默认使用 containerd 替代 dockerd,旧版 docker-compose(v1)已废弃,需迁移到 docker compose(v2)。
  6. 磁盘空间要求(最低)

    • 至少预留 25–30 GB 可用空间(/ 分区),升级过程会下载 ~2–4 GB 包并保留旧内核。
    • 检查:df -h / 和 df -h /boot(确保 /boot ≥ 500 MB,避免内核安装失败)。
  7. 远程服务器特别注意

    • 切勿通过 SSH 直接升级(网络中断将导致系统损坏)。
    • ✅ 正确做法:使用 screen 或 tmux 启动升级,并确保服务器支持带外管理(IPMI/iDRAC)或有物理访问权限。
    • 若必须远程升级,先配置 unattended-upgrades 并测试回滚方案。

🛠 三、升级操作步骤(以 20.04 → 22.04 为例)

# 1. 更新当前系统
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y

# 2. 安装升级工具(通常已预装)
sudo apt install update-manager-core

# 3. 确认升级源指向 LTS(检查 /etc/update-manager/release-upgrades 中 `Prompt=lts`)

# 4. 执行升级(交互式,推荐)
sudo do-release-upgrade -d  # -d 强制检测(22.04 发布后无需 -d)
# 或非交互式(仅限可信环境)
sudo do-release-upgrade -f DistUpgradeViewNonInteractive

# 5. 升级完成后重启
sudo reboot

🔁 升级 22.04 → 24.04:在 22.04 系统上重复上述流程(确保 Prompt=lts)。


🚫 四、升级后必做事项(验证与清理)

  • ✅ 验证基础功能:网络、GUI(如适用)、SSH、关键服务(systemctl list-units --state=failed)
  • ✅ 更新固件:sudo fwupdmgr refresh && sudo fwupdmgr update
  • ✅ 清理旧内核(释放 /boot 空间):
    sudo apt autoremove --purge $(dpkg -l | awk '/^ii linux-image-[^ ]+/ {print $2}' | grep -v $(uname -r) | head -n -1)
  • ✅ 恢复 PPA(如有必要):逐个启用并 apt update 测试兼容性
  • ✅ 检查日志:/var/log/dist-upgrade/main.log(关键错误在此)

⚖️ 五、升级 vs. 清洁重装?如何选择?

场景 推荐方案 理由
个人桌面 / 开发机 ✅ 升级(20.04→22.04→24.04) 保留配置/数据,时间成本低
生产服务器 / 关键业务 ⚠️ 优先清洁重装 避免遗留配置冲突、安全漏洞、不可预测行为;配合自动化部署(Ansible/Puppet)快速重建
老旧硬件(<8GB RAM, HDD) ⚠️ 谨慎升级至 24.04 GNOME 46+ 对资源要求更高,可考虑 Xubuntu/Lubuntu 24.04(轻量桌面)

💡 补充建议

  • 时间窗口:LTS 版本支持周期为 5 年(20.04 到 2025年4月),20.04 将于 2025年4月结束标准支持,务必在此之前完成升级或迁移。
  • 长期策略:建议建立「LTS 跨版本升级计划」,每 2 年升级一次(20.04→22.04→24.04),避免跳版本。
  • 替代方案:若需最新软件(如 Python 3.12、GCC 14),可考虑 deadsnakes PPA 或 pyenv/asdf 等版本管理工具,无需升级整个系统。

如需进一步帮助(例如:特定软件兼容性分析、升级日志诊断、自动化脚本模板),欢迎提供您的使用场景(桌面/服务器?关键应用?硬件型号?),我可为您定制方案。

未经允许不得转载:CLOUD技术博 » 从Ubuntu 20.04升级到22.04或24.04有哪些注意事项?