Please help me get EFI working on my 2019 Intel MacBook Air!

Hey, all! I’ve got me a 2019 Intel-based MacBook Air. I hate macOS, and since I never use the device, I wanted to get some use out of it by installing Fedora. I want to just wipe macOS and use the whole disk. I did this successfully on a 2015 MacBook Pro, though I needed Fedora 37 as that model needed an HFS+ EFI partition. It’s now a really nice Fedora laptop! Unfortunately, all I managed on this device was a grub/efi recovery screen (wish I’d taken a screenshot lol).

Here’s what I tried. I installed Fedora 37 (last version to use HFS+/“macefi” for EFI partition), Fedora 38, and Fedora 39. I followed steps from Howtogeek to make my Fedora images bootable. It worked, and I could boot the USB. I also disabled all the MacBook security stuff in “Startup Security”, and disabled the SIP. I also tried installing rEFInd, which did work and showed my EFI boot entries, but none of them successfully booted Fedora.

Unfortunately, the result is the same. With Fedora 37, the device just didn’t register as bootable. Fedora 38 and 39 both installed, but had an error about installing the bootloader towards the end. I just can’t seem to get this thing to successfully setup an EFI partition. I found this post on Apple Stackexchange, but their command didn’t work, erroring as not having space, despite having a blank partition. I then tried this answer, and partitioned my disk with the EFI partition as 200 MiB, at the beginning of the drive, and then using GNOME Disks to change the label to EFI (everything else was right). Still, it did not work. I just get to EFI recovery. Lastly, I head bless --device /dev/disk0s1 --setBoot --legacy should help, but MacBooks haven’t supported legacy boot since 2015 or so.

I’m really not sure what’s going on here. Fedora’s live session works nicely, but the installed system, not at all. I’ve reinstalled probably 8 times today, trying different things. Unfortunately, I’m at a loss. I would really appreciate some help, because I’m kind of done trying to get this thing going. At this point, M1 is somehow way easier to install on than Intel haha, what a twist!

As a side note, Anaconda developers, if you’re there, the Fedora’s since 37 have not successfully installed on 2015 MacBooks or older. That’s because it now installs a regular FAT32 filesystem for the EFI, and these older MacBooks need HFS+. Installing F37, then upgrading worked, even on F39. In fact, it’s a DAMN GOOD laptop with F39, despite it’s age! However, I think the installer needs to either auto detect the age of the MacBook, or allow the user to manually set MacEFI, or regular EFI. I will make a proper issue eventually.

In here we’ve recently had two Intel-based Macbook users confirm that the latest F39 nightly images work fine for them and they can install F39 into dual-boot there. So not sure about a complete wipe, but dual-boot should work. You can find the latest nightly image here. The dual-boot steps are here.

1 Like

Here’s mine, upgraded from 38 few hours ago (just Fedora on it, nothing else):

MacBookAir5,2 Year 2012

First install was F35, and then just upgrades. I did not try fresh install with later releases.

IIRC, older Macs required 32-bit efi binaries. If the newer fedora installers are installing 64-bit efi binaries, that might be why it is failing.

Just a guess.

Edit: I don’t think 2019 is that old though. So that probably isn’t the issue.

The nightly build of Fedora 39 worked! It installed nicely; no errors! I ultimately decided to go for the T2Linux fork of Fedora 38, instead, though. This version comes with a lot of nice tweaks for these T2 security chip enabled MacBooks, and it works like a charm! Elsewise, I’d need to get the keyboard, trackpad, and probably some other hardware working manually, and I really don’t want to deal with that if someone else has already done the work.

1 Like

2019 or 2020 was the last year Apple made Intel-based MacBooks. The M1 came out in 2020. In 2019, early test units running a slightly weaker prototype ARM processor being passed around to macOS developers for porting.