Ubuntu – UEFI Dual-Boot – Ubuntu 12.04.3 + Windows 8.1 (One GPT HDD)

dual-bootgptgrub2partitioninguefi

UEFI Dual-Boot – Ubuntu 12.04.3 + Windows 8.1 (One GPT HDD)

Hello,

I'm having trouble setting up a dual-boot (Ubuntu 12.04 LTS and Windows 8.1) in my ASUS K55VM laptop's hard drive disk (500 GB).

I was mostly following tutorials for doing this, but at some point something has gone wrong.

Up to now, I have followed these steps:

  1. I formatted my HDD into GPT.
  2. I clean-installed Windows 8.1. I didn't prevent Windows from choosing the partitions to use and it created these partitions:

    • A Recovery partition (sda1).

    • An EFI System Partition (sda2).

    • A Microsoft Reserved Partition (sda3).

    • A Windows Data Partition or C drive (sda4).

  3. I reduced the Windows Data Partition via Windows' Disk Management.

  4. I made a bootable USB Stick with Ubuntu 12.04 LTS from ISO, using Universal USB Installer.
  5. I created these partitions for Ubuntu:

    • A Boot partition, mounted at /boot (sda5).

    • A Root partition, mounted at / (sda6).

    • A Swap partition (sda7).

  6. In Device for boot loader installation I chose: /dev/sda.

  7. Then, when I rebooted, it went straight into Ubuntu. So I installed Boot-Repair, and clicked on Recommended Repair. It automatically did its job without asking for anything.
  8. I rebooted and Grub showed up, with a lot of options. At this point I had a decent dual-boot setup; Ubuntu and both Windows entries worked fine:

    • Ubuntu.

    • Windows Boot UEFI Loader.

    • Windows UEFI bkpbootmgfw.efi.

  9. I executed this command: sudo grub-install --force /dev/sda5.

  10. Then I tried to make Windows 8.1's Boot Manager the main boot manager, so that I could choose which OS to boot into from a menu. I downloaded EasyBCD on Windows. It showed 2 Ubuntu entries and 1 Windows entry.

  11. I went into BCD Deployment tab and clicked on Write MBR.

  12. At this point, I went into BIOS and made Windows Boot Manager the first boot option.

  13. When I rebooted, I got a black screen with the message efidisk read error, and then (I guess) it switched to the next boot option, which is Ubuntu, resulting in Grub showing up.

  14. From Grub, Ubuntu entry is working and so are both Windows entries. If I choose Ubuntu, it normally boots into Ubuntu. But if I choose Windows, it goes into Windows' boot manager.

  15. In Windows' boot manager, a menu shows up:

    • Ubuntu.

    • Ubuntu.

    • Windows 8.1.

  16. If I choose Windows, it boots into Windows without any problem.

  17. If I choose Ubuntu, it boots into Grub (back to step 14).

Here's my BootInfo Summary: http://paste.ubuntu.com/6698171/

Windows Boot Manager is clearly not working as expected; I can't directly boot into it and I can't boot into it from BIOS either (efidisk read error again). If I want to boot into Windows I need to boot into Grub first, which is the opposite of what I wanted.

I need help at this point. What is the best thing I can do? Is there a more reliable and/or simpler way of acomplishing a satisfying dual-boot for this situation? Can someone provide a way for going back to step 8, where I had a more efficient dual-boot setup? If only I could undo what I did with Easy BCD and skip Windows' Boot Menu… Can someone provide a way to fix this mess?

Thanks in advance and sorry for the length of this, I wanted to be exhaustive.

Best Answer

Broadly speaking, you made two mistakes:

  • The last I heard, EasyBCD is useless for managing a dual-boot installation on an EFI-based computer. Thus, by installing it you just started digging a hole for yourself.
  • You tried to apply BIOS-specific knowledge to an EFI-based computer. I know that almost everybody (including manufacturers) is calling EFIs "BIOSes," but they aren't. An EFI boots in a fundamentally different way than a BIOS, so you really do need to read up on EFI boot methods and ignore all your BIOS-specific knowledge. Thinking of an EFI as a BIOS just creates confusion and causes mistakes. See the following sites for EFI-specific information:

You can recover your system from where you are now, but it might be simpler to start from scratch. To do so, follow your procedure through step #6; however, be sure that you boot the Linux installer itself in EFI mode. That should get you an EFI-mode installation of GRUB, which in theory should boot Windows without your having to run Boot Repair. If you have problems at this point, you can either run Boot Repair (which is klunky and often over-does things) or install my rEFInd boot manager. Do not install EasyBCD.

At this point in time, your best method of dealing with problems is to read and understand the technology; automated tools get things right sometimes, but they also often mess things up worse than they were before. (This isn't really a criticism of the automated tools; unfortunately, there's so much variability from one EFI to the next that it's impossible for automated tools to get things right all of the time.) If possible, test a tool on a USB flash drive without installing it to your hard disk. You can do this with rEFInd, but it's difficult to do a test installation of GRUB to a USB flash drive.