如何解决 grub“错误:无签名”问题?

如何解决 grub“错误:无签名”问题?

我一直在玩 QEMU/KVM 上运行 Archlinux 的虚拟机

几天来一切都很好,然后我向虚拟机添加了一个新磁盘以增加其容量。

我不确定到底发生了什么,但现在当我尝试启动虚拟机时,grub 出现错误

error: no signature

我不知道从哪里开始。如果您能帮助我解决问题,我将不胜感激。


更新 这个问题可能是 QEMU/KVM 错误还是其他什么问题?因为,我可以导航到我的自己的 grub 菜单并正常启动如果我使用live-usb。

  • 使用安装USB
  • 当出现启动菜单时,我选择了UEFI Firmware Settings
  • 选择Boot Manager
  • 选择Grub
  • 这让我到了我的自己的 grub 菜单
  • 系统启动正常

答案1

搜索 GRUB 源代码后,错误文本“无签名”仅与错误一起出现GRUB_ERR_BAD_PART_TABLE,即 GRUB 在应该从中启动的磁盘上没有看到有效的分区表。这里不涉及安全启动。

我猜想,按照 VM 固件的检测顺序,您添加到 VM 的新磁盘最终位于您最初启动的磁盘之​​前,而现在 GRUB(或者可能是系统固件?)正在查找错误的磁盘。

由于您通过使用 UEFI 固件启动管理器菜单成功启动了 VM,因此故障排除的下一步可能应该是efibootmgr -v在 VM 中运行,查看该BootCurrent值是什么以及BootXXXX它引用的是哪个启动变量。

BootCurrent该值与变量中的第一个值相同吗BootOrder

  • 如果是,这可能是虚拟机固件错误或意外情况(自我修复系统???)

  • 如果不是,这两个启动选项有什么区别?换句话说,如果BootCurrent是XXXX,而BootOrder的第一个值是YYYY,那么BootXXXXBootYYYY引导变量有什么区别?

如果BootXXXX指示的变量似乎有效,您只需将其作为第一项BootCurrent即可解决问题:XXXXBootOrder

efibootmgr -o XXXX,<other BootOrder values, if any>

相关内容