Windows 8 Dual boot lost after Fedora upgrade

Chris Murphy lists at colorremedies.com
Fri Jul 3 17:35:47 UTC 2015


There's an awful lot going on here. And to vent, I'm going to start
out by saying dual boot sucks. It's not you, users are sane, and dual
boot support on Linux just sucks. OK...



On Fri, Jul 3, 2015 at 9:09 AM, Gary Stainburn
<gary.stainburn at ringways.co.uk> wrote:
> I've finally decided to have a go at fixing the problem where the Windows 8
> option disappeared from my GRUB menu when I upgraded from F19 to F20.


This suggests the computer does not have Secure Boot enabled, because
Fedora's GRUB has never support UEFI Secure Boot chainloading of the
Windows bootloader. The fact the GRUB menu entry used to work, and now
doesn't, suggests some other problem.


> parted shows (sda4 is the Win8 partition, sda5 is the recovery partition):
>
> Model: ATA ST1000LM014-1EJ1 (scsi)
> Disk /dev/sda: 1000GB
> Sector size (logical/physical): 512B/4096B
> Partition Table: gpt
> Disk Flags:
>
> Number  Start   End     Size    File system  Name                  Flags
>  1      1049kB  683MB   682MB   ntfs         Basic data partition  hidden,
> diag
>  2      683MB   892MB   210MB   fat16        EFI System Partition  boot

The EFI System partition being fat16 is suspicious. It's supposed to
be FAT32 per UEFI spec (removables can be FAT 12, FAT 16, or FAT 32
depending on their size). Anaconda however, doesn't force mkdosfs to
create FAT 32, it leaves it up to mkdosfs defaults. And based on the
size of the ESP Anaconda creates, mkdosfs formats it FAT 16. It's
possible your OEM Windows installer likewise semi-improperly formats
this FAT 16.

That it's FAT 16 isn't likely a problem, except that if it was
reformatted, and not repaired by Windows startup repair yet, might
explain why you're not able to boot Windows.


> my 40_custome file is:
>
> #!/bin/sh
> exec tail -n +3 $0
> # 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.
>
> menuentry "Windows 8 (BCD-UEFI configuration on system
> drive /dev/sda2)" --class windows --class os {
>     insmod part_msdos
>     insmod ntfs
>     insmod search_fs_uuid
>     insmod chain

The insmod part_msdos is wrong. It should be part_gpt as this is a GPT disk.

I strongly advise not using 40_custom for this. You should let
grub2-mkconfig find Windows, and create the proper boot entry from
scratch.


>
>     set root='hd0,msdos2'
>     if [ x$feature_platform_search_hint = xy ]; then
>
> search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4

More msdos stuff which is wrong...


> 1098EFF798EFD96C
>     else
>       search --no-floppy --fs-uuid --set=root 1098EFF798EFD96C


Is this the correct UUID for the Windows volume? Check with blkid.
grub2-mkconfig will get this right, which is why it should be used
instead of a static configuration.




> ./efi/EFI/Microsoft/Boot/bootmgfw.efi

This being the only thing in /boot/efi/EFI/Microsoft is perplexing.
I'm expecting a lot more stuff in here than this. So yet again I
wonder if maybe this EFI System partition was inadvertently formatted
when doing a Fedora installation? It's not difficult to accidentally
delete it, I've found.

But the fact is that you're not seemingly getting an error from this
OSLoader, you're getting it from GRUB not finding this path which
suggests the menu entry is malformed somehow.

Suggestions:

- Move /etc/grub.d/40_custom out of that directory so it doesn't get
used, but is still retained in case you want to revert.
- run
grub2-mkconfig -o ~/Downloads/grub.cfg

post that grub.cfg somewhere or maybe it'll all paste into the mailing
list which is fine too, I want to see the whole thing *unless* it
doesn't have a Windows menu entry listed in it. If it doesn't then I'm
going to guess that /etc/default/grub has os-prober disabled. If so
that needs to be commented out and you need to rerun the
grub2-mkconfig command.


-- 
Chris Murphy


More information about the users mailing list