hmmmm.. interesting!
I have re-checked my previous testing and you're right and it doesn't work. I tried the following on an HFS format EFI system partition:
fdisk440 -f boot0hfs -u -y /dev/rdisk0
dd if=boot1h of=/dev/rdisk0s1
and I saw exactly what you reported:
boot0: test
boot0: done
boot1: error
However, I knew I had it working and that was why I was so confident with my earlier posts, but I guess I had done so much testing over the weekend I had lost track of which method I had used. Sorry for any confusion.
So I thought how did I get it working before? - Here's how, using the latest RC5 files from the Chameleon trunk and fdisk440, on a FAT format EFI system partition of disk using a GPT.
It involves using the steps from the shell scripts in the package installer which I believe are by mackerintel (someone please correct me if I'm wrong with that).
Write boot0hfs - as you have been doing
fdisk440 -u -f boot0hfs -y /dev/rdisk0
Write boot1f32 - as the original Chameleon package installer script
dd if=/dev/rdisk0s1 count=1 bs=512 of=/tmp/origbs
cp boot1f32 /tmp/newbs
dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
dd of=/dev/rdisk0s1 count=1 bs=512 if=/tmp/newbs
Then you can mount the EFI system partition as normal and add the boot file and /Extra folder.
Looking at the disk sectors from before and after the steps in the script, I think (if I read it correctly) that it comes down to maintaining bytes 0x03h to 0x59h of the original bootsector, where as using
dd if=boot1h of=/dev/rdisk0s1 just replaces the whole bootsector effectively invalidating the bootsector.
Hope that helps
