Recently, I had to install Archlinux on an iMac … again. It has never been an easy process but it was particularly annoying this time around. Thanks Obama!
Preparing the bootable USB
This is the simple step - just plug in a USB drive and use
dd (dd = disk-destroyer).
Replace the ISO path and the device path (Note: It’s
sdc1 etc. as we want to
over-write the whole drive (including the partition tables). Also be careful with
the device path - there’s a reason it’s called disk-destroyer.
I wanted to keep the MAC OS so I just used the Disk Utility in MAC OS to shrink the “Fusion Drive” volume and create another partition where I would install linux. Fusion Drive is Apple talk for hybrid SSD/HDD drive. Some people have also instead destroyed the Fusion Drive and separated them out into the HDD and SSD. I am sure that works too but I didn’t try that.
I installed rEFInd just to make it a bit simpler to boot the USB drive in UEFI
mode. I gathered this is the way to do it from some googling. However, to install
rEFInd, you have to boot into the MAC Recovery OS because the
bless utility needs
to be run from the Recovery OS.
Boot Archlinux installer
From the rEFInd menu, select Archlinux - this will take you to yet another boot
Archlinux ... being the top boot option. Press
e to edit the kernel
boot params and append the following to the end:
EDIT: It seems that just using
noapicseems to do that trick as well. Better yet, with
nolapic, the machine is locked to 1 core but with
noapic, the machine is able to use all the cores.
All these were neccessary for me too boot (and took a long time to figure out). Probably the most annoying part of the whole process.
Install Archlinux as you usually would and make sure you select the right partitions from
the partitioning step. Make sure not to delete the EFI partition if dual-booting. Install
the Grub/Syslinux bootloader (and the
efibootmgr if booting through (U)EFI). Make sure to
give the right setup params to
grub-install to install EFI bootloader if using EFI.
After installation was done, I booted once again into the Recovery OS to bless grub and to also set it as the default bootloader:
See here for more details.
I tried using the catalyst drivers but they seemed to not work at all. I did however stop getting errors like these when booting:
With the opensource ATI drivers (
xf86-video-ati), the errors return but at least
doesn’t crash and burn. It seems the catalyst drivers are missing some Xorg symbols but
unless you really want the proprietary drivers, stick with the opensource ones - they work
As a final step, I had to update the UUIDs for the root partition in the grub config files.
The entries it generated by default were not correct for some reason. Also, these UUIDs
are different from what the
diskutil on MAC OS shows. To get the correct UUIDs,
get to the grub shell from the grub menu after the installation is done and the machine has
rebooted and run
ls -l to list the partitions and their respective UUIDs.
Edit the boot entry for Archlinux and type in the correct UUIDs. After it has booted,
/boot/grub/grub.cfg file and enter the correct UUIDs.