Surface Go Dual Boot

by Adam
3 minutes
Surface Go Dual Boot

Instructions for setting up Dual Boot on Microsoft Surface Go.

  1. Make bootable USB using Rufus and latest Linux Mint distro
  2. UEFI (BIOS) move USB to position 1 boot order
  3. Boot to Win10, disable BitLocker, reboot to Win10
  4. Insert bootable USB, restart into Windows Recovery
    (Start > Settings > Update & Security > Recovery > Restart Now)
  5. Select Use a Device > Linpus lite (Mint loads from USB)
  6. Install Mint with advanced options (aka: 'Something else'):
    1. Shrink primary and create two ext4 partitions as: 
      root ( / ) 32gb; home ( /home ) 14gb
    2. Select as 'Device for boot loader install' the efi partition
  7. Complete installation, machine will reboot to Win10
  8. From Win10, in Terminal as Administrator run:
    'bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi'
  9. Restart in Windows Recovery
    (Start > Settings > Update & Security > Recovery > Restart Now)
  10. Select Use a Device > ubuntu (Mint loads from disk)
  11. From Mint, in Terminal:
    1. $  efibootmgr
      (default BootOrder: Linpus, Windows, ubuntu, EFI USB, EFI Network)
    2. $  sudo efibootmgr -o 0003,0001,0000,2001,2002
    3. $  efibootmgr
      (new BootOrder: ubuntu, Windows, Linpus, EFI USB, EFI Network)
    4. $  sudo grub-mkconfig -o /boot/grub/grub.cfg
    5. $  sudo su
    6. #  cd /etc/efi/EFI
    7. #  mv Boot Boot_bak
    8. #  cp -R ubuntu Boot
    9. #  cd Boot
    10. #  mv shimx64.efi bootx64.efi
    11. #  exit
    12. $  sudo apt-get install grub2-theme-mint-2k
      (to install prettified Grub)
    13. $  exit
  12. Power off / on confirm Grub loads, boot to Win10
  13. Power off / on confirm Grub loads, boot to Mint

To revert:

  1. In Win10 Terminal as Administrator run
    'bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\BootMgFw.efi'
  2. In Mint Terminal as 'su' in /boot/efi/EFI execute 'mv Boot_bak Boot'

Credits:

  1. Multiple
  2. AktasC @ GitHub
  3. idimopoulos @ Dell Forums