Boot – How to Boot Ubuntu on a Mac from External USB Storage

bootmacuefiusb

I wish to run Ubuntu on my iMac from external USB storage, either an external disk or a flash drive.

I can easily create a bootable USB stick and use that to install Ubuntu 14.04 onto a properly partitioned USB device. However, contrary to some assertions here and elsewhere, after restarting the result is not detected by the Mac as bootable.

I have Googled extensively and I'm sure it's possible to get the Mac to boot it, but the instructions I've found have been either too vague (Installing Ubuntu on and External Hard Drive and boot in a Mac) or in one case, too complex (http://www.rodsbooks.com/ubuntu-efi/) to make much sense. However, the common thread appears to be using rEFInd to rejig the boot options.

So, I've managed to get rEFInd installed on a partition on the external drive but it does not detect the Ubuntu installation. I have an ext2 /boot partition on the same disk, and copied ext2_x64.efi into the /EFI directory, but no go.

I'm a bit stuck at this point, and the next steps will have to be a detailed study of bootloaders and EFI. However, I think I must be close to cracking this and hope somebody can point to a step-by-step guide somewhere.

To recap:

  • USB disk has ext2 /boot partition (with vmlinuz image on it), and ext4 / partition with the rest of Ubuntu 14.04 installed
  • Isn't bootable after install
  • Put rEFInd on a another, FAT32 partition which contains /EFI directory
  • Copied ext2_x64 to /EFI/boot and /EFI/refind
  • Can boot, rEFInd loads, there is an option to boot ext2_x64.EFI(?) but no Ubuntu/vmlinuz.

If I can get this solved I will place a clear guide on the web somewhere!

Best Answer

Well, I spent a second whole day on it and now I've cracked it.

I sincerely hope some other poor soul gets some value out of this.

Here's a recipe that works (at least, on my iMac with Ubuntu 14.04):

  • Boot with bootable USB, install Ubuntu
  • Partition your USB as follows:
    • 200MB EFI boot partition
    • 200MB ext2, mount to /boot
    • Swap space if you want it
    • One or more other partitions to hold Ubuntu proper (e. g. ext4 on /)
  • Complete the install, reboot to OS X
  • Get gdisk (pkg installer for OS X) and rEFInd binaries
  • execute "diskutil list" from the console and note the device name, and the EFI partition (e. g. /dev/disk3, /dev/disk3s1)
  • Follow the gdisk recipe at http://www.rodsbooks.com/ubuntu-efi/ under "Fixing the installation" point 6
  • Install rEFInd on your USB's EFI partition. From the refind directory:

    ./refind-install -–usedefault /dev/disk3s1
    

    (you can drag the file into command prompt to get full path)

Then when you reboot, you can "EFI Boot" to rEFInd, and there should be an option to boot GRUB/linux.

I have documented this in more detail here: http://coljac.net/2014/stuff/installing-ubuntu-onto-a-bootable-usb-stick-or-other-device-on-a-mac/

Related Question