我最近将 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/nvme0n1p1
)gparted
并重新安装了 efi 启动文件夹这个帖子使用实时 USB 驱动器(Xubuntu 22.04)。
安装所有驱动器和后chroot
,我运行了grub-install
上面相同的命令,然后显示更新的内核列表。
我仍然不完全理解为什么旧版本/boot/efi/EFI/ubuntu/grub.cfg
无法更新。机架服务器上的 Ubuntu 是工厂安装的。我也不知道为什么即使删除了 efi 分区,系统仍然会使用旧的 EFI grub 菜单启动。