I don’t think a MBR booting of openSUSE can select an EFI install of Windows from a Grub 2 menu. The EFI boot must be selected from your PC UEFI setup and not from Grub 2. I have decided myself to stick with all MBR boot disks which allows you to select Windows and does not keep you from using a UEFI disk for the purpose of exceeding the 2.2 TB disk size MBR limit. For more info on disks, have a look here:
If you are using opensuse 12.3, then there should already be a grub menu entry unless you disabled os-prober when setting up grub2-efi.
On a freshly installed 12.3, that menu won’t actually work unless you have disabled secure-boot. However, once you have completed online updates, include the updates to grub2-efi, it should start working.
If you have an older version of opensuse, then I’m not sure whether those updates to grub have been made available. In that case, your best bet might be to use the firmware boot selector (usually, hit F12 during boot). Or, from a root command line in linux, you can use:
# efibootmgr -n NNNN
##### in my case
##### efibootmgr -n 0
where the “NNNN” is the number of your boot entry for Windows. You can find the number with “efibootmgr -v”.
The idea is to tell you firmware which system to boot next, assuming that the firmware fully implements the efi specifications.
I’m using openSUSE 12.3 and it won’t detect my Windows. I need just a line in grub.cfg. I’ll try updating 12.3 first but I don’t think that’ll work unless you know specifically of a bug fix for this.
I’m not sure that this will do you any good. But here are the Windows lines from my “grub.cfg”
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-960A-3282' {
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 960A-3282
else
search --no-floppy --fs-uuid --set=root 960A-3282
fi
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
This is with a gpt partitioned disk. The EFI partition used by Windows is “/dev/sda1”. The string “960A-3282” is the UUID of that partition (as checked with the “blkid” command). The Windows version is Windows 8, and it boots using the file “bootmgfw.efi” in the directory “/EFI/Microsoft/Boot” within the partition “/dev/sda1”.
You have not said what Windows version you are using, or whether Windows is installed to boot with UEFI or with MBR. I suspect you cannot boot a MBR installed version of windows using grub2-efi. And if your “/dev/sda” is MBR partitioned (instead of “gpt” partitioned), then you probably can’t boot Windows from grub2-efi due to Windows limitations with EFI.