How do you install Linux alongside Windows 8 without corrupting the Windows 8 boot configuration?

In order to install Linux Mint 14 alongside Windows 8 I disabled UEFI and booted to a flash drive with the Linux image. I installed Linux, restarted the computer, and the GRUB boot loader appeared. When I selected Windows 8 I got the following error:

Windows Boot Manager  

Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:   1. Insert your Windows installation disc and restart your computer.   2. Choose your language settings, and then click "Next."   3. Click "repair your computer." If you don't have this disc, contact your system administrator or computer manufacturer for assistance.   File: \Boot\BCD   Status: 0xc000000e   Info: The Boot Configuration Data for your PC is missing or contains errors.

I did not have a disk, so I didn't bother trying to repair the installation, especially if doing so was going to ruin the GRUB boot loader and give me problems with my Linux installation. I re-enabled UEFI to see if it would allow Windows to load properly. It did, but it did not give me the option to boot to Linux. How can I resolve this issue and allow the two operating systems to co-exist?

UPDATE:

I've tried EasyBCD without any success. I can add a Linux boot option, and it shows up in the menu, but it consistently says that a boot configuration file is missing or corrupt when I try to boot to it. I've also installed rEFInd on Windows, but I could not find documentation as far as add the Linux boot option to the menu, or install an Ext4fs driver (honestly, I'm not even sure what these programs do. I have no real knowledge of OS booting. When I dual boot I always install Linux last and let GRUB do all the hard work. Unfortunately my GRUB won't work with Windows 8). I don't think I haven't tried looking through documentation, I just think my lack of experience with dealing with bootloaders has hindered my ability to understand what documentation I've found.

I'm looking for more suggestions or where I can find information in order to better understand the problem or how to fix it.

UPDATE:

I recreated the bootable USB flash drive through UNetbootin and reinstalled Linux Mint in EFI mode. However, when I tried to select linuxmint from the Windows boot manager it wouldn't load, citing there was something wrong with \EFI\linuxmint\grubx64.efi. The vital step I had missed was that I needed to disable secure boot in my BIOS settings. Once I disabled the secure boot, rEFInd loaded correctly as it was supposed to, and I was able to load GRUB without a problem. I spent hours trying different things; tweaking the boot menu with EasyBCD; reinstalling Mint over and over again; it turned out all I needed to do was disable secure boot and either install rEFInd or install Linux in EFI mode.


It's tricky to switch between BIOS-mode and EFI-mode OSes on a single computer; for best results, you should keep both OSes in one boot mode. Your best bet is to install an EFI-mode boot loader for Mint. Several are available, but installation can be tricky. Specific options you might want to try include the following:

  • Use Ubuntu's "Boot Repair" tool (I think it's part of the Ubuntu installer), which may set things up correctly for you, and with minimal fuss. I can't make any promises of this, though, since you're using Mint. Also, the Boot Repair tool can set things up in a rather unusual way that can cause confusion for other utilities down the road.
  • Boot a Linux emergency system in EFI mode and manually install an EFI boot loader. I describe several here, as well as manual EFI boot loader installation. Mint uses GRUB 2 in EFI mode, but a manual installation will take more effort to integrate with Mint's package. ELILO is easy to set up and use by manual standards, but it will require maintenance every time you upgrade your kernel. rEFInd is easy in terms of ongoing maintenance, but its installation script might not work well from an emergency system.
  • Install rEFInd in Windows (as described in its documentation), along with an EFI driver for whatever filesystem you used for Mint (on its root partition or /boot, if you've got a separate /boot partition). When you reboot, rEFInd should come up and give you options for Windows and Linux. Select one of the Linux options, press F2 or Insert twice, and add ro root=/dev/sda7 to the boot options, changing /dev/sda7 to your Mint root (/) partition. When you press Enter, Mint should start up. When it does, run the mkrlconf.sh script that comes with rEFInd. Thereafter, you should be able to boot with rEFInd without entering the boot options. This method bypasses GRUB, so you can optionally remove it.
  • Re-install Linux, being sure to install it in EFI mode rather than in BIOS/legacy mode. Mint's installer image file doesn't boot properly in EFI mode from a USB flash drive, but I've heard that UNetbootin can create an EFI-bootable USB flash drive, so you could try using it, or you could use an optical disc instead.

I solved this by creating a bootable USB flash drive with UNetbootin and installing Linux Mint in EFI mode. After disabling secure boot in my BIOS settings the GRUB EFI was loading successfully. I use rEFInd as a boot manager; it is simple to install and works without a hitch.