abc22048 发表于 2020-2-5 21:45:02

GRUB2引导UEFI和MBR的Windows

GRUB2引导UEFI和MBR的Windows的grub.cfg菜单编辑是不是一样?

UEFI的Windows引导
menuentry "启动 Windows" {
    chainloader \EFI\Microsoft\Boot\bootmgfw.efi
    boot
}
MBR的Windows引导
menuentry '启动Windows ' {
      insmod part_msdos
        insmod ntfs
        set root='hd0,msdos1'
        chainloader +1
}

abc22048 发表于 2020-2-5 22:07:58

本帖最后由 abc22048 于 2020-2-5 22:15 编辑

这个是不是为三种启动项

menuentry '正常启动(Windows)' --unrestricted {
    if [ 'pc' == $grub_platform ] ; then
      if search --file --set /bootmgr ; then
            chainloader +1
      elif search --file --set /ntldr ; then
            chainloader +1
      fi
    elif [ 'efi' == $grub_platform ] ; then
      if search --file --set /EFI/Microsoft/Boot/bootmgfw.efi ; then
            chainloader /EFI/Microsoft/Boot/bootmgfw.efi
      fi
    fi
}


搜索bootmgr
搜索ntldr
在/EFI/Microsoft/Boot/搜索中bootmgfw.efi

hilsonma 发表于 2020-2-5 23:28:21

本帖最后由 hilsonma 于 2020-2-5 23:32 编辑

1楼2楼的都可以,1楼的如果分区不符会引导失败,2楼的加了查找分区操作,比1楼的好

Windows的UEFI引导文件是bootmgfw.efi,Windows的BIOS引导文件是bootmgr (vista之后的版本,之前是ntldr)。
Grub2引导Windows要做的就是找到这两个文件并引导。

chainloader +1 是引导当前分区(root分区)的第一扇区,在Windows下这个扇区就是引导bootmgr或ntldr.
页: [1]
查看完整版本: GRUB2引导UEFI和MBR的Windows