MacBook Pro Mid 2007 Not Showing Linux USB In Boot Menu

bootmacbook pro

I have a mid 2007 MacBook Pro that I want to get Ubuntu Linux on as the only OS. I have tried SO MANY TIMES to get a bootable USB working, but nothing is working. I have reset PRAM, used many different software, and more. Any help would be greatly appreciated.

EDIT: I have gotten it to boot, but it gets stuck on this line:

[    15.419970] fb: switching to radeondrmfb from EFI VGA

Best Answer

I tested booting from a USB flash drive on a (20 inch, mid 2007) iMac.

First, download the file ubuntu-16.04.1-desktop-amd64.iso from the Ubuntu web site: Download Ubuntu Desktop.

Second, erase and format a flash drive for a single MS-DOS (FAT) volume using a Master Boot Record (MBR) partitioning scheme.

Next, transfer the iso file to a USB flash drive using UNetbootin. This application runs on Windows, OS X and Linux. The instructions, when using OS X, are given at this site: How to create a bootable USB stick on OS X.

Note: The message shown below is wrong. The USB flash drive can be used to boot off a Mac.

This flash drive did appear on the Mac Startup Manager menu. By selecting the icon, I was able to boot to a live version of Ubuntu.

The Ubuntu installation software places the Ubuntu startup files (GRUB) in a EFI partition. Unfortunately, the Mac firmware ignores these files. Therefore, nothing representing the Ubuntu installation appears on the Startup Manager menu.

When holding down the Option ⌥ at startup, the Mac firmware will look for the \EFI\BOOT\BOOTx64.EFI file on each EFI partition of all drives accessible at startup. Each occurrence will generate an icon with the label "EFI Boot" on the Startup Manager menu.

Searching, for the BOOTx64.EFI file in the folder \EFI\BOOT on a EFI partition, is part of the UEFI specification. For example, if you go to the "uefi.org Specifications web page", you can download and view the "UEFI Specification Version 2.5". Sections 3.5.1.1 Removable Media Boot Behavior and 3.5.1.2 Non-removable Media Boot Behavior (on pages 88-90) describe the naming of the BOOTx64.EFI file and that it should appear in the \EFI\BOOT folder.

When Windows installs, some of the startup files are stored in the folder \EFI\MICROSOFT. These files are also duplicated (with some renaming) in the \EFI\BOOT folder. Not all non-Apple operating systems do this when installing. For example, Ubuntu Linux does not. (Well, last time I installed in EFI mode it did not.) The Ubuntu installer does create a folder \EFI\UBUNTU with startup files (GRUB), which the Mac firmware by default ignores. To get Ubuntu to appear in the Startup Manager, you have to manually mount the EFI partition and copy the files in the \EFI\UBUNTU folder to the \EFI\BOOT folder. (Also, the copied grubx64.efi file needs to be renamed to BOOTX64.EFI.)

If you need to do this for two operating systems, then you will need a second EFI partition. This should not present a problem since an EFI partition is fairly small (<200 MB) and the limit on Macs by default is 128 partitions. However, to tell one operating system for the other, while viewing the choices presented by the Startup Manager, you may want to change the icons.

For example, I have rEFInd installed in a second 134 MB EFI partition on my iMac. (This happens to be the last of 9 partitions.) Additionally, I have Windows 10, Yosemite (on volume "Steelhead") and El Capitan (on volume "Steelhead2") installed. Below is a image of my Macs Startup Manager menu. (For a better view, click on the image or open in a new window.)

6

The icon can be changed by mounting the EFI partition and adding the icon file .VolumeIcon.icns to the root folder. A collection of these icons, for popular Linux and other operating systems, can be found here.

Note: While the Mac Startup Manager can be used to boot Ubuntu, this extra step is unnecessary when Ubuntu is the sole installed operating system. In this case, one would be better off by blessing Ubuntu so this operation system is always chosen at Startup. The process for doing this is beyond the scope of your posted question.