# Surface Pro 3 - No Grub menu

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.

• Did you set up an EFI partition on the SD card? Did you copy grubx64.efi into the EFI's /EFI/Boot/bootx64.efi? That is what the removable media bootloader defaults to. – ubfan1 Nov 6 '14 at 23:45
• I did only what was explained in multiple tutorials posted in the Ubuntu Forums and on blogs by users with the same situation as me. None of these tutorials mentioned EFI partitioning or copying grubx64.efi. I appreciate this information and will look into it. But I must wonder why my question was voted down? I have followed a very logical path, which has been posted in multiple places, I'm having issues and I asked very clearly for help, what's to mark down? What happened to the friendly helpful Ubuntu community? – Michael bean Nov 7 '14 at 3:25

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.

• Thank you, thank you, thank you! This solved my problem and I'm typing this in Ubuntu! I did as you said and created the 300 MB partition, created the boot folder, and dropped in grubx64.efi from the install USB stick. Then I installed Ubuntu to the empty space and shut down, then restarted the Surface while holding the volume down button, and it went straight to Grub! And Windows boots fine too. Perfect! – Michael bean Nov 7 '14 at 13:16

I have this working with SecureBoot Enabled and TPM Enabled by simply rerunning grub-install after anything touches grub (i.e. installing new kernel). Sometimes first boot takes a few minutes but afterwards, it always boots fast.

BTW, I have no windows installed, only Ubuntu. I have found that for an emergency, if your system stops booting you can boot from install usb but then in grub press 'c' and do this to boot from HD:

grub> set root=(hd1,2)
grub> linux /vmlinuz root=/dev/sda2
grub> initrd /initrd.img
grub> boot

• Hey I just wanted to tell you that this worked for me and I'm very impressed. You're basically telling grub "hey, I know that my sda2 partition has ubuntu on it, just boot it". I'll definitely be tucking this incantation into my hat for all future linux boot problems, Surface Pro related or not. Thanks! – CornSmith Dec 14 '16 at 3:38

We got it work on Surface Pro 3 by doing the USB Ubuntu 14.04 install following the posts above. However, we needed to set the bootloader to be on /dev/sda2 (second partition with label EFI Partition) not the default one /dev/sda ATA SAMSUNG. This solved the issue for us.

We also found you can access the Ubuntu install by using the Update and Recover feature with the Restart Now-->Use Device. We then selected Ubuntu and it loaded our GRUB menu the next reboot. However, this was only partial fix since that procedure of loading first in Windows 8.1 was required each time. After a lot of following forums and other procedures we just decided to do fresh install and found the EFI Partition needed to be selected to solve the issue.

Also might need to disable the TPM as well as the Secure Boot. We found Surface Pro 3 has very long boot time with TPM (probably checking hardware changes possibly resulting from Ubuntu operations?). Also, we found that after some time the Grub menu disappeared after working for many boot cycles. Perhaps the TPM is the culprit changing the boot procedure or preventing certain operations on boot?