---
title: "ubuntu20.04 update to 22.04"
source: https://www.iowill.com/blog/2024/07/ubuntu-20-04-to-22-04-upgrade/
date: 2024-07-31
updated: 2026-10-14
tags: [Linux, Ubuntu, 系统升级]
categories: [系统与运维]
---

# ubuntu20.04 update to 22.04

本文说明 **Ubuntu 20.04 LTS（Focal Fossa）到 Ubuntu 22.04 LTS（Jammy Jellyfish）**的相邻 LTS 升级路径，适用于需要完成这一阶段迁移的现有系统。20.04.6 是 20.04 系列的维护版本，不能称为“最新 LTS”；22.04 也不是本文更新时的最新 LTS。版本支持周期应查看 [Ubuntu 发布周期](https://ubuntu.com/about/release-cycle)。

下面按命令行流程组织，重点面向 Ubuntu Server 和云主机。LTS 原地升级应逐级进行；需要继续迁往后续 LTS 时，先验证本次升级完成，再评估下一阶段。路径规则见 [Ubuntu 官方发行版升级说明](https://ubuntu.com/server/docs/how-to/software/upgrade-your-release/)。

## 1\. 确认系统和恢复条件

先读取当前版本与磁盘空间，确认确实从 20.04 开始：

```sh
cat /etc/os-release
df -h / /boot
```

-   把业务数据、配置和必要的数据库备份保存到另一位置，确认可以恢复；云主机可另备快照。
-   阅读 [Ubuntu 22.04 发行说明](https://documentation.ubuntu.com/release-notes/22.04/)，检查应用、驱动与第三方软件的兼容性。
-   预留维护时间、下载空间与重启窗口；远程操作前确认云控制台或其他恢复入口可用。
-   记录第三方 PPA 和软件源。升级器会禁用第三方源，升级后应确认其支持 Jammy 再恢复，不能直接把旧源全部启用。

## 2\. 完整更新当前发行版

先保持软件源对应 Focal，刷新包索引并完成当前发行版的软件包升级；查看将安装、移除的包清单后再确认。

```sh
sudo apt update
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true
sudo apt install update-manager-core
```

这里的 `dist-upgrade` 仍在更新 20.04 的包，不会自行把系统变为 22.04。如果命令失败、存在未配置的软件包或依赖冲突，先处理具体错误，再继续发行版升级。官方文档要求先完整更新当前系统，并注意分阶段推送的软件包可能阻止升级。

检查是否需要重启：

```sh
test -f /run/reboot-required && cat /run/reboot-required
```

若该文件存在，安排重启并重新登录。文件不存在时，这条检查通常不输出内容；它本身不会执行重启。

## 3\. 检查 LTS 升级设置

编辑配置文件，确认只有目标设置生效：

```sh
sudo nano /etc/update-manager/release-upgrades
```

```plaintext
Prompt=lts
```

`Prompt=lts` 表示检查 LTS 到 LTS 的升级，`Prompt=never` 会关闭升级提示。相关选项见 [Ubuntu 升级帮助](https://help.ubuntu.com/community/Upgrades)。不要通过把所有源中的 `focal` 替换成 `jammy` 来代替发行版升级器。

## 4\. 运行发行版升级器

```sh
sudo do-release-upgrade
```

确认升级器提出的目标为 Ubuntu 22.04，再阅读下载量、包变更和移除清单。升级过程中留意配置文件差异提示，按实际业务需要决定保留或替换配置；完成后按提示重启。不要因等待下载或配置而中断进程。

**`-d` 不是修复升级失败的通用“强制”开关。**它用于请求开发版本，官方不建议在生产环境中使用；LTS 刚发布、常规升级尚未开放时也有特殊测试用途。本文的稳定版本迁移流程使用不带 `-d` 的命令。

## 5\. 没有发现新版本时如何排查

-   确认当前版本、`Prompt=lts` 和系统时钟，检查网络、代理及 Ubuntu 软件源访问是否正常。
-   确认当前发行版的软件包更新已成功完成，按提示重启；用 `apt-mark showhold` 检查被保留的包，不要在不了解原因时全部解除保留。
-   如果升级已启动又失败，查看 `/var/log/dist-upgrade/` 中的日志，保留具体错误信息后定位问题。
-   按官方发行说明核对升级通道状态。不要把临时关闭的升级通道当作需要改源、移动整个软件源目录或追加 `-d` 的理由。

## 6\. 重启后的验证

```sh
cat /etc/os-release
uname -r
systemctl --failed
sudo apt update
```

`/etc/os-release` 中应显示 `VERSION_ID="22.04"` 和 Jammy 代号。随后检查网络、SSH、磁盘挂载、业务服务与应用日志，再逐项处理受影响的第三方软件。版本号变更不代表所有业务都已验证通过。

以上为依据官方文档整理的操作与检查方法；命令输出应以目标机器实际执行结果为准。
