Some time ago, Apple Mail on my white MacBook stopped communicating with gmail. As I recall, it was some error message that translated to “your mail client is horribly old and uses outdated security protocols“. Unfortunate, because OS X Snow Leopard was my favorite version of OS X. Anyway, I decided it was time to throw Linux on it.
At the time, I was having trouble getting the latest 64-bit Linux distro DVDs to boot. Eventually I came across ubuntu-14.04.3-desktop-amd64+mac.iso which actually did boot and install. Unfortunately, these mac-specific images seem to have fallen by the wayside as of late.
I figured it was time to look for a method to get this stuff running.
Before reading further: Make sure you’re in the same boat!
To be clear, this applies to the 64-bit Macs that use a 32-bit EFI. These tend to be all of the Core2Duo models from late 2006. More specifically:
- iMac 5,1 – iMac 5,2 – iMac 6,1
- Macbook 2,1
- MacBook Pro 2,1 – MacBook Pro 2,2
- Mac Pro 1,1
- Xserve 1,1 (maybe)
If you’ve got an earlier Mac which is a CoreDuo (not a Core2Duo), it can’t run 64-bit anyway. If you’re on a later Mac, you’ve probably got a 64-bit EFI so most 64-bit Linux distros should install and run.
If you’re on some other (non-Mac) 64-bit machine that uses a 32-bit EFI, well… I have no idea. It could be worth a try.
Note that the MacBook Air 1,1 doesn’t have a DVD drive which makes things more complicated.
Option 1: Pre-modded 64-bit DVD Images for the 32-bit EFI models listed above
For DVD-burning only (see Option 4 for USB).
Warning: You’re best to skip to Option 3 and create the disk image yourself. For all you know, I could be a botnet kingpin and you could be downloading the Botnet Linux 16.04 ISO. Or maybe the actual botnet kingpin hacked their way into the server and quietly replaced my ISO with their own. Beyond that, it’s also going to be really helpful for you to understand what problem you’re actually solving so that when new versions of your favorite distro come out in the future that you want disk images for, you’re capable of effortlessly handling it on your own.
April 19 2020: I’ve re-added a few pre-modded ISOs here (old server died earlier this month taking the hundred or so ISOs with it). Due to reduced disk space and bandwidth on the new setup, it is likely that only a minimal selection of the more popular distros will be offered from now on. For other distros, you will have to follow the instructions in the other sections to mod your own ISO.
ubuntu-20.04-desktop-amd64-mac-mattgadient.com.iso ( md5: aa38a556fa5648a706b365665eee2cd2 )
Ubuntu 18.04 Desktop (64-bit Mac) – 2.0 GB
ubuntu-18.04.4-desktop-amd64-mac-mattgadient.com.iso ( md5: 1ec7f556caf83a4c14c57818b8c018cd )
Lubuntu 18.04 LXDE (64-bit Mac) – 1.2 GB
lubuntu-18.04.4-desktop-amd64-mac-mattgadient.com.iso ( md5: 8bdd6b561768f7990d230b6019f8630e )
Xubuntu 18.04 XFCE (64-bit Mac) – 1.5 GB
xubuntu-18.04.4-desktop-amd64-mac-mattgadient.com.iso ( md5: e7cc98d6d11ac9a83281ebc27d5e63d6 )
Ubuntu 16.04 Desktop (64-bit Mac) – 1.6 GB
ubuntu-16.04.6-desktop-amd64-mac-mattgadient.com.iso ( md5: 2dd875ae71eeed3b94d08130e07ba599 )
Lubuntu 16.04 LXDE (64-bit Mac) – 932 MB
lubuntu-16.04.6-desktop-amd64-mac-mattgadient.com.iso ( md5: c8838182ac372edb55c69bfec250b1e7 )
linuxmint-19.3-cinnamon-64bit-mac-mattgadient.com.iso ( md5: 8e8112a70d2ec03573189586a10e4afd )
Linux Mint 19.3 XFCE “Tricia” (64-bit Mac) – 1.9 GB
linuxmint-19.3-xfce-64bit-mac-mattgadient.com.iso ( md5: 44415e6b5a4d8042ae71135d554b48d5 )
elementaryos-5.1-stable.20200405-mac-mattgadient.com.iso ( md5: d62fb6d45b3026244b7ce8ef1e653e69 )
Fedora-Workstation-Live-x86_64-31-1.9-mac-mattgadient.com.iso ( md5: 9ee717892e2d5ca9dc429926e9f72698 )
Fedora 31 XFCE Live (64-bit Mac) – 1.4 GB
Fedora-Xfce-Live-x86_64-31-1.9-mac-mattgadient.com.iso ( md5: 079a3e028deb48ea71d80a95d3f864a8 )
debian-live-10.3.0-amd64-gnome+nonfree-mac-mattgadient.com.iso ( md5: 234ebce0a46a661f51c4bb62011537e6 )
Debian 10.3.0 Live XFCE + non-free (64-bit Mac) – 2.7 GB
debian-live-10.3.0-amd64-xfce+nonfree-mac-mattgadient.com.iso ( md5: 064708164f9a41cd01a03bbdcbd985aa )
Note: If you’re able and willing to use a “netinst” installer, and without the non-free firmware, Debian provides an official debian-mac-x.x.x-amd64-netinst.iso which can be found at https://cdimage.debian.org/cdimage/release/current/amd64/iso-cd/.
I have only personally used/tested Ubuntu 16.04, 17.10, and Fedora 24. Note that Lubuntu tends to be one of the snappiest installs if you don’t mind the LXDE interface.
Check out the comments for successful and non-successful distros/versions that others have been kind enough to report back with.
- Burn to a DVD (not USB – see Option 4 for that situation). Hold the “option” key on your Mac during boot and select the image. It will likely be detected as “Windows” or something by the boot menu.
- If burning the DVD from a mac, do not use Disk Utility. Use a dedicated program capable of burning ISOs (Burn and SimplyBurn are a couple open source programs capable of this).
- When you format/install, you’re best to use MBR for the hard drive (not GPT). Most distros will automatically use MBR as part of their “auto format/install” when you use these disk images, but if you do some custom partitioning, you’ll want to keep an eye out.
- I haven’t tested to see if it works with a dual-boot system. The MBR bit might cause complications here.
- If you redistribute the images, please either leave the “mattgadient.com” bit in the file name or replace it with something that clearly indicates it isn’t an official ISO. That way if there are problems with it, people won’t think it’s an official ISO that’s broken.
- Update: As far as the firmware is concerned, there’s no default start-up partition anymore. Thus, the Mac will sit at the white/grey screen for about 30 seconds on each boot looking for all the drives before it fires up Ubuntu. If you don’t mind, great! If you *do* mind, I have another write-up for dealing with that here. if you’d like to tackle it after you’ve got Linux up and running. Note that it requires an OS X Install DVD to “bless” your new Linux install.
Option 2: Mod an ISO yourself with the modding program.
Note that if you’re happy to compile the program on your own (it takes under 5 seconds to compile), you should scroll down to the next section for the source code and instructions.
This is the program I use to mod ISOs. It’s quite simple to use: you just run it against an ISO. So head to your favorite distros website, download the ISO, pop into a terminal, and run this program against the ISO.
The program is tiny, and a big advantage to using this program to mod your own ISOs is that it’s very quick and you can mod ISOs I do not provide above.
MacOS version (compiled): isomacprog.gz
Linux version (compiled): isomacprog.gz
You’ll have to decompress it and make it executable. Normally this is done from a Terminal window. As an example:
cd ~/Downloads gunzip isomacprog.gz chmod +x isomacprog
The program should technically run at this point. You can check it by typing:
…it should say “No iso name assigned”. If it doesn’t work and you get a cryptic error, you will likely have to compile it on your own via steps in the “How To” section.
To actually mod the ISO, I prefer to make a copy of the original, and run the program against the copy. Replace “original.iso” below with the name of the ISO you downloaded and want to mod:
cp original.iso macversion.iso ./isomacprog macversion.iso
…it should usually take less than a second to run. You can verify that it worked by typing the following on a Mac, again replacing “original.iso” with the name of the ISO you downloaded:
md5 original.iso md5 macversion.iso
…or on Linux…
md5sum original.iso md5sum macversion.iso
If the MD5 is unique for each file, the program worked and you can burn
macversion.iso to a DVD. Some ISOs will not work with the program (the before and after MD5 will be identical), in which case you’re out of luck and should probably attempt another distro.
Note that just because the program successfully modded the ISO does not mean the distro itself will work – you won’t know for sure until you try the install. Stock Ubuntu LTS releases tend to work (with older ones having higher success rates depending on your Mac model). Arch and Arch-based distros (Manjaro/etc) have very low success rates and often require manual work to get a bootloader going. In any case, you may want to parse through the comments below to see what distros people have had luck with.
The notes from Option 1 (burn to DVD, etc) apply.
Option 3: Compiling the program to make a standard Linux 64-bit distro ISO compatible with 32-bit EFI Macs
This is the recommended method for modding an ISO. The source code is under 60 lines (easy to parse if you’re a programmer). It compiles within a couple seconds and the program itself takes less than a second to run against any ISO you downloaded.A short explanation of the situation, followed by the source code and instructions:
The “problem” with the 32-bit EFI macs (as I understand it) is that they fall apart when they try to load a “multi-catalog” disk image. Most linux distros use multi-catalog images so that they support both BIOS and EFI. When the Mac tries to load the disk image, you get the cryptic “select CD-ROM boot type” text. Since the mac hasn’t loaded any keyboard stuff yet, you can’t actually choose any of the options.The cleanest solution (I’ll go into alternative solutions in following sections) is to change the disk image to be BIOS-only (non-EFI). Basically, remove other items from the El Torito catalog. That’s what the old Ubuntu amd64+mac ISO’s did. The 64-bit BIOS linux bootloader kicks in, and all is well. A more detailed explanation can be found here.
Converting the ISO
This is done via a very simple C program. Credit goes to the poster here. A lot of extra info if you expand that thread’s bug discussion. Here’s the code (slightly modded to let you provide the file name instead of hard-coding it):
Source code: isomacprog.c.txt
Save it as “isomacprog.c” (remove the “.txt”), and compile it with:
cc -g -Wall isomacprog.c -o isomacprog
After that, make a COPY of the original ISO for your linux distro and run it against the copy. Something like:
cp original.iso macversion.iso ./isomacprog macversion.iso
This isn’t guaranteed to work on every Linux ISO image out there, but it’s worth a shot, and is what I’ve used for the images above.
The notes from Option 1 (burn to DVD, etc) apply.
A number of people in the comments have indicated they aren’t sure how to compile a program and are having difficulty getting started. I have a bit of a “how to get started” in the comments for those who wish to learn. For those who want to compile but do not care at all about actually learning how to compile programs, I’ll put copy/paste instructions here. They are for people currently running Ubuntu (and Ubuntu-variants) only. I can not add instructions for every possible OS combination unfortunately, but a bit of web searching should get you started.
I will warn you that I do not really recommend this copy/paste option. If the ISO doesn’t work you don’t know whether it’s because there was an issue with the hunk you copy/pasted, or whether that distro just doesn’t work.
Copy/paste instructions for Ubuntu 18.04.1 (dump them in the terminal and cross your fingers):
cd ~ && \ sudo apt install build-essential curl && \ curl https://mattgadient.com/dl/linux-iso-program/isomacprog.c.txt > isomacprog.c && \ gcc -g -Wall isomacprog.c -o isomacprog && \ curl http://releases.ubuntu.com/bionic/ubuntu-18.04.1-desktop-amd64.iso > my-linux-mac.iso && \ chmod +x ./isomacprog && \ ./isomacprog my-linux-mac.iso && \ echo "Done. If there were no errors you can find/burn my-linux-mac.iso" && \ echo "from your home directory to a DVD!"
- Want to use another distro? Replace http://releases.ubuntu.com…ubuntu-18.04.1-desktop.iso with a link to an ISO from your favorite distro. This means you will have to copy/paste into a TEXT EDITOR first, make your ISO change, and then copy/paste the whole (modified) chunk into a Terminal window.
- The “sudo apt install..” line will cause this block of text to require your password, as it has to install build-essential and curl to your system. This will happen immediately. After that, you can get a coffee while it downloads the ISO.
- Your new ISO will be in your Home directory (from the file manager it will likely either be called “Home” or “YourName”). The file itself will be called “my-linux-mac.iso”. Rename it afterwards (once the program has finished) to something you’ll remember and then burn to a DVD.
Option 4: Alternative Options (USB, etc)
I’ll be honest: I prefer the above solution(s) for the following reasons:
- Simplicity – it’s the least complicated option.
- Robustness – as long as you partitioned as MBR, the install should survive most (not all) distro version upgrades since they tend to equate MBR with BIOS, and GPT with EFI. This can matter if it updates the bootloader (I’ve had a GPT bootloader get borked by an upgrade before).
If you’ve got a bad DVD drive or MacBook Air, I’d be inclined to try pulling the drive first and install Linux via another machine (swap the drive back in after and hope for the best).
But if forced to use USB or intent on going the EFI32 route, here are a few places I’d start:
- Update: Stefan has a step-by-step process for Live CD on an USB Stick (32-bit EFI, 64-bit Linux) which manually creates an EFI32 partition on the install USB. This is probably the route to try first.
- Update 2: Gero has mentioned a USB-bootable method via YUMI. You can find details via Gero’s blog at https://ger.oza.hn/2020/02/orbsmart-aw-05-minipc-und-linux-mint-64-bit/ (German, though Google translate works well for non-German speakers). The YUMI tool itself can be found at https://www.pendrivelinux.com/yumi-multiboot-usb-creator/ .
- Thread: Ubuntu 15.04 on Mac Mini 2,1 with EFI boot (2007 Intel) – The guide uses rEFInd on one USB stick. On a 2nd USB install disk it uses a Ubuntu USB install, but adds a bootia32.efi to the /EFI/BOOT folder. When starting up the Mac, uses ALT to bring up the manager and chooses rEFInd. Then once rEFInd has loaded, selects the option that contains “bootia32.efi”.
Once the Ubuntu install is complete, grub fails to install, but there are steps listed to manually install a grub-efi-ia32. Much of it is based on the steps that Jason Heeris provided on his blog. This is a very “EFI-native” solution, but I’d personally still be a little concerned about the potential for major release upgrades to overwrite the bootloader with a new 64-bit EFI.
- Hackintosh bootloader solutions – The hackintosh community has been finding solutions for Apple’s EFI compatibility limitations for years. If you’re looking for something very Mac-specific, search for Mac Pro 1,1 and add ML/MountainLion/10.8/10.9/etc to the search. Otherwise you can peek into various bootloaders like Chameleon, Pike’s bootloader, etc., but your are more likely to hit some trial-and-error bits there since every guide looks at a different purpose (some for just intented for having a different bootloader, some aimed at hackintoshing, etc).
If something above worked (or didn’t work) well for you, leaving a comment below might help the next person out.