我在 Arch 上更新了 GRUB。当我尝试启动时,GRUB 给出了标题中提到的错误。我知道 grub_real_boot_time 由 提供boottime.mod
,但使用 运行insmod boottime
失败error: symbol grub_boot_time_head not found
。我无法从外部媒体启动,因为这台机器只有 CD 驱动器,而我所有的 linux 光盘都是 DVD。哪个模块提供了符号grub_boot_time_head
?我无法尝试 上描述的内容https://bbs.archlinux.org/viewtopic.php?id=173939因为我无法从安装光盘(或任何外部媒体)启动。
编辑:通过查看 GRUB 源代码,我可以看到struct grub_boot_time *grub_boot_time_head
在 中定义misc.c
。但是,没有。此外,我可以通过运行找到中的misc.mod
字符串。我做错了什么?我的硬盘损坏了吗?grub_boot_time_head
boottime.mod
grep
答案1
我也遇到过这种情况,因为我不小心使用 gpt 分区表格式化了我的硬盘,在 msdos 中重新格式化解决了这个问题
答案2
/boot/grub2/i386-pc
发生这种情况的原因是 grub 的加载程序部分(实际上是写入可启动磁盘第一个扇区的编译程序)与其可加载模块(通常位于)目录不同步。
反过来,这种情况可能由于多种原因而发生,但最常见的原因是 - 您在分离的磁盘上安装了 grub(同时修复 Linux 安装),而使用的操作系统版本比该磁盘上安装的操作系统要旧得多或要新得多。如果发生这种情况,您可以使用以下方法同步模块--根目录=实用程序的开关grub2-install
并指定已不同步的磁盘的已安装 /boot。