2

I'd like to be able to boot a full Ubuntu installation from an external hard drive on my Mac, and I'd like to do it without a custom boot menu (e.g. rEFInd).

I've seen the steps for creating a live USB on Mac here, and while they work great, I then have to deal with the quirks of a "Live CD" (like the persistence/overlay file system). I want to be able to boot to it like a normal Ubuntu installation and be able to do system upgrades, etc.

I've seen suggestions to use tools like rEFInd, but I'm not wanting to mess with my Mac's EFI or primary drive. Since the Live USB boots just fine with no modifications (by holding option on boot and selecting it), it seems like it should be possible to boot a full installation the same way.

Or am I doing something that doesn't make sense or is impossible? If it helps, this is a 15" MacBook Pro Retina (Mid 2015) and I'm using a USB 3.0 drive that claims 180MB/s reads and 50MB/s writes.

  • Oh, and I forgot to mention: I've already tried just formatting the disk and installing Ubuntu from a different live installation. It doesn't show up as a bootable option when holding option as the Mac boots, though. Do I need to format it in a special way? – Moduspwnens Jan 3 '16 at 2:50
1

First, you MUST understand the differences between two boot modes:

  • EFI -- This is the Mac's native boot mode. To boot in EFI mode, you need a boot loader on an EFI System Partition (ESP) called EFI/BOOT/bootx64.efi (or EFI/BOOT/bootia32.efi for older Macs with 32-bit EFIs). (Macs can also boot from HFS+ volumes, but I'm not sure of the rules for booting them from external disks using HFS+.) Ordinarily, the boot loader for Ubuntu will be GRUB 2, but it could be something else, including ELILO, rEFInd, gummiboot, or even a Linux kernel. Note that it's far easier to boot in the EFI's native bit depth than otherwise in EFI mode -- that is, if your EFI is 64-bit, you should install a 64-bit Ubuntu. In theory, if you've got a 32-bit EFI, you should install a 32-bit Ubuntu; but Ubuntu's 32-bit images provide no EFI support, so you'll have to jump through significant additional hoops to do this.
  • BIOS -- Apple's EFIs include a BIOS compatibility layer, aka a Compatibility Support Module (CSM) or legacy boot support. If you prepare a disk with a BIOS-mode boot loader in the disk's MBR (and follow-on locations), it should be bootable by the Mac. Ubuntu sets up GRUB 2 as its default BIOS-mode boot loader, but you could use something else if you prefer, such as LILO or GRUB Legacy. If you've got a 32-bit EFI, a BIOS-mode install is likely to be simpler.

It's unclear which way you tried to set up your system, or if you even know which way you tried. Ordinarily, the Ubuntu installer will attempt to install a boot loader that matches the way it booted -- that is, it sets up an EFI-mode boot loader if it booted in EFI mode and a BIOS-mode boot loader if it booted in BIOS mode. Unfortunately, the installer's boot mode is not always obvious. The easiest way is to drop to a shell and look for a directory called /sys/firmware/efi. If it's present, you've booted in EFI mode; if it's absent, you've probably booted in BIOS mode. Controlling the boot mode can be tricky. The Mac's built-in boot manager might present two boot options for the installer, but the installer must also be prepared properly for the desired boot mode. You may need to experiment with multiple tools for preparing the installation medium to get the thing to boot the way you want.

Furthermore, tweaking the boot loader installation for an external medium can be tricky, especially in EFI mode. If you want to do an EFI-mode installation, your best bet is to launch the installer in "try without installing" mode and then type ubiquity -b. This will cause the installation to proceed without installing a boot loader. You can then install a boot loader manually to the external disk's ESP, using the filename EFI/BOOT/bootx64.efi (or bootia32.efi). This will require considerable knowledge of your boot loader to configure it, though. The easiest to configure is likely to be rEFInd. I know you said you don't want to use it, but you can install to the external disk and even configure it to hide its menu so you don't see it.

A BIOS-mode installation is likely to be easier to set up; you mainly need to be careful to tell the installer to put GRUB on the external disk (probably /dev/sdb) rather than the internal disk. The risk here is that the external disk might not be bootable because Macs are pretty finicky about booting external media, especially in BIOS mode.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.