首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何在不丢失数据的情况下将 Ubuntu 24.04 升级到 Ubuntu 26.04 LTS

如何在不丢失数据的情况下将 Ubuntu 24.04 升级到 Ubuntu 26.04 LTS

原创
作者头像
jtti
发布于 2026-10-29 16:49:10
发布于 2026-10-29 16:49:10
5050
举报
文章被收录于专栏:jttijtti

Ubuntu 26.04 LTS “ Resolute Raccoon ” 于 2026 年 4 月 23 日发布,是近年来最重要的 Ubuntu 版本之一。它搭载了 Linux 内核 7.0,用 Rust 实现的 `sudo-rs` 取代了传统的基于 C 的 `sudo` 命令,放弃了 X11 GNOME 会话,转而采用仅基于 Wayland 的桌面环境,引入了 TPM 支持的全盘加密,并首次直接从 Ubuntu 官方软件仓库提供 NVIDIA CUDA 和 AMD ROCm 软件包。对于 Ubuntu 24.04 Noble Numbat 的 LTS 用户,官方支持并推荐使用 ` do-release-upgrade`命令进行原地升级。

本指南将带您了解从飞行前准备到升级后验证的整个过程,重点关注在本次 LTS 版本升级过程中,系统管理员和 DevOps 团队可能会措手不及的重大变更。

何时升级:重要的时机提示

Ubuntu 26.04于 2026 年 4 月 23 日发布。然而,在 LTS 到 LTS 模式下,`do-release-upgrade` 命令会读取一个 Canonical 元数据文件(`changelogs.ubuntu.com/meta-release-lts`),该文件仅在第一个小版本发布后才会更新。第一个小版本 Ubuntu 26.04.1 计划于 2026 年 8 月 6 日发布。在此日期之前运行不带任何参数的 `sudo do-release-upgrade` 命令将返回:

目前没有可用的LTS开发版本。

要升级到 26.04.1 版本之前的版本,请使用 `-d`(开发)标志:

代码语言:javascript
复制
sudo do-release-upgrade -d

2026 年 8 月 6 日之后,不再需要 `-d` 标志,升级提示将不再显示。如果您使用的是生产系统且稳定性是首要考虑因素,那么等待 26.04.1 版本是明智之举。该版本将包含数月的错误修复,并且升级路径将完全开放。

如果您使用的是 Ubuntu 22.04 LTS:**不支持从 22.04 直接升级到 26.04。您必须先升级到 Ubuntu 24.04 LTS,然后按照本指南操作。

步骤 0:检查您当前的 Ubuntu 版本

您可以使用以下命令查看您当前的 Ubuntu 版本:

代码语言:javascript
复制
lsb_release -a复制
使用 lsb_release 命令检查 Ubuntu 版本
使用 lsb_release 命令检查 Ubuntu 版本

它会显示当前的 Ubuntu 版本、其代号和描述。

步骤 1:备份您的系统

没有备份就没有安全保障。在进行任何其他操作之前,请先创建完整的系统备份或快照。

对于物理机,请使用 rsync 进行备份:

代码语言:javascript
复制
sudo rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","lost+found"} / /mnt/backup/
复制

替换/mnt/backup/为您的备份目标位置(外部驱动器、NAS 或通过 SSH 连接的远程主机)。

对于J t t i 云虚拟机和J t t i 虚拟机管理程序:

在运行任何命令之前,请先通过J t t i服务提供商的控制台创建快照。这是出现问题时最快的回滚途径。

导出已安装软件包列表:

代码语言:javascript
复制
dpkg --get-selections > ~/installed-packages-$(date +%F).txt
复制

备份您的 APT 源:

sudo cp -r /etc/apt/sources.list.d/ ~/sources-backup-$(date +%F)/ sudo cp /etc/apt/sources.list ~/sources.list.backup

替换/mnt/backup/为您的备份目标位置(外部驱动器、NAS 或通过 SSH 连接的远程主机)。

步骤二:全面更新当前系统

如果您的系统有待处理的更新,升级工具将拒绝继续。请先将所有系统更新到最新版本,运行以下apt命令。

代码语言:javascript
复制
sudo apt update && \
sudo apt upgrade -y && \
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true -y && \
sudo apt autoremove -y && \
sudo apt autoclean
复制
在升级 Ubuntu 发行版之前进行更新和升级
在升级 Ubuntu 发行版之前进行更新和升级

