Chameleon Bootloader

October 29, 2009

Just spent several hours pooching around with Chameleon Bootloader on my Hackintosh. I know have working bootloaders on two different disks, which is reassuring. Still got a long way to go. Want to summarise what I’ve learnt so far.

Parts of Chameleon

To install on a hard disk you have to deal with 3 different loaders.

  • stage0 - disk loader (boot0 - locates active partition & loads the partition booter)
  • stage1 - partition loader (boot1x - partition booter that loads the stage2 booter)(boot1h for HFS)
  • stage1 - root loader (boot - stage 2 boot loader)

These terms may not be technically correct, but they reflect my limited understanding and the location things are installed to.

When booting from a bios the first thing you have to do is choose which disk to boot. This will then load a boot0 file stored at the beggining of the disk before anything else. We install this file with a command like

fdisk -f boot0 -u -y /dev/rdiskX

where /dev/rdiskX is the identifier of the disk we want to put the bootloader on.

Boot0 is installed at the beginning of a partition before the root file system. We do this with a command like

dd if=boot1h of=/dev/rdiskXs1

Finally in the root of the partition we are booting we install boot0. This will load up related files stored next to it which configure the boot loader and prepare to boot the OS. Here we can just copy the files to the root of the partition.

GUID MBR and EFI

GUID is the default way to format a hard disk with OSX. It creates a hidden 200mb partition at the beginning of the disk called EFI. This is the perfect place on a Hackinstosh to keep the stage2 boot loader and all its related files.

EFI Updates

From netkas, these are updated stage2 loaders. We put these in the root folder (ideally of the EFI partition)

Other Documents

There is a really good pdf that I found which dramatically improves the documentation for chameleon (the readme is far to terse).