从 Ubuntu 20.04 升级到 22.04 时无法更新“grub”启动菜单

从 Ubuntu 20.04 升级到 22.04 时无法更新“grub”启动菜单

我最近将 Ubuntu 机箱(机架式服务器)从 20.04 升级到 22.04。但是,无论我做什么,“grub”启动菜单始终将内核 5.4.0-40 列为默认内核条目 - 我尝试了很多不同的方法

  • 跑步update-grub
  • 跑步grub-install --target=.. /boot/efi
  • 禁用 UEFI 启动并仅允许 BIOS 中的传统模式
  • 删除里面的 ubuntu 文件夹/boot/efi/
  • 卸载/boot/efi并禁用它/etc/fstab
  • 甚至完全删除映射到的 /dev/nvme0n1p1 分区/boot/efi

无论我做什么,启动菜单都没有改变!我不知道问题是什么。/boot/grub/grub.cfg 清楚地显示 5.15 和 5.17 内核是我在 22.04 升级过程中安装的前两个选项,但无法显示和使用它们。

我还安装了 efibootmgr 并运行efibootmgr -r,它抱怨“该系统不支持 EFI 变量”。

有人能告诉我哪里出了问题吗?我该如何更新启动菜单?

答案1

我要回答我自己的问题 - 由于某种原因,即使使用后也grub-install无法更新/boot/efi/EFI/ubuntu/grub.cfg

grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot

问题有点像这个帖子,但grub.cfg执行该命令后文件没有任何变化。

我认为一个简单的解决方案可能是复制/boot/grub/grub.cfg以覆盖/boot/efi/EFI/ubuntu/grub.cfg,但是,由于我ubuntu在测试期间删除了文件夹甚至分区,我最终重新创建了分区(/dev/nvme0n1p1gparted并重新安装了 efi 启动文件夹这个帖子使用实时 USB 驱动器(Xubuntu 22.04)。

安装所有驱动器和后chroot,我运行了grub-install上面相同的命令,然后显示更新的内核列表。

我仍然不完全理解为什么旧版本/boot/efi/EFI/ubuntu/grub.cfg无法更新。机架服务器上的 Ubuntu 是工厂安装的。我也不知道为什么即使删除了 efi 分区,系统仍然会使用旧的 EFI grub 菜单启动。

相关内容