Install Arch Linux on Macbook 3,1

Some notes on my attempt (I couldn't get the video drivers to fully work) to dual boot OSx and Arch Linux on this late 2007 model Macbook. To summarise I:

  • Installed rEFInd on OS x
  • Prepared a live USB stick to boot from.
  • Created two new partitions, one 15GB for "root" and one "home" taking up the rest of the space of the drive
  • Installed Arch
  • Installed Grub 2

Prep a live USB stick to boot from

You need to create a live boot USB stick using an existing linux installation. So with xubuntu after I downloaded the latest Arch Linux 64bit iso file I:

$ mkdir -p /mnt/{usb,iso}
$ mount -o loop Download/ISO-Images/archlinux-2013.01.04-dual.iso /mnt/iso
$ awk 'BEGIN {FS="="} /archisolabel/ {print $3}' /mnt/iso/loader/entries/archiso-x86_64.conf | xargs mkfs.vfat /dev/sdb1 -n
$ mount /dev/sdb1 /mnt/usb
$ cp -r /mnt/iso/* /mnt/usb
$ umount /mnt/{usb,iso}
$ sync

I then created a partition to use for Arch using Apples Disk Utility, then installed the rEFInd Boot Manager on my Macbook. This enabled meto select which operating system to boot from after pluggin in the USB stick.

Starting up from the USB stick

Unfortunately Arch didn't startup after selecting Arch EFI under the menu that rEFInd, what I need to do was:

  • Click 'e' when the basic menu appeared.
  • Then scroll to the write and type ' nomodeset' at the end of the kernal parameter boot string that appears.
  • Now click 'return' and Arch should now startup, though kernal control of the display will now be disabled.

Partition the disk

  • Start the disk partitioning application with: $ cgdisk /dev/sda
  • Delete the partition that's been reserved for arch linux.
  • Create new partitions by:
    1. Selecting 'freespace' (up/down arrow) then choosing 'new' (left/right arrow).
    2. When prompted type "+128M" to create a 128mb gap between the OSX partition and Arch linux root.
    3. Now enter "15G" to set the size of the root partition.
    4. Then name it "root".
    5. Now create a second partition by again selecting 'freespace' (up/down arrow) then choosing 'new' (left/right arrow).
    6. You don't need to set any sizes as it uses free space.
    7. Name it "home".

Create a file system on the new partitions

1. IMPORTANT reboot and go to the shell of rEFIt and type in it: "gptsync", this allows your macbook to discover the new partitions.
2. Boot into Arch on the USB stick.
2. Set the new file systems to ext4:
sudo mkfs.ext4 /dev/sda3
sudo mkfs.ext4 /dev/sda4
3. Create directories to mount these partitions to:
mkdir /mnt
mkdir /mnt/home
4. And mount them:
mount /dev/sda3 /mnt
mount /dev/sda4 /mnt/home

Now Install Arch Linux!

  • Base install: Pacstrap /mnt base base-devel
  • Generate the fstab file: $ genfstab -U -p /mnt >> /mnt/etc/fstab
  • Enter your new system via: $arch-chroot /mnt
  • Create locale files (uncomment the line for your local such as en_GB.UTF-8 UTF-8): $ nano /etc/locale.gen
  • Create a locale.conf file:
    $ echo LANG=en_GB.UTF-8 > /etc/locale.conf
    $ export LANG=en_GB.UTF-8
  • First find your timezone: $ ls /usr/share/zoneinfo
  • ln -s /usr/share/zoneinfo/Europe/London /etc/localtime
  • Set the clock: $ hwclock --systohc --utc
  • Setup wired network: $ systemctl enable dhcpcd@eth0.service
  • Install stuff for wireless network: $ pacman -S wireless_tools wpa_supplicant wpa_actiond dialog
  • Then run the following to connect to the network: $ wifi-menu
  • Network config files are stored at: /etc/network.d: $
  • Now enable the service: $ systemctl enable net-auto-wireless.service
  • Configure the package manager: $ nano /etc/pacman.conf
    And ensure the entries for [core], [extra], [community] and [multilib] are uncommented.
  • And refresh the repository list: $ pacman -Sy
  • Set the root password: $ passwd
  • And create a new general user account:
    useradd -m -g users -G wheel,storage,power -s /bin/bash newname
    passwd newname
  • Allow this user to run as root: $ pacman -S sudo
  • Allow your the new user to run sudo by editing the sudoers file: $ EDITOR=nano visudo
    And uncommnent: %wheel ALL=(ALL) ALL
  • I found these instructions very useful:

    Install Grub 2 so you can boot into Arch

    These instructions are helpful:,2

    I'm still working out the instructions below - they work - but there may be some un-required steps.

    • $ pacman -S grub-bios
    • # pacman -S grub-efi-x86_64
    • $ pacman -S os-prober
    • $ grub-install --recheck --force /dev/sda3
    • # mkdir -p /boot/efi
    • # mount -t vfat /dev/sda3 /boot/efi
    • # modprobe dm-mod
    • # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
    • # mkdir -p /boot/grub/locale
    • # cp /usr/share/locale/en\@quot/LC_MESSAGES/ /boot/grub/locale/
    • # modprobe dm-mod
    • # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug
    • Now generate the grub file: $ grub-mkconfig -o /boot/grub/grub.cfg
    • I found the grub file "/boot/grub/grub.cfg" doesn't work by default so I needed to add "nomodeset" to a line in one of the "menuentrys" - you should see a line that starts "linux /boot/vmlinuz-linux root=UUID" just type "nomodeset" at its end and everything shopuld now boot.
    • And reboot into your working version of arch.

    Setting up a network connection

    • Bring up the device names of the ethernet and wifi interfaces: $ iwconfig
    • Wifi will look something like "wlp3s0" and ethernet "enp2s0f0"
    • Activate the ethernet interface: $ ip link set enp2s0f0 up
    • Activate the wifi interface: ip link set wlp3s0 up
    • And connect to wireless access point with: wifi-menu wlp3s0
    • Configeration files are stored at: /etc/network.d

    Setting up the video driver

    I had major problems with this which I didn't manage to solve which meant I was unable to boot a desktop environment:( See my comments on Arch's forums:

    • Install X: $ sudo pacman -S xorg-server xorg-xinit xorg-server-utils
    • Add 3D support: $ sudo pacman -S mesa mesa-demos

    Some Useful sites

    These instructions are very helpful:
    And this provided a neat guide (though its Gub Instructions didn't work for me):,2


and refind or refit then

and refind or refit then o.0
one has shell option other dosent(exept for startup flag)
i'm stuck :(

damn this

damn this bootloader!

>>after selecting Arch EFI under the menu that rEFInd, what I need to do was:

Click 'e' when the basic menu appeared <<- could you please explain?
if i click e nothing happens.. if it boots yellow text appears "error: not foud retudned from legacy loader
not foud locatedevicepath
load error while opening our installation volume"
i understand that i'm suposed to edit grub conf.. but how if pressing e it does nothing

first i tried with arch 2013.03.01-dual and then to have exactly the same files like in this guide 2013.01.04 but still same prob

i have refit etc.. just dont undestand where to press "e"

(ps archboot boots.. but i cant seem to configure the bootloader throught it.. the install script clearly configs wrong for mac.. and i cant manually config since it dosent have pacman database files in deafult"root" shell... only throught shroot
and i want to go the arch way anyways)

and again thanks for the guide!

thank you!

thank you!

Post new comment

  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h3> <h2> <h4> <img> <div> <table> <tr> <td> <pre>
  • Lines and paragraphs break automatically.
  • Insert image: [img:node_id align=(left|right) size=(|fullLA|fullPreview|fullSQ|halfLA|halfPO|halfSQ|thirdSQ) action=(popup|link|frame) url=url style="margin:10px;" title=text description=text]

More information about formatting options XHTML 1.0 Strict CSS2 WAI