[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: