Running Ubuntu off a USB 3.1 SSD drive (on a MacbookPro)

Get one of these drives:  https://www.sandisk.com/home/usb-flash/extremepro-usb ($70-130 on Amazon for the 128 GB and 256 GB versions)

Why this drive? According to the specs it is FAST, and it is a SSD, not a standard USB Flash drive. So it should be more reliable (and faster) than a generic USB Flash drive.

In order to maximize the usefulness of the drive, I wanted two partitions, one for Ubuntu, and one that could serve as a data partition that is accessible from both Ubuntu and Mac OS. To the best of my knowledge, the best format for this second partition is HFS+ (not journaled). Curiously, new versions of Mac don’t allow you to format the drive in this way. Neither does Ubuntu (by default). On your Ubuntu machine, install hfsprogs (sudo apt-get install hfsprogs). Then install gparted if it is not already installed (sudo apt-get install gparted). Plug in the drive, open gparted, and erase the drive and create a gpt partition table. Now create an HFS+ partition, as well as an ext4 partition (you will install Ubuntu on the ext4 partition). After that, you’ll need to add permissions for the HFS+ partition (“sudo chown -r username:username drivelocation” and replace username and drivelocation with the appropriate values).

Now plug a ubuntu boot drive and the USB SSD into your Mac. While booting up, press the option key. Select the Boot EFI option (orange drive), and install ubuntu on the ext4 partition.

All done! This USB SSD comes with a boot.efi partition that causes the Mac to boot into Ubuntu if the drive is plugged in. If you get a black grub screen when booting into Mac without the Ubuntu SSD plugged in, just type “exit” and it’ll boot into Mac OS.

There are a few annoying things with the Mac keyboard.. solve them with these tricks:

Get the tilde key working:

The solution that worked for Timofey did not work for me for some reason. However, a solution which did work was to put the line
echo 0 > /sys/module/hid_apple/parameters/iso_layout
into /etc/rc.local.
Get the right click work around: