From Windows go to "change advanced startup options" and select "restart now".
When it reboots, choose the "Troubleshoot" option, then choose the "Advanced options" option, and finally choose the "Command Prompt" option.
After the device reboots, login to the command prompt and then you should see a terminal with X:\windows\system32>
At the prompt, check your UEFI entries:
```shell
bcdedit /enum firmware
```
Copy UEFI entry of "Windows Boot Manager" to create a new entry for Ubuntu: bcdedit /copy {bootmgr} /d "Ubuntu"
Copy the printed GUID number including the braces {} using Ctrl+C
Set file path for the new Ubuntu entry. Replace {guid} with the returned GUID of the previous command (Ctrl+V). bcdedit /set {guid} path \EFI\ubuntu\grubx64.efi
Set Ubuntu as the first/ entry in the boot sequence. Again replace {guid} with the returned GUID of the copy command.
Make sure the GUID you copied is the first one listed in displayorder. Then type exit, turn off the PC and turn it back on. After this my surface go is automatically booting to the grub bootloader which lets me choose between Windows and Ubuntu but defaults to Ubuntu after ten seconds.