Of course, this failed to boot, producing the ominous error "Operating system not found."
Now, of course, I could have simply changed the BIOS setting to boot in Legacy mode rather than UEFI mode and then installed Mint. (I actually did this at one point, just to make sure it worked).
However, I had been presented with a challenge, and wasn't going to be defeated by some silly proprietary BIOS. So I continued in my attempts to get Mint booting via EFI. After much investigation and research and no success (and many reinstalls -- thank goodness for live USBs), I came across this thread where I learned that the Insyde H2O BIOS is hardcoded in EFI mode to boot Windows, my first clue on how to proceed.
Simply doing what the thread suggests (that is, renaming grubx64.efi to Microsoft/Boot/bootmgfw.efi) didn't work. It took me a while to figure out why.
The key problem is that, unlike Ubuntu, Linux Mint doesn't have an alternate ISO to install from, and hence there isn't an easy way to prevent the Mint installer from overwriting the Windows bootloader. As it turns out, using the Windows bootloader rather than the GRUB2 bootloader is the critical step to success.
So I booted into the Windows 7 install CD and chose the Repair Windows option, proceeding forward until I got to the Command Prompt. At that point, I executed
Code: Select all
bootrec /FixBoot
Exit, reboot, and it worked!
In summary, to get your Mint booting via UEFI when faced with an Insyde H2O BIOS, you need to do the following (you will need access to a Windows 7 CD):
0. Boot into the Mint Live CD/USB (preferably in UEFI mode).
1. Make sure your disk is partitioned with a GPT table rather than an MSDOS table. Next, you need to add an ESP partition (if it doesn't have one already). GParted is the easiest way to do this. It is recommended to make this the first partition, and it needs to be formatted to FAT32 and flagged as boot. Make it a decent size, just in case ( I made mine 256 MiB). I also added separate partitions for /boot, / and /home.
2. Start the Mint Installer. Be sure to select the "Something Else" option so you can make use of your custom partition table. Be sure to tell Mint to use the ESP as "EFI System Partition", and tell it to install the bootloader in the base device (e.g. /dev/sda or whatever). Assign the other partitions as appropriate.
3. Install Mint, making sure you are connected to the internet because it will try to download and install the grub-efi package, which installs GRUB2 via EFI.
4. After the installer finishes, select "Continue Testing". Mount the ESP using e.g.
Code: Select all
sudo mkdir /mnt/efisys
sudo mount -t vfat /dev/sda1 /mnt/efisys
Code: Select all
EFI/linuxmint/grubx64.efi
Code: Select all
EFI/Microsoft/Boot/bootmgfw.efi
Code: Select all
sudo umount /mnt/efisys
6. Boot into the Windows 7 install CD, select the Repair option, proceed until you get to the Command Prompt, then execute
Code: Select all
bootrec /FixBoot
7. Exit, and reboot and hopefully you should be booting into Linux Mint via UEFI.
Hopefully this helps someone else!
Footnote: If you want to dual-boot Windows and Mint you will need to do something more complicated. Possibly the best way to proceed here is to get the Windows BCD (Boot Configuration Data) to recognise GRUB as a second boot option.