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
正确路径是:
Ubuntu20.04LTS ->Ubuntu22.04LTS ->Ubuntu24.04LTS升级前的条件和准备
1)先备份,虚拟机建议做快照
如果你用的是 VMware / VirtualBox,强烈建议先做快照。升级中途如果出问题,可以直接回滚。
2)确认当前系统版本和网络正常
执行:
lsb_release-acat/etc/os-releaseping-c38.8.8.8确认两件事:
- 当前确实是Ubuntu 20.04、外网能通
3)检查软件源
升级前第三方源最容易引发问题,先检查:
cat/etc/apt/sources.listls-l/etc/apt/sources.list.dgrep-R"^[^#].*deb "/etc/apt/sources.list /etc/apt/sources.list.d/2>/dev/null如果你有第三方源,比如 Docker、Node、MongoDB、PPA 等,建议先禁用。
二、升级前先处理软件源
1)备份原有软件源
sudocp/etc/apt/sources.list /etc/apt/sources.list.bak.$(date+%F)2)禁用第三方源
以 Docker 源为例:
sudomkdir-p/root/disabled-apt-sourcessudomv/etc/apt/sources.list.d/docker.list /root/disabled-apt-sources/2>/dev/null||true3)把 Ubuntu 20.04 主源改成官方源
sudotee/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 EOF4)刷新索引
sudoaptcleansudorm-rf/var/lib/apt/lists/*sudoaptupdate只要apt update正常,就可以继续。
三、先把 20.04 更新到最新状态
正式升级前,先把当前系统更新干净:
sudoaptupgrade-ysudoaptfull-upgrade-ysudoaptautoremove-ysudoaptinstall-yupdate-manager-core ubuntu-release-upgrader-core检查升级策略:
grep'^Prompt='/etc/update-manager/release-upgrades如果不是Prompt=lts,改成:
sudosed-i's/^Prompt=.*/Prompt=lts/'/etc/update-manager/release-upgradesgrep'^Prompt='/etc/update-manager/release-upgrades重启一次:
sudoreboot重启后再确认:
lsb_release-auname-r第一步:Ubuntu 20.04 升级到 22.04
1)开始升级
执行:
sudodo-release-upgrade2)升级过程中常见提示怎么选
提示 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 是否成功
登录系统后执行:
lsb_release-a如果看到类似下面内容,说明第一段升级成功:
Description: Ubuntu22.04.5 LTS Release:22.04Codename: jammy第二步:Ubuntu 22.04 升级到 24.04
1)先把 22.04 更新干净
先执行:
sudoaptupdatesudoaptupgrade-ysudoaptfull-upgrade-ysudoaptautoremove-y然后确认当前版本:
lsb_release-auname-r2)开始升级到 24.04
执行:
sudodo-release-upgrade3)升级过程中常见提示怎么选
提示 1:/etc/vim/vimrc配置文件冲突
输入:N回车。
提示 2:/etc/sysctl.conf冲突
还是输入:N回车。
提示 3:/etc/fwupd/fwupd.conf配置文件冲突
继续输入: N 回车。
提示 4:删除陈旧软件包
如果提示删除旧软件包并询问是否继续:
继续[yN]这里输入: y 然后回车。
4)系统重启后,桌面会变成新版本样式
升级完成后系统会自动重启。
重启后桌面样式通常会发生明显变化,这是正常的。
5)确认 24.04 是否升级成功
打开终端执行:
lsb_release-acat/etc/os-releaseuname-rsudoaptupdate如果看到类似下面内容,就说明升级已经完成:
Description: Ubuntu24.04.4 LTS Release:24.04Codename: noble并且sudo apt update正常,没有报错。
四、完整命令汇总
1)升级前准备
lsb_release-acat/etc/os-releaseping-c38.8.8.8cat/etc/apt/sources.listls-l/etc/apt/sources.list.dgrep-R"^[^#].*deb "/etc/apt/sources.list /etc/apt/sources.list.d/2>/dev/nullsudocp/etc/apt/sources.list /etc/apt/sources.list.bak.$(date+%F)sudomkdir-p/root/disabled-apt-sourcessudomv/etc/apt/sources.list.d/docker.list /root/disabled-apt-sources/2>/dev/null||truesudotee/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 EOFsudoaptcleansudorm-rf/var/lib/apt/lists/*sudoaptupdatesudoaptupgrade-ysudoaptfull-upgrade-ysudoaptautoremove-ysudoaptinstall-yupdate-manager-core ubuntu-release-upgrader-coresudosed-i's/^Prompt=.*/Prompt=lts/'/etc/update-manager/release-upgradesgrep'^Prompt='/etc/update-manager/release-upgradessudoreboot2)20.04 → 22.04
sudodo-release-upgrade关键选择:
- mysql / glibc 弹窗:
<Ok> - 配置文件冲突:
N - 桌面弹出 24.04 提示:
稍后询问 继续 [yN]:y- 重启确认:
y
3)22.04 → 24.04 前更新
sudoaptupdatesudoaptupgrade-ysudoaptfull-upgrade-ysudoaptautoremove-ylsb_release-auname-r4)22.04 → 24.04
sudodo-release-upgrade关键选择:
/etc/vim/vimrc:N/etc/sysctl.conf:N/etc/fwupd/fwupd.conf:N- 删除陈旧软件包:
y
5)升级完成后检查
lsb_release-acat/etc/os-releaseuname-rsudoaptupdatesudoaptautoremove-ysudoaptclean五、几个关键经验
1)什么时候选N
遇到“配置文件已修改,是否覆盖”的提示时,优先选:
N适用于:
/etc/sysctl.conf/etc/vim/vimrc/etc/fwupd/fwupd.conf
也就是:保留当前版本
2)什么时候选y
遇到这些情况时通常选:
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,希望这篇文章能帮你少踩坑。