Ubuntu 20.04 升级到 24.04 实战记录:20.04 → 22.04 → 24.04
一、前言
最近我把一台 Ubuntu 20.04.6 LTS 虚拟机成功升级到了 Ubuntu 24.04.4 LTS 。
整个过程里踩了几个典型坑,比如:
- VMware 虚拟机网络不通
- 软件源异常
- 升级过程中出现配置文件冲突
- 删除旧软件包时不知道该不该继续
- 看到 24.04 弹窗时误以为要立刻点升级
这篇文章把整个过程整理成一份可直接照做的实操记录,尽量让 普通用户也能跟着升级成功。
适合人群:
- 当前系统是 Ubuntu 20.04
- 想升级到 Ubuntu 24.04
- 不想重装系统
- 虚拟机 / 实体机都可参考
先说结论:20.04 不能直接升级到 24.04
正确路径是:
bash
Ubuntu 20.04 LTS -> Ubuntu 22.04 LTS -> Ubuntu 24.04 LTS
升级前的条件和准备
1)先备份,虚拟机建议做快照
如果你用的是 VMware / VirtualBox,强烈建议先做快照。升级中途如果出问题,可以直接回滚。
2)确认当前系统版本和网络正常
执行:
bash
lsb_release -a
cat /etc/os-release
ping -c 3 8.8.8.8
确认两件事:
- 当前确实是 Ubuntu 20.04 、外网能通
3)检查软件源
升级前第三方源最容易引发问题,先检查:
bash
cat /etc/apt/sources.list
ls -l /etc/apt/sources.list.d
grep -R "^[^#].*deb " /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
如果你有第三方源,比如 Docker、Node、MongoDB、PPA 等,建议先禁用。
二、升级前先处理软件源
1)备份原有软件源
bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%F)
2)禁用第三方源
以 Docker 源为例:
bash
sudo mkdir -p /root/disabled-apt-sources
sudo mv /etc/apt/sources.list.d/docker.list /root/disabled-apt-sources/ 2>/dev/null || true
3)把 Ubuntu 20.04 主源改成官方源
bash
sudo tee /etc/apt/sources.list >/dev/null <<'EOF'
deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
EOF
4)刷新索引
bash
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
只要 apt update 正常,就可以继续。
三、先把 20.04 更新到最新状态
正式升级前,先把当前系统更新干净:
bash
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt install -y update-manager-core ubuntu-release-upgrader-core
检查升级策略:
bash
grep '^Prompt=' /etc/update-manager/release-upgrades
如果不是 Prompt=lts,改成:
bash
sudo sed -i 's/^Prompt=.*/Prompt=lts/' /etc/update-manager/release-upgrades
grep '^Prompt=' /etc/update-manager/release-upgrades
重启一次:
bash
sudo reboot
重启后再确认:
bash
lsb_release -a
uname -r
第一步:Ubuntu 20.04 升级到 22.04
1)开始升级
执行:
bash
sudo do-release-upgrade
2)升级过程中常见提示怎么选
提示 1:glibc 升级时 mysql 没有自动重启
这类提示直接选:
<Ok>按回车继续即可。

提示 2:正在安装 Firefox Snap
这是正常现象,不要中断。处理方式:
- 等待下载完成
- 不要
Ctrl + C - 不要强制关闭终端

提示 3:配置文件冲突,例如 /etc/sysctl.conf
如果出现类似:
/etc/sysctl.conf
通常会问你是否用维护者的新版本覆盖当前文件。这里建议:输入 N 回车,也就是:保留当前版本

提示 4:软件包设置:正在设定 unattended-upgrades
选第二项 keep the local version currently installed 回车

原因和刚才一样:这是升级时遇到你本机已修改过的配置文件,先保留当前版本更稳,升级后再按需要比对调整。
提示 5:桌面弹出"Ubuntu 24.04 LTS 升级可用"
这时不要跳到 24.04。
应该点击: 稍后询问 先把 20.04 → 22.04 这一步跑完。

提示 6:出现 继续 [yN]
这里输入:y 然后回车。

提示 7:提示升级完成并将重启
继续输入:y 然后回车。系统会自动重启。

