Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a ~2006 Macbook (1,1) that I am trying to resurrect as a Linux machine. I no longer want nor need OS X, so I want to install Arch as the only OS on this machine. I have tried several times to get Arch Linux installed, but I get hung up every time when it comes to installing the bootloader. I have even gotten Grub2 to install, but I can't get it to install and then boot. I've attempted following the ArchLinux Macbook guide for EFI, along with the Beginner's Guide. I've read quite a bit about UEFI, but I still can't seem to figure out where to put my bootloader.

From the errors I get when I install, it would appear that the laptop is not booting in UEFI mode, so none of the UEFI bootloader directions work. I get hung up at the following command:

grub-install --target=i386-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck

It tells me to run modprobe efivars before chrooting, but I do that and nothing happens. My understanding is that my Macbook is EFI rather than BIOS, but without it booting into UEFI mode, I can't install a UEFI bootloader.

What do I need to do to make the bootloader (1) install and (2) work. As mentioned above, I don't need OS X, and would like Arch to be the only OS on this computer.

share|improve this question
Have you tried the beginners guide? – Jeff Dec 13 '12 at 22:23
Yep. I mentioned that in the description. I've tried the beginner's guide and also followed the installation guide. No luck either way. – Ryan Dec 14 '12 at 0:36
I just want to point out that if modprobe efivars works and the module is correctly loaded, there will be no message shown. So, the fact that "nothing happens" is indicative of success and not failure. – terdon Dec 14 '12 at 0:53
@terdon When I say "nothing happens," what I mean is that it doesn't fix the problem. When I run it before chrooting, then check /sys/firmware/efi/vars/, there is nothing there. the /sys/firmware/efi directory doesn't even exist. But there is no output from modprobe efivars. – Ryan Dec 14 '12 at 17:02
Have you tried refit? – Keith Dec 15 '12 at 3:51
up vote 0 down vote accepted

Booting a Macbook to Linux requires that you have Refit installed to an HFS partition in /efi (this would be partition two - typically the MAC OS partition). Refit in this case must be installed via MacOS. MacOS X is essentially required, at least at the onset, because the 'bless' command must be executed - this functionality does not exist in Linux.

Bottom line, sadly, you need to have at least a minimal installation of MacOS installed to have a self sufficient Linux installation. Make the MacOS partition as small as you like(or can). Once OSX is running, install refit and proceed with the Linux installation. Further, if you ever have problems later on, you may need to boot into MacOS and rebless the drive by running "sudo /efi/refit/".

Alternatives include booting each time to a CD or USB stick and then directing it to boot from the hard drive. One odd method that sometimes works includes booting to a Windows CD - at the prompt were it says "Press any key to boot from CD", wait for a timeout. Sometimes at that point the system will boot from the first hard drive despite having no OSX installed.

share|improve this answer

I've just successfully done exactly what you were trying to do, I seem to have followed the same steps and encountered exactly the same problem, down to a T.

The modprobe command does nothing because it's already loaded, yet the EFI-related commands will only work when booted in EFI mode. This is point #3 in the Requirements for UEFI variable support.

The ArchLinux install medium can automatically boot into either EFI mode or BIOS mode depending on what is required/possible (this is a step before showing you the installer boot loader menu) but it seems it doesn't make this choice consistently. I was booting from the CD by holding down the C key and most of the time it would boot into BIOS mode, presumably because MacBooks actually use a hybrid BIOS-EFI system. It turned out if you hold down Alt, you get a menu in which you can choose BIOS or EFI explicitly. In EFI mode your grub command should work without problems, no need to modprobe anything. You know you're in the right mode if efivar -l lists EFI variables without errors. For me the solution was as simple as pressing a different key to boot into EFI mode, if you're booting from a USB stick, I've read you might need to write the image to the stick from a computer booted in EFI mode.

As a final note, in your case, where you're not going to keep OS X and only boot to arch, a fancy boot loader like GRUB isn't necessary; you can use efibootmgr to make the computer boot ArchLinux using the EFI system directly!

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .