Bug#705259: os-prober fails to add Windows 8 on UEFI system
Package: os-prober
Version: 1.57
Severity: important
Dear Maintainer,
* What led up to the situation?
Running update-grub on a Lenovo E530 with Windows 8 (UEFI System)
the wrong grub.cfg entry:
menuentry 'Windows 8 (loader) (on /dev/sda4)' --class windows --class
os $menuentry_id_option 'osprober-chain-168269338269188F' {
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 168269338269188F
else
search --no-floppy --fs-uuid --set=root 168269338269188F
fi
drivemap -s (hd0) ${root}
chainloader +1
this tries to chainload windows directly instead of using the efi boot
code.
* What exactly did you do (or not do) that was effective (or
ineffective)?
update-grub finds Windows in the correct partition. Yet Windows is no
more started from it's partition but from the EFI boot code.
This code resides in the efi partition (dev/sda2 on the Lenovo) at
/EFI/Microsoft/Boot/bootmgfw.efi
More detailed:
It seems on the Lenovo (and all UEFI systems?) Windows is not anymore
booted through the nt loader but through an efi boot loader
residing in the efi partition. So trying to chainload to the windows
partition will fail. Instead the efi boot loader must be chainloaded.
The os-prober seems to be unaware of this change of behavior on uefi
systems and adds a non-efi entry (see above)
A working grub entry would be (this is from an OpenSuSE install):
menuentry 'Windows Boot Manager (auf /dev/sda2)' --class windows --class
os $menuentry_id_option 'osprober-efi-F064-7203' {
insmod part_gpt
insmod fat
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 F064-7203
else
search --no-floppy --fs-uuid --set=root F064-7203
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
main difference is use of the efi partition instead the windows
partition, and use of bootmgfw.efi chainload instead of
the "old style" windows chainload.
-- System Information:
Debian Release: 7.0
APT prefers testing-updates
APT policy: (500, 'testing-updates'), (500, 'testing'), (500,
'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.8-trunk-amd64 (SMP w/8 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages os-prober depends on:
ii libc6 2.13-38
os-prober recommends no packages.
os-prober suggests no packages.
-- no debconf information
Reply to: