You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在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
    
  • 生成编译配置文件:
    ./autogen.sh
    ./configure --prefix=/usr --sbindir=/sbin --sysconfdir=/etc --disable-werror
    
    这里的参数是让编译后的Grub适配Ubuntu的系统路径,--disable-werror是为了避免编译时遇到小警告就终止进程。
  • 编译并安装:
    make
    sudo make install
    
    make过程可能需要几分钟,耐心等它完成就行。
  • 最后更新Grub配置,确保新版本生效:
    sudo update-grub
    

方案二:临时绕过升级检查(谨慎使用)

如果你不想折腾源码编译,有个临时的变通办法,但一定要谨慎——它只是绕过检查,并没有修复Grub的bug:

  • 打开升级工具的Grub检查脚本,终端运行:
    sudo nano /usr/lib/ubuntu-release-upgrader/check-grub
    
  • 在脚本里找到判断Grub版本的部分,把版本校验的条件修改成符合要求的(比如把版本阈值改成你当前的版本号),保存退出。
  • 完成系统升级后,一定要尽快升级Grub到最新版本,避免潜在的启动风险。

重要提醒

手动替换系统核心组件(比如Grub)有一定风险,操作不当可能导致系统无法启动。建议你先备份好重要数据,或者先在虚拟机里测试一遍整个流程,再在真实机器上操作。

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

火山引擎 最新活动