运行 Boot-Repair 后是否需要所有三个 grub 条目?

运行 Boot-Repair 后是否需要所有三个 grub 条目?

在双启动 Windows 8 和 Ubuntu 12.04.3 时运行Boot-Repair修复程序后,grub 菜单中留下了多个条目。其中三个来自

menuentry "Windows UEFI bkpbootmgfw.efi" {
search --fs-uuid --no-floppy --set=root 4659-4959
chainloader (${root})/EFI/Microsoft/Boot/bkpbootmgfw.efi
}

menuentry "Windows Boot UEFI loader" --users "" {
search --fs-uuid --no-floppy --set=root 4659-4959
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/Lenovo/Boot/bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root 4659-4959
chainloader (${root})/EFI/Lenovo/Boot/bootmgfw.efi
}

Boot-Repair 文档建议使用第二个选项来启动 Windows 8,但同样,第一个选项似乎也能很好地完成工作,最后一个选项可以访问设置。我真的需要所有这些吗,还是我可以简单地将它们注释掉25_custom

同样,鉴于 Windows 的原始启动项30_os-prober已失效,我可以将其注释掉吗?

这些 efi 引导加载程序之间到底有什么区别?

答案1

前两个可能是重复文件。我不知道第三个文件是什么;它可能是另一个重复文件,也可能是联想特有的文件。

背景:EFI 规范规定,每个操作系统都应将其引导加载程序安装在EFIESP 目录的子目录中,例如EFI/MicrosoftWindows 或EFI/ubuntuUbuntu。该EFI/BOOT目录是一种特殊情况:它包含一个引导加载程序 ( bootmgfw.efi),当所有其他引导加载程序都失败时,该加载程序可作为后备。这也是用于可移动介质(如 USB 闪存驱动器)上的引导加载程序的名称。因此,许多操作系统(包括 Windows)都会安装两个引导加载程序副本——一个在官方目录中,另一个在 中EFI/BOOT/bootx64.efi。GRUB 倾向于选择这两个副本并将它们作为选项显示,因为它们可能是不同的引导加载程序,尽管它们通常不是不同的。

引导修复使这一过程变得复杂。此程序的旧版本(以及新版本,如果您在高级菜单中选择某个选项)会备份EFI/Microsoft/Boot/bootmgfw.efiEFI/BOOT/bootx64.efi引导加载程序(通过将它们重命名为bkp放置在文件名开头),并将 GRUB 的副本放置在它们的位置。这样做是为了解决某些 EFI 中的错误。问题是这会创建额外的引导加载程序文件,这会使菜单变得混乱,并在进行手动维护时增加混乱。除非您因为 EFI 损坏而需要使用此备份和替换技巧,否则我建议您不是让 Boot Repair 进行此更改。但请注意,这不会导致您注意到的重复,尽管它影响了 GRUB 在其chainloader行中输入的文件名。

就我个人而言,我会删除EFI/BOOT/bkpbootx64.efi(或EFI/BOOT/bootx64.efi) 条目,因为如果其他工具决定接管该位置,它可能会更改为其他内容。劫持 Windows 引导加载程序的可能性较小——尽管由于我注意到的 EFI 错误,至少有两个工具(Boot Repair 和 rEFInd 的mvrefind.sh脚本)可以做到这一点,其他工具将来可能会这样做。

提示:该diff命令是您的朋友。向其传递两个文件名,它会告诉您它们是否相同。没有输出表示文件相同。您可以使用它来发现.efi系统上的哪些文件与哪些其他文件相同。

相关内容