Recovery of Windows 8 in Grub2-efi

Dear All,

After a long time of searching the forum and the net decided to share the problem: on my Asus N56V laptop I had a pre-installed win8 and then decided to install OpenSuse 12.2 using the net CD. The installation did not complete and then I used a full distro DVD to repeat the process. This time it went smooth but in the Grub2-efi menu the windows entry does not function giving a well known msg: "can’t find command ‘drivemap’.
I proceeded with the grub2-mkconfig -o /boot/grub2-efi/grub.cfg and still nothing.

My hd structure looks as such:
/dev/sda1: UUID=“f87650b8-ee4a-4f15-8f2f-f34208aafab7” TYPE=“swap”
/dev/sda2: LABEL=“Recovery” UUID=“1072DD5B72DD45DE” TYPE=“ntfs”
/dev/sda4: LABEL=“OS” UUID=“B6C4E84CC4E81103” TYPE=“ntfs”
/dev/sda5: LABEL=“Data” UUID=“3052F17652F14160” TYPE=“ntfs”
/dev/sda6: LABEL=“Restore” UUID=“AADCFB33DCFAF901” TYPE=“ntfs”
/dev/sda7: UUID=“78ff9f0c-8133-43b1-b8f6-13437604342f” TYPE=“ext4”
/dev/sda8: UUID=“69e0d53e-3124-4ce8-bef5-88a586cea3c1” TYPE=“ext4”
/dev/sda9: SEC_TYPE=“msdos” UUID=“0E29-3175” TYPE=“vfat”

In addition I can see all win disks in MyComputer but I can not mount them by simply clicking on them.
The win8 efi is present on the sda2 Restore disk.

So, my question is how to chainload windows into grub2-efi and make it work?

Below, I place my grub.cfg display. Sorry, if this problem has been solved, but I run out of ideas and appreciate any hints. Thank you.

DO NOT EDIT THIS FILE

It is automatically generated by grub2-mkconfig using templates

from /etc/grub.d and settings from /etc/default/grub

BEGIN /etc/grub.d/00_header

if -s $prefix/grubenv ]; then
load_env
fi
set default="${saved_entry}"

if x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="–id"
else
menuentry_id_option=""
fi

export menuentry_id_option

if “${prev_saved_entry}” ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if -z “${boot_once}” ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function load_video {
if x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}

terminal_input console
terminal_output console
if x${boot_once} = xtrue ]; then
set timeout=0
elif sleep --interruptible 0 ; then
set timeout=8
fi

END /etc/grub.d/00_header

BEGIN /etc/grub.d/10_linux

menuentry ‘openSUSE 12.2’ --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option ‘gnulinux-simple-78ff9f0c-8133-43b1-b8f6-13437604342f’ {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root=‘hd0,gpt7’
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 78ff9f0c-8133-43b1-b8f6-13437604342f
else
search --no-floppy --fs-uuid --set=root 78ff9f0c-8133-43b1-b8f6-13437604342f
fi
echo ‘Loading Linux 3.4.11-2.16-desktop …’
linux /boot/vmlinuz-3.4.11-2.16-desktop root=UUID=78ff9f0c-8133-43b1-b8f6-13437604342f resume=/dev/disk/by-id/ata-ST1000LM024_HN-M101MBB_S2TTJ9HC801625-part1 splash=silent quiet showopts
echo ‘Loading initial ramdisk …’
initrd /boot/initrd-3.4.11-2.16-desktop
}
submenu ‘Advanced options for openSUSE 12.2’ $menuentry_id_option ‘gnulinux-advanced-78ff9f0c-8133-43b1-b8f6-13437604342f’ {
menuentry ‘openSUSE 12.2, with Linux 3.4.11-2.16-desktop’ --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option ‘gnulinux-3.4.11-2.16-desktop-advanced-78ff9f0c-8133-43b1-b8f6-134
37604342f’ {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root=‘hd0,gpt7’
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 78ff9f0c-8133-43b1-b8f6-13437604342f
else
search --no-floppy --fs-uuid --set=root 78ff9f0c-8133-43b1-b8f6-13437604342f
fi
echo ‘Loading Linux 3.4.11-2.16-desktop …’
linux /boot/vmlinuz-3.4.11-2.16-desktop root=UUID=78ff9f0c-8133-43b1-b8f6-13437604342f resume=/dev/disk/by-id/ata-ST1000LM024_HN-M101MBB_S2TTJ9HC801625-part1 splash=silent quiet showopts
echo ‘Loading initial ramdisk …’
initrd /boot/initrd-3.4.11-2.16-desktop
}
menuentry ‘openSUSE 12.2, with Linux 3.4.11-2.16-desktop (recovery mode)’ --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option ‘gnulinux-3.4.11-2.16-desktop-recovery-78ff9f0c-81
33-43b1-b8f6-13437604342f’ {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root=‘hd0,gpt7’
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 78ff9f0c-8133-43b1-b8f6-13437604342f
else
search --no-floppy --fs-uuid --set=root 78ff9f0c-8133-43b1-b8f6-13437604342f
fi
echo ‘Loading Linux 3.4.11-2.16-desktop …’
linux /boot/vmlinuz-3.4.11-2.16-desktop root=UUID=78ff9f0c-8133-43b1-b8f6-13437604342f showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x
11failsafe
echo ‘Loading initial ramdisk …’
initrd /boot/initrd-3.4.11-2.16-desktop
}
}

END /etc/grub.d/10_linux

BEGIN /etc/grub.d/20_linux_xen

END /etc/grub.d/20_linux_xen

BEGIN /etc/grub.d/20_ppc_terminfo

END /etc/grub.d/20_ppc_terminfo

BEGIN /etc/grub.d/30_os-prober

menuentry ‘Windows Recovery Environment (loader) (on /dev/sda2)’ --class windows --class os $menuentry_id_option ‘osprober-chain-1072DD5B72DD45DE’ {
insmod part_gpt
insmod ntfs
set root=‘hd0,gpt2’
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 1072DD5B72DD45DE
else
search --no-floppy --fs-uuid --set=root 1072DD5B72DD45DE
fi
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry ‘Windows Vista (loader) (on /dev/sda4)’ --class windows --class os $menuentry_id_option ‘osprober-chain-B6C4E84CC4E81103’ {
insmod part_gpt
insmod ntfs
set root=‘hd0,gpt4’
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4 B6C4E84CC4E81103
else
search --no-floppy --fs-uuid --set=root B6C4E84CC4E81103
fi
chainloader +1
}

END /etc/grub.d/30_os-prober

BEGIN /etc/grub.d/40_custom

This file provides an easy way to add custom menu entries. Simply type the

menu entries you want to add after this comment. Be careful not to change

the ‘exec tail’ line above.

END /etc/grub.d/40_custom

BEGIN /etc/grub.d/41_custom

if -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif -z “${config_directory}” -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi

END /etc/grub.d/41_custom

BEGIN /etc/grub.d/90_persistent

END /etc/grub.d/90_persistent

It has been beaten to death in this forum. You have UEFI system and in 12.2 os-prober does not support chainloading of another EFI bootloader. 12.3 will hopefully behave better.

There are plenty of examples how to add Windows EFI bootloader to grub2 menu; search for them. Disable os-prober by using

echo GRUB_DISABLE_OS_PROBER=true >> /etc/default/grub

and manually create menu entry for Windows, add it to e.g. /etc/grub.d/40_custom.

Hi arvidjaar,

Can you explain how to create a menu entry for win 8?

I know the topic was extensively discussed, but I miss a comprehensive instruction. I am not a windows person and until now dual boot worked out of the box without any problems.

Cheers,
bialkow