You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04升级至24.04.1时do-release-upgrade因usrmerge问题失败

Ubuntu 22.04升级至24.04.1时do-release-upgrade因usrmerge问题失败

我之前也碰到过这种明明usrmerge显示成功,但升级脚本就是不认的棘手情况,给你几个可行的排查和解决步骤,你可以一步步试:

第一步:确认系统是否真的完成了/usr合并

do-release-upgrade的检查逻辑大概率不是看usrmerge的退出码,而是实际验证系统的目录结构。你可以先检查核心目录是否已经变成指向/usr的符号链接:

ls -l / | grep -E "(bin|sbin|lib|lib64)"

如果输出里这些目录的类型是lrwxrwxrwx(开头是l),比如lrwxrwxrwx 1 root root 7 Jul 1 10:00 bin -> usr/bin,那说明合并确实完成了;如果还是drwxr-xr-x的普通目录,那大概率是usrmerge执行过程中没真正完成合并,哪怕返回码是0。

第二步:重新触发usrmerge的合并流程

有时候usrmerge虽然返回成功,但可能因为某些文件冲突没完成链接创建。你可以尝试重新安装usrmerge包,它会自动触发合并逻辑:

sudo apt install --reinstall usrmerge

安装完成后再用第一步的命令检查目录结构,确认是否变成符号链接。

第三步:手动创建缺失的符号链接(谨慎操作)

如果重新安装后还是不行,你可以手动处理(一定要确保这些目录里的文件已经被合并到/usr对应的目录里,否则会丢失文件!):
比如处理/bin目录:

# 先备份原目录(如果里面还有文件)
sudo mv /bin /bin.bak
# 创建指向usr/bin的符号链接
sudo ln -s usr/bin /bin

用同样的方法处理/sbin、/lib、/lib64(注意不同架构可能目录名不同,比如32位系统可能没有lib64)。

第四步:清理升级缓存后重试

有时候升级脚本会读取旧的缓存信息导致误判,清理缓存后再尝试升级:

sudo apt clean
sudo apt update
sudo LANG=C do-release-upgrade

第五步:检查usrmerge包的安装状态

确认usrmerge已经正确安装:

dpkg -l usrmerge

输出里的状态列应该是ii(表示已安装),如果不是,先执行sudo apt install usrmerge安装它。

备注:内容来源于stack exchange,提问作者floogy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:18:12