This article explains how to install Ubuntu Linux (or any other distribution) on a removable USB drive or stick without overwriting the EFI partition of your main hard disk and without using any shell commands, only graphical interfaces.
Live Linux USB drives are nice for testing purposes and with the new persistence modes they can also remember a few things between sessions. Unfortunately some features like the ability to update the OS or install drivers can only be accomplished with a full Linux installation.
It is possible to run a full Linux system in a removable drive but the installation process is tricky, even if you select the correct destination drive and the the correct destination for the boot loader you might end up with your main hard-drive boot partition overwritten and a USB stick that does not boot at all.
The main reason for this "unexpected behavior" are the extremely confusing and poorly implemented UEFI standards: the computer BIOS picks the EFI partition it finds first (on any disk) and boots from there. The lazy dumb Linux installers do not verify the location of this partition an simply load the boot instructions there without asking the user. Although this is OK for dual boot systems it will cause problems for users that do not want to contaminate their main disks.
One of the ways to prevent this is unplug the HD cable before the installation. Unfortunately newer computers and laptops use M.2 connectors without cables, removing and reinstalling the fixed HD is not that practical. Another alternative widely spread in forums is to perform the installation as usual and then repair the boot sequence of both the removable drive and the fixed drive, this procedure is complex and requires at least two devices, one for reading the instructions and the other to type the commands.
The procedure I will explain here does not require any shell commands, does not require rebooting the computer several times, does not require the main OS recovery disk (Windows or Mac), can be memorized just by reading this page, works with most graphical Linux installers based on Debian (Ubuntu, Kali, Lubuntu, Kubuntu, Mint, etc...) and has a lower probability of failing.
Everything perfect? Definitely not! You can still damage your main disk boot if you don't follow all the steps according to the instructions.
This procedure is applicable for systems that use UEFI Mode (most of the computers shipped after Windows 7) with GPT. Devices that run on BIOS Legacy mode (MBR) do not require this procedure because the Linux Installer will place the boot loader where he is told to.
If you are not sure if your computer is using UEFI or Legacy mode just check the BIOS configuration menu.
- Connect the destination drive and the source drive (Live Linux USB stick).
- Boot from the Live Linux stick.
- Select "Try Linux"
- When the graphical user interface loaded, run GParted (Partition Manager). If GParted is not available you can use the package manager from the live distro to install in the memory (it will be lost after reboot).
- Load the main Hard Disk drive (usually /dev/sda) and select the EFI partition (usually a FAT32 system).
- Edit the the flags of the EFI Partition and uncheck the "ESP" flag. Other flags will automatically change so take a note of the initial state before clicking anything.
- Apply the changes and do not reboot the computer until you revert that settings.
- Run the Linux installer from the desktop icon.
- Pick whatever partition scheme you want but remember to install the boot loader in the removable drive.
- When the installation ends, do not reboot the computer!
- Go back to the GParted application, select the the EFI partition and check back the "ESP" flag. Check other flags that were eventually turned off.
- Now reboot the computer and enjoy the new OS and the original untouched OS.