3)重启后确认 22.04 是否成功
登录系统后执行:
bash
lsb_release -a
如果看到类似下面内容,说明第一段升级成功:
bash
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
第二步:Ubuntu 22.04 升级到 24.04
1)先把 22.04 更新干净
先执行:
bash
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo apt autoremove -y
然后确认当前版本:
bash
lsb_release -a
uname -r
2)开始升级到 24.04
执行:
bash
sudo do-release-upgrade
3)升级过程中常见提示怎么选
提示 1:/etc/vim/vimrc 配置文件冲突
输入:N 回车。

提示 2:/etc/sysctl.conf 冲突
还是输入:N 回车。

提示 3:/etc/fwupd/fwupd.conf 配置文件冲突
继续输入: N 回车。

提示 4:删除陈旧软件包
如果提示删除旧软件包并询问是否继续:
bash
继续 [yN]
这里输入: y 然后回车。

4)系统重启后,桌面会变成新版本样式
升级完成后系统会自动重启。
重启后桌面样式通常会发生明显变化,这是正常的。

5)确认 24.04 是否升级成功
打开终端执行:
bash
lsb_release -a
cat /etc/os-release
uname -r
sudo apt update
如果看到类似下面内容,就说明升级已经完成:
bash
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble
并且 sudo apt update 正常,没有报错。
四、完整命令汇总
1)升级前准备
bash
lsb_release -a
cat /etc/os-release
ping -c 3 8.8.8.8
cat /etc/apt/sources.list
ls -l /etc/apt/sources.list.d
grep -R "^[^#].*deb " /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%F)
sudo mkdir -p /root/disabled-apt-sources
sudo mv /etc/apt/sources.list.d/docker.list /root/disabled-apt-sources/ 2>/dev/null || true
sudo tee /etc/apt/sources.list >/dev/null <<'EOF'
deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
EOF
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt install -y update-manager-core ubuntu-release-upgrader-core
sudo sed -i 's/^Prompt=.*/Prompt=lts/' /etc/update-manager/release-upgrades
grep '^Prompt=' /etc/update-manager/release-upgrades
sudo reboot
2)20.04 → 22.04
bash
sudo do-release-upgrade
关键选择:
- mysql / glibc 弹窗:
<Ok> - 配置文件冲突:
N - 桌面弹出 24.04 提示:
稍后询问 继续 [yN]:y- 重启确认:
y
3)22.04 → 24.04 前更新
bash
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo apt autoremove -y
lsb_release -a
uname -r
4)22.04 → 24.04
bash
sudo do-release-upgrade
关键选择:
/etc/vim/vimrc:N/etc/sysctl.conf:N/etc/fwupd/fwupd.conf:N- 删除陈旧软件包:
y
5)升级完成后检查
bash
lsb_release -a
cat /etc/os-release
uname -r
sudo apt update
sudo apt autoremove -y
sudo apt clean
五、几个关键经验
1)什么时候选 N
遇到"配置文件已修改,是否覆盖"的提示时,优先选:
bash
N
适用于:
/etc/sysctl.conf/etc/vim/vimrc/etc/fwupd/fwupd.conf
也就是:保留当前版本
2)什么时候选 y
遇到这些情况时通常选:
bash
y
继续 [yN]- 确认继续升级
- 确认删除旧软件包
- 确认升级完成后重启
3)什么时候点"稍后询问"
当你还在做 20.04 → 22.04 时,如果桌面弹出:
Ubuntu 24.04 LTS 升级可用
这时不要立刻点升级,应该点:
- 稍后询问
先完成当前这一段升级。
结语
这次升级的最终结果是:
- Ubuntu 20.04.6 LTS
- 成功升级到
- Ubuntu 24.04.4 LTS
整个过程虽然步骤不少,但只要记住下面 5 点,成功率会高很多:
- 必须分两段升级:20.04 → 22.04 → 24.04
- 升级前先清理软件源
- 配置文件冲突优先选
N - 继续升级 / 删除旧包时选
y - 先让当前阶段跑完,不要中途跳版本
如果你也准备从 Ubuntu 20.04 升级到 24.04,希望这篇文章能帮你少踩坑。