Surface Pro 3 – No GRUB Menu – Dual Boot Troubleshooting

bootdual-bootgnomesd cardsurface

Although many people have successfully installed Ubuntu Gnome on their Surface Pro 3, including on their MicroSD card, I just can't seem to get it to boot on my SP3.

Here's what I did so far:

  • Disabled UEFI Secure Boot, giving me the red boot screen.
  • Inserted a high-speed Ultra Plus 32GB MicroSD HCI card in the slot
    behind the SP3's kickstand.
  • Installed Ubuntu Gnome 14.04 Live ISO to a USB key with UNetbootin.
  • Plugged in a USB Hub with my mouse/keyboard and Live USB key.
  • Booted to Live USB with Volume Down/Power Button
  • Installed Ubuntu Gnome 14.04 to MicroSD card, and Grub 2 to Windows C
    partition (In the end I did not connect to a wifi network as it
    seemed flaky and the Live USB runs very slowly.)

Then I rebooted, but it just went straight to Windows with no Grub boot manager.

I then tried the Volume Down/Power Button boot, but it also went right to Windows. Then I tried Recovery Options > Advanced Startup > Use A Device to try "ubuntu" and "USB Device", both of which booted to Windows.

I decided to try EasyBCD because it has UEFI support and has worked well for me with Vista and Windows 7 when Grub alone caused problems. However, after trying a few different tutorials I am still unable to boot to Ubuntu Gnome or see Grub. Instead I see an error screen pointing to "\NST\AutoNeoGrub0.mbr" or "\NST\NeoGrub.mbr" and saying a required file is missing or contains errors.

Can anyone suggest a fix for this? Thank you!

PS. The SP3 is able to boot from the microSD port and treats it as a USB device; I installed the Live ISO to it and it booted fine by holding the Volume Down button. The high-speed card is also plenty fast for my purposes.

Best Answer

First read

for some UEFI specific advice. Old tutorials might not even mention what's needed for the new UEFI machines.

The removable media (USB or SD) are given almost no attention in the tutorials anyway, so whatever the installer does, it typically needs to be fixed for the non-internal media. boot-repair might fix the "missing" bootloader but you can just copy bootloader into the right location, it's just a file copy under UEFI. Non-secure boot uses grubx64.efi, so that's the file to put into /EFI/Boot/bootx64.efi (on the FAT32 300MB EFI partition).

Now the next issue is the SD card install from a live USB -- the grub.cfg file's devices tend to get mixed up when extra devices (like the install media) get in the device enumeration (384633). Again, manually correct the first boot, then run sudo update-grub to fix the file.

Once you get the bootloader and grub.cfg file fixed on the SD card, you should be able to boot. Then you can think about optimizing the card for better performance, moving as much into ram as possible.

Related Question