MacBook installation prerequisites (!) Please update your Mac OS X itself and all system softwares including firmware prior to the installation of GNU/Linux. MacBook has few special keys: * delete = PC's BS * Fn + delete = PC's Del * Fn + F1 = PC's F1 * Fn + F2 = PC's F2 * ... * Fn + F12 = PC's F12 Apple MacBook is build with Extensible Firmware Interface (EFI) for booting system and has SATA harddisk as main boot disk which deploy new GUID Partition table (GPT). This is different from classic PCs which use PC BIOS to boot and partition data are stored in MBR. GPT partition data are arranged not to overstep on classic MBR or classic boot record on each partition. Whenever you update your GPT partition data on the boot disk with utility program which do not know about the hybrid format, your classic MBR record is zapped after using them. For example: * parted: GNU/Linux * diskutil: MacOS X (pre-10.4.6 Mac OS X requires this.) In order to boot system under classic BIOS emulation mode, you need to restore hybrid partition data on MBR using data in GPT by: * gptsync: GNU/Linux (both on i386 and amd64 now for lenny) * boot menu of rEFIt to choose "Disk Partitioning and synchronize" These tools are needed since classic bootloaders used under BIOS emulation mode need these MBR data. {i} Some newer version of MacOS X diskutil program is supposed to update hybrid partition table. But use of diskutil may cause problem with partition type data such as Linux ext3. Thus it is safest to use parted and GPT synchronization tool in sequence to have correct hybrid partition table. Use of parted to update GPT partition will zap MBR and bootloader installed in it (/dev/sda). You need to run and GPT synchronization tool such as gptsync to have correct hybrid partition table. You also need to run "grub-install /dev/sda" to reinstall BIOS emulation grub-pc in it. It is safer to install bootoader in places such as /dev/sda3 to avoid overwriting. (!) Use of gptsync and "grub-install /dev/sda" are compatible to each other. Please note first partition is used by GPT table itself. Let's think following configuration: Installed contents Linux device name Mac OS X device name Grub legacy device name Grub 2 device name GPT /dev/sda1 disk0s1 (hd0,0) (hd0,1) Mac OS X /dev/sda2 disk0s2 (hd0,1) (hd0,2) Linux amd64 /dev/sda3 disk0s3 (hd0,2) (hd0,3) Linux i386 /dev/sda4 disk0s4 (hd0,3) (hd0,4) Linux testing /dev/sda5 disk0s5 N/A (hd0,5) Data MSDOS (vfat) /dev/sda6 disk0s6 N/A (hd0,6) swap /dev/sda7 disk0s7 N/A (hd0,7) In order to chain boot though BIOS emulation provided by Apple, I will deploy following boot sequence and partitioning here: EFI boot system -> rEFIt program ->+ +<-------------------------------+ +--> Mac OS X on /dev/sda2 (by rEFIt directly) +--> Linux testing on /dev/sda5 (via GRUB 2 MBR located on /dev/sda) +--> Linux amd64 on /dev/sda3 (via GRUB 2 BR located on /dev/sda3) +--> Linux i386 on /dev/sda4 (via GRUB 2 BR located on /dev/sda4) GRUB 2 boot loader from BIOS emulation is grub-pc which can access any GPT partition. It looks like 3 places to put BIOS compatible boot record. (Do not install boot record used by this BIOS emulation in /dev/sda1 nor /dev/sda2. I do not know the side effect.)