Ubuntu 23.04因Grub问题无法通过do-release-upgrade升级至23.10的解决办法咨询
Ubuntu 23.04因Grub问题无法通过do-release-upgrade升级至23.10的解决办法咨询
我完全理解你现在的困扰——Ubuntu 23.04已经过了官方支持周期,想升级到23.10却被Grub的bug卡了壳,关键是这个bug虽然在新版本里修复了,但没回传到23.04,连能升级Grub的PPA都找不到,确实让人一筹莫展。下面给你几个可行的思路,你可以根据实际情况尝试:
思路一:手动从23.10源获取并安装修复后的Grub包
这个方法的核心是直接获取23.10里修复好的Grub相关包,先在23.04系统上安装,再执行升级。步骤如下:
- 先备份当前的Grub配置和相关文件,避免出问题:
sudo cp -r /etc/grub.d /etc/grub.d.bak sudo cp /etc/default/grub /etc/default/grub.bak - 临时添加23.10(Mantic Minotaur)的源到系统:
创建一个临时源文件:
写入以下内容:sudo nano /etc/apt/sources.list.d/mantic-temp.listdeb http://archive.ubuntu.com/ubuntu/ mantic main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ mantic-updates main restricted universe multiverse - 安装修复后的Grub包:
先更新源缓存(注意只更新临时源的,避免干扰其他包),然后安装Grub相关包:
(如果是BIOS启动的系统,把sudo apt update -o Dir::Etc::SourceList=/etc/apt/sources.list.d/mantic-temp.list sudo apt install grub-efi-amd64 grub-efi-amd64-bin grub-common grub2-commongrub-efi-amd64换成grub-pc) - 安装完成后,移除临时源并更新本地缓存:
sudo rm /etc/apt/sources.list.d/mantic-temp.list sudo apt update - 最后重新运行升级命令:
sudo do-release-upgrade
思路二:绕过Grub检查强制执行升级
这个方法有一定风险,一定要先备份好所有重要数据,可能会导致升级后启动问题。你可以尝试两种方式:
- 先尝试用非交互模式启动升级:
sudo do-release-upgrade -f DistUpgradeViewNonInteractive - 如果上面的命令还是触发检查,你可以手动编辑升级的检查脚本。找到
DistUpgradeGrubCheck.py文件(通常在/usr/lib/python3/dist-packages/DistUpgrade/目录下),打开后找到检测Grub版本的代码段,临时注释掉阻止升级的逻辑,保存后再运行升级命令。升级完成后记得恢复原文件。
思路三:使用23.10安装介质进行升级安装
如果上面的方法都不行,你可以制作一个Ubuntu 23.10的U盘安装介质,用它启动系统,选择“升级Ubuntu”选项(不要选全新安装)。这种方式会直接从安装介质读取最新的Grub包,可能绕过原系统的Grub版本限制,完成升级。操作前同样务必备份所有重要数据。
不管选择哪种方法,都要再三确认重要数据已经备份——毕竟过了支持期的系统升级本身就存在不确定性,加上Grub的问题,谨慎一点总没错。
备注:内容来源于stack exchange,提问作者Eloque
相关产品推荐
相关产品推荐

