麒麟V10跨大版本升级卡死在95%时,需立即排查:查日志确认僵死、勿强制关机、检查进程与锁文件、执行dpkg --configure -a修复,重装kylin-updater-core等核心包,并用apt --fix-broken install修复依赖。

麒麟V10系统在执行跨大版本升级(例如从V10 SP1升级至SP3)时,若卡死在进度条95%、黑屏无响应、光标静止或反复重启,说明升级流程已中断于系统重构关键阶段,需立即介入排查而非等待超时。
确认是否真为跨版本升级卡死
打开终端,执行 cat /var/log/dist-upgrade/main.log | tail -n 50,重点查找含“ERROR”“Failed”“dpkg: error”“E: Sub-process”或“Interrupted”字样的行;若日志最后停留在“Processing triggers for …”且超过15分钟无新输出,基本可判定升级进程已僵死。
不要直接强制关机——这会导致/var/lib/dpkg/status损坏,后续修复难度陡增。
检查升级进程与锁文件状态
运行 ps aux | grep -E "(apt|dpkg|dist-upgrade)",观察是否存在残留的apt-get或dpkg进程;若存在,记下其PID。
执行 ls -l /var/lib/dpkg/lock* /var/cache/apt/archives/lock,若发现 【/var/lib/dpkg/lock-frontend 或 /var/lib/dpkg/lock 存在且被占用】,说明底层包管理器仍处于锁定状态,此时强行 apt update 会报错“Could not get lock”,必须先释放。
若确认无活跃升级进程但锁文件残留,用 sudo rm -f /var/lib/dpkg/lock* /var/cache/apt/archives/lock 清除(仅限无任何apt操作进行中时)。
恢复dpkg数据库一致性
第一步:重建dpkg状态文件索引
执行 sudo dpkg --configure -a,该命令会尝试完成所有未配置完成的软件包。若出现“package is in a very bad inconsistent state”错误,说明部分包安装中断,需进入下一步。
第二步:强制重装关键升级组件
运行 sudo apt install --reinstall kylin-updater-core kylin-dist-upgrade,这两个包是麒麟官方升级工具链的核心,SP1→SP3升级失败80%以上源于其元数据损坏或版本错配。
第三步:校验并修复依赖树
执行 sudo apt --fix-broken install,注意观察终端是否提示“Unmet dependencies”及具体包名;若提示涉及 linux-image-* 或 initramfs-tools,必须优先处理,否则重启后可能无法进系统。
回退到可用快照或手动终止升级
方法一:使用LVM快照回滚(仅限启用LVM且创建过快照的环境)
执行 sudo lvconvert --merge /dev/vg0/lv_root@pre-sp3-upgrade,然后重启;合并完成后原升级状态自动清除。
方法二:手动清理未完成升级痕迹
先备份当前状态:sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.bak-$(date +%s);再运行 sudo apt clean && sudo rm -rf /var/lib/apt/lists/*;最后执行 sudo apt update && sudo apt install --reinstall $(dpkg -l | awk '/^rc/ {print $2}') 2>/dev/null || true,清除所有已卸载残留配置。
【切勿在未备份status文件前执行dpkg --clear-avail或--forget-old-unavailable】,该操作不可逆,将导致系统无法识别已安装包。

















