Installing Linux on an External HDD

I wanted to install Linux on a portable SSD I had and make it bootable from my Macbook, so it needed UEFI support. I didn’t find a nice method of doing it online, so I found my own way.

Before going over the instructions, I’ll touch base on the difference between BIOS, EFI and UEFI. These are all methods of booting an operating system. BIOS is the legacy boot mode found on older computers. Newer computers, such as my Macbook, uses UEFI (which is the successor to EFI) which requires some more steps than BIOS when installing the OS.

To make a UEFI Linux install bootable, the drive must have a EFI boot partition, which is a FAT32 formatted partition that is at least 200MB big. To do a UEFI install, the install disk must also be in UEFI mode (if its not, it will not install a UEFI version of linux).

Approach

Most methods I found online involved booting the system via the Live CD and installing the operating system onto the connected external HDD. However what I found is this will overwrite the boot loader on the computer’s internal drive, thus after the install the drive must be repaired to make the machine bootable again.

My solution is to create a virtual machine (using VirtualBox) to boot the Linux Live CD from and install the OS and install the operating system onto the external HDD within the VM. This approach won’t affect the internal drive in any way (as the VM is completely sandboxed) and should work with most Linux operating systems.

Steps

  1. Install Virtualbox
  2. Install Oracle VM VirtualBox Extension Pack. This is needed to connect USB2 and USB3 drives to the virtual machine.
  3. Download your linux distribution of choice. Make sure its 64-bit for UEFI support
  4. Create a new virtual machine in VirtualBox
  5. Do not add a virtual harddisk, as we will be mounting the external HDD into the VM to act as the disk
  6. Go into the VM settings and enable EFI support (Under System > Enable EFI)
  7. Add the External HDD by creating a USB filter, select the correct version of USB (Either 2 or 3)
  8. Boot up the virtual machine, when asked supply the ISO image to use
  9. Start the installer as normal
  10. During disk partitioning, ensure you have at least 3 partitions:
    • EFI Boot Paritition (FAT32, at least 200MB)
    • / (Root mountpoint, EXT4)
    • Swap (Should be around the size of your computer’s RAM capacity)
  11. Install as normal
  12. Shutdown the VM and the computer, try to boot the external HDD on the computer

Results

  • Bootable system with UEFI support, that works on different computers
  • Makes no changes to the computers internal HDD during installation
  • Tested with Ubuntu