如何在Ubuntu Lunar Lobster中手动升级Grub至2.12版本以解决系统升级受阻问题
如何在Ubuntu Lunar Lobster中手动升级Grub至2.12版本以解决系统升级受阻问题
Hey there, let's work through this Grub bug that's stopping your Ubuntu Lunar Lobster upgrade. I've helped folks with similar issues before, so here's a clear, actionable guide to get things back on track.
第一步:确认当前Grub版本
首先得确认你当前的Grub版本是不是真的低于2.12(也就是触发bug的版本)。打开终端,运行这条命令:
grub-install --version
如果输出的版本号低于2.12,那咱们就继续往下走。
方案一:手动编译安装Grub 2.12源码
因为你找不到适配Lunar的Grub PPA,编译源码是可行的路径,按下面的步骤来:
- 先安装编译需要的依赖工具和库,终端里运行:
sudo apt update && sudo apt install build-essential git autoconf automake libtool bison flex gettext libdevmapper-dev liblzma-dev libzstd-dev - 克隆Grub官方仓库的2.12版本源码:
git clone --branch 2.12 https://git.savannah.gnu.org/git/grub.git cd grub - 生成编译配置文件:
这里的参数是让编译后的Grub适配Ubuntu的系统路径,./autogen.sh ./configure --prefix=/usr --sbindir=/sbin --sysconfdir=/etc --disable-werror--disable-werror是为了避免编译时遇到小警告就终止进程。 - 编译并安装:
make sudo make installmake过程可能需要几分钟,耐心等它完成就行。 - 最后更新Grub配置,确保新版本生效:
sudo update-grub
方案二:临时绕过升级检查(谨慎使用)
如果你不想折腾源码编译,有个临时的变通办法,但一定要谨慎——它只是绕过检查,并没有修复Grub的bug:
- 打开升级工具的Grub检查脚本,终端运行:
sudo nano /usr/lib/ubuntu-release-upgrader/check-grub - 在脚本里找到判断Grub版本的部分,把版本校验的条件修改成符合要求的(比如把版本阈值改成你当前的版本号),保存退出。
- 完成系统升级后,一定要尽快升级Grub到最新版本,避免潜在的启动风险。
重要提醒
手动替换系统核心组件(比如Grub)有一定风险,操作不当可能导致系统无法启动。建议你先备份好重要数据,或者先在虚拟机里测试一遍整个流程,再在真实机器上操作。
备注:内容来源于stack exchange,提问作者Eloque




