Update: Actually, you might be able to install 64bit Linux on a Mac with 32bit EFI by including the “fakebios” GRUB2 option. I’ve updated the grub-efi tarball to include this and it works on my Mac Pro. Thanks to Martijn Broeders for this.
To install 64bit Linux onto a Mac using only EFI (and not MBR emulation) then your Mac must have a 64bit EFI. Run the following under OS X to discover whether you have 64bit or only 32bit:
ioreg -l -p IODeviceTree | grep firmware-abi
This should return something like:
| | "firmware-abi" = <"EFI32">
If you see “EFI32” like I do, then it means your machine can’t execute 64bit EFI loaders, so you’re stuck with 32bit, d’oh!. If you see “EFI64” then you should be able to install native 64bit Linux using EFI only, yay!
I discovered this while trying to load 64bit only my Mac Pro at work as an alternative to running Linux with multiple drives and MBR (which doesn’t really work) 🙁
This is why the 64bit Fedora efidisk.img never worked on my Mac, but the 32bit one does.
If you happen to run OSX 10.6 Snow Leopard you will need to add the -l option to ioreg to display the actual options of each node.
ioreg -l -p IODeviceTree -l |grep firmware-abi
seems to do the trick in both 10.5 and 10.6
please ignore my previous comment. Your instruction is obviously correct and I should learn to cut&paste properly.
No worries 🙂
Chris, you seem to be the guy that know all about EFI and linux.
I just installed Fedora 13 on a Mac Pro, early 2008. Everything went well, until I had to boot, no Linux in the boot menu.
I used one physical drive for fedora. there are two bootable (RAID1) OS X. The model is EFI64 and I used the 64 bit fedora.
I thought (hoped) that fedora would work out of the box, but maybe I was naive. I would appreciate any input, you can give me.
Ok, I found out a little by my self on your blog:
which I havent followed yet.
But I don’t understand. Do I need rEFIt? Installed before using efidisk? To start the Fedora install? Does this trigger a EFI install ?
It shouldn’t matter when you use it, but you can’t boot Linux without it (well you can, but it’s not as nice). Just install rEFIt from under OS X and configure it as per instructions (you have to run a shell script to enable it) and when you reboot it should find Linux. Give that a try anyway and see what happens 🙂
I don’t think that rEFIt supports booting from other drives, so you might have troubles there.. in which case, we might need to find something else.
Actually, the “fakebios” option worked on my MacPro1,1 EFI32, but it did not on my XServe1,1 EFI32 🙁 (I tryied to install RedHat enterprise 6 x86_64 on the two boxes). So I’m stuck with the i386 release on the XServe …
Thank you for your good posts Chris,