Grub2:是否可以通过直接加载 bootmgr 来在 Windows 8 中启动,而无需链式加载“卷启动代码”

Grub2:是否可以通过直接加载 bootmgr 来在 Windows 8 中启动,而无需链式加载“卷启动代码”

我想在 Windows 分区上安装 grub。在 Windows 分区“C:”上安装 grub 将覆盖 Windows“卷启动代码”,因此 Windows-8 将无法启动。“chainloader +1”命令不起作用。

在这种情况下,有什么方法可以用来启动进入窗口吗?

从我在本主题中读到的内容来看,使用“ntldr /boomgr”命令可能是可行的。根据该答案,“ntldr /bootmgr”将绕过 PBR 并直接加载“bootmgr”。

set root=(hdX,Y)  #where bootmgr is located.
insmod ntfs # load ntfs module
ntldr /bootmgr
boot

你们当中有人尝试过这个吗?

答案1

对我来说,这是有效的。我做了类似的事情:

您可以添加一个合适的条目/etc/grub.d/40_custom,然后执行sudo update-grub。条目可能看起来像这些:

如果你找到 EFI 分区

menuentry "Win 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

尽管如果你找到 bootmgr 文件

menuentry "Win 8" {
    set root='(hd0,msdos1)'
    ntldr /bootmgr
    boot
}

(hd0,msdos1)是我的磁盘和安装 win 8 的分区。要找到正确的设置,set root='(hd0,gpt1)'您可以执行以下操作:

  • GRUB 启动时:按c进入命令行模式
  • 编写命令ls以获取所有(磁盘,分区)条目的列表,例如(hd0,gpt1)等等。
  • 键入ls (hd0,gpt1)并尝试其他方法以找到安装 win 8 的正确方法。
  • 找到正确的分区后,您可以键入ls (hd0,gpt1)/以列出分区的内容。然后查看是否有/EFI/文件夹或只有一个/bootmgr文件

现在您终于可以在文件中添加正确的条目了/etc/grub.d/40_custom

相关内容