如何从 BIOS GRUB 启动 UEFI Windows?

如何从 BIOS GRUB 启动 UEFI Windows?

我有一张由 Windows 10 以 GPT 模式分区的磁盘,遗憾的是在那里创建了 Windows 10 安装。

/dev/sda1        2048     206847     204800   100M EFI System
/dev/sda2      206848     239615      32768    16M Microsoft reserved
/dev/sda3      239616 1240977398 1240737783 591.6G Microsoft basic data
/dev/sda4  1240977408 1242068991    1091584   533M Windows recovery environment

sda                                                                                    
├─sda1      vfat   FAT32           AC47-5B68                                           
├─sda2                                                                                 
├─sda3      ntfs                   343642ED3642AFA2                                    
└─sda4      ntfs                   E2C4D5BFC4D5965F   

然后我有一张单独的光盘,Linux 安装在 MBR 中,并带有普通的 grub。

如果 Windows 是 BIOS 中的第一启动设备,则 Windows 启动正常。如果 linux 光盘是 BIOS 中的引导设备,则 Grub 可以正常引导。如何从 grub 启动 Windows?

os-prober生成以下grub.cfg内容grub-mkconfig

menuentry 'Windows 10 (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-AC47-5B68' {
        insmod part_gpt
        insmod fat
        set root='hd0,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  AC47-5B68
        else
          search --no-floppy --fs-uuid --set=root AC47-5B68
        fi
        drivemap -s (hd0) ${root}
        chainloader +1
}

然而这不起作用。机器没有启动 Windows,而是重新启动,在 BIOS POST 屏幕之后,我再次进入 grub。注意:在 grub 中,/dev/sda1 可见为 (hd1,gpt1),但它不应该影响任何内容,因为搜索应该找到它。


对于 MBR,对于 EFI/GPT 必须是: menuentry 'Windows Boot Manager' --class windows --class os $menuentry_id_option 'osprober-efi-ABCD-EFGH' { insmod part_gpt insmod fat search --no-floppy -- fs-uuid --set=root ABCD-EFGH chainloader /EFI/Microsoft/Boot/bootmgfw.efi } – Artem S. Tashkinov

尝试以下操作:

menuentry 'Windows Boot Manager' --class windows --class os $menuentry_id_option 'osprober-efi-ABCD-EFGH' {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root AC47-5B68
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

结果屏幕显示:

Booting a command list

Invalid signature

Press any key to continue

相关内容