该Always-Include-Phased-Updates标志确保分阶段软件包发布不会在版本升级运行之前留下任何部分更新的软件包。

在此过程中,流程可能会中断并显示错误消息,内容如下:

代码语言:javascript
复制
dpkg 进程中断,您必须手动运行“sudo dpkg --configure -a”来解决此问题。复制
Ubuntu 升级过程中 dpkg 出错
Ubuntu 升级过程中 dpkg 出错

在这种情况下,您需要运行以下命令:

代码语言:javascript
复制
sudo dpkg --configure -a复制

它还会提示您做出选择,例如是否要保留关键软件包的先前版本,或者保留现有版本。您需要根据以下情况做出选择:是否有关键工作负载正在使用先前版本运行,或者升级到新版本是否会导致这些工作负载出现问题。

在 Ubuntu 更新和升级期间配置 grub
在 Ubuntu 更新和升级期间配置 grub

如果内核或初始化相关的软件包进行了更新,则需要重启do-release-upgrade。跳过此重启步骤是导致程序运行中途失败的最常见原因之一:

代码语言:javascript
复制
sudo reboot
复制

步骤 3:禁用或移除第三方 PPA(可选)

第三方 PPA 是导致升级失败的最常见原因。为 24.04 版本构建的软件包在依赖关系解析过程中会与 26.04 版本的软件仓库发生冲突。

列出所有活动的外部存储库:

代码语言:javascript
复制
grep -rhE '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/ | grep -v 'archive.ubuntu.com\|security.ubuntu.com'
复制

对于每个已识别的 PPA,使用以下命令将其完全还原ppa-purge:

代码语言:javascript
复制
sudo apt install ppa-purge
sudo ppa-purge ppa:someteam/someppa
复制

ppa-purge移除 PPA,将其提供的所有软件包恢复到 Ubuntu 软件仓库版本,并禁用源条目。这比简单地注释掉它更安全。

如果ppa-purge某个存储库不支持此功能,请手动禁用它:

代码语言:javascript
复制
sudo add-apt-repository --remove ppa:someteam/someppa
复制

升级完成后,您需要重新启用兼容的 PPA。

步骤 4:确保已安装 update-manager-core

该update-manager-core软件包包含以下内容do-release-upgrade。请确认软件包是否存在,如果不存在:

代码语言:javascript
复制
sudo apt install update-manager-core
复制

确认版本升级提示是否设置为 LTS:

代码语言:javascript
复制
cat /etc/update-manager/release-upgrades
复制

预期输出:

代码语言:javascript
复制
[DEFAULT]
Prompt=lts
复制
Ubuntu LTS 版本升级
Ubuntu LTS 版本升级

如果显示出来Prompt=never,请修复:

代码语言:javascript
复制
sudo sed -i 's/^Prompt=.*/Prompt=lts/' /etc/update-manager/release-upgrades
复制

步骤 5:在 UFW 中打开端口 1022(仅限 SSH 会话)

如果通过 SSH 进行升级,do-release-upgrade则会在端口 1022 上启动一个备用 SSH 守护进程。这样,如果主 SSH 会话在升级过程中断开,您可以重新连接。

代码语言:javascript
复制
sudo ufw allow 1022/tcp && \
sudo ufw reload && \
sudo ufw status
复制

请确认端口 1022 已列出  ALLOW后再继续。

检查 Ubuntu 上的 UFW 防火墙状态
检查 Ubuntu 上的 UFW 防火墙状态

使用screen或tmux进行 SSH 会话。如果连接断开且没有备份,升级会在后台继续进行,但您将无法响应配置提示,这可能会导致系统崩溃。 screen -S upgrade # or tmux new -s upgrade 复制

步骤 6:运行升级

系统完全更新、PPA 已移除、防火墙规则已设置完毕后,运行升级:

2026 年 8 月 6 日之前(26.04.1 版本之前使用-d标志):

sudo do-release-upgrade -d

将 Ubuntu 24.04 升级到 Ubuntu 26.04
将 Ubuntu 24.04 升级到 Ubuntu 26.04

更新后需要重启。

Ubuntu升级后重启
Ubuntu升级后重启

2026年8月6日之后(26.04.1版本发布后):

代码语言:javascript
复制
sudo do-release-upgrade
复制

该工具运行过程分为以下几个阶段:

  1. 下载并验证升级工具签名
  2. 检查依赖冲突并列出建议的更改
  3. 询问您是否要继续,请键入y
  4. 下载所有必需的软件包
  5. 安装和配置软件包
  6. 暂停以提示配置文件冲突(参见步骤 7)
  7. 移除过时的软件包
  8. 提示进行最终重启

软件包安装开始后,请勿中断安装过程。

步骤 7:处理配置文件提示

升级过程中,该工具会暂停,询问如何处理系统中已修改但 26.04 版本中已更新的配置文件:

代码语言:javascript
复制
Configuration file '/etc/ssh/sshd_config'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it? Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
复制

推荐方法:

首先按下按钮D,检查您的版本与新软件包版本之间的差异。对于诸如sshd_config`.bashrc` nginx.conf、`.cashrc` 或mysql.conf您已进行过自定义更改的文件,请按下按钮N保留您的版本,然后手动合并新的默认设置。对于您从未自定义过的文件,请按下按钮Y接受新版本。

如有疑问,请保留您的版本(N),升级完成后您可以随时更新配置文件。

此外,它还会提示将来自非官方存储库的应用程序替换为 Ubuntu 存储库中受支持的版本。

在 Ubuntu 26.04 升级过程中提示将应用程序从 PPA 替换为 Ubuntu 软件仓库。
在 Ubuntu 26.04 升级过程中提示将应用程序从 PPA 替换为 Ubuntu 软件仓库。

此外,它还会提示进行 libc6 配置。

在 Ubuntu 26.04 LTS 升级过程中提示配置 libc6
在 Ubuntu 26.04 LTS 升级过程中提示配置 libc6

步骤 8:重启进入 Ubuntu 26.04

升级完成后,该工具会提示:

代码语言:javascript
复制
System upgrade is complete.

Restart required

To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.

Continue [yN]
复制

输入y。系统将重启进入 Ubuntu 26.04 LTS。

已成功从 Ubuntu 24.04 LTS 升级到 Ubuntu 26.04
已成功从 Ubuntu 24.04 LTS 升级到 Ubuntu 26.04

步骤 9:验证升级

重启后,确认升级是否成功:

代码语言:javascript
复制
lsb_release -a
复制
使用 lsb_release 命令验证 Ubuntu 版本是否为 26.04。
使用 lsb_release 命令验证 Ubuntu 版本是否为 26.04。

步骤 10:升级后任务

关闭为升级而打开的UFW端口1022 :

代码语言:javascript
复制
sudo ufw delete allow 1022/tcp
sudo ufw reload
复制

重新启用已更新至 26.04 版本的软件包的 PPA:

代码语言:javascript
复制
sudo add-apt-repository ppa:someteam/someppa
sudo apt update && sudo apt upgrade -y
复制

确认关键服务正在运行:

代码语言:javascript
复制
sudo systemctl status sshd nginx docker mysql
复制

Docker 用户验证并根据需要修复 cgroup 驱动程序:

代码语言:javascript
复制
docker info | grep -i cgroup
复制

如果输出仍然显示cgroupfs,请更新/etc/docker/daemon.json:

代码语言:javascript
复制
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl restart docker
复制

Apache2 + PHP:修复存在的 JIT 错误:

代码语言:javascript
复制
sudo a2dismod php8.x
sudo apt install php8.x-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.x-fpm
sudo systemctl restart apache2
复制

重建在 Python 3.12 版本下创建的 Python 虚拟环境:

代码语言:javascript
复制
rm -rf myenv
python3 -m venv myenv
source myenv/bin/activate
pip install -r requirements.txt
复制

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 何时升级:重要的时机提示
  • 步骤 0:检查您当前的 Ubuntu 版本
  • 步骤 1:备份您的系统
  • 步骤二:全面更新当前系统
  • 步骤 3:禁用或移除第三方 PPA(可选)
  • 步骤 4:确保已安装 update-manager-core
  • 步骤 5:在 UFW 中打开端口 1022(仅限 SSH 会话)
  • 步骤 6:运行升级
  • 步骤 7:处理配置文件提示
  • 步骤 8:重启进入 Ubuntu 26.04
  • 步骤 9:验证升级
  • 步骤 10:升级后任务
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档