I do not have a clean solution yet, so you still have to wait some time.
In the meantime the most brave among you might want to tryout this procedure:
WARNING: This might break your Chameleon Installation / MBR / GPTI think it should work if you have only one win7 and one HFS+ partition on your primary disk.
The disk must be partitioned with GUID partition table.
Try at your own risk.1. Save your master boot recorddd if=/dev/rdriveX of=<fileMBR> bs=512 count=1and if you have time, also save the GPT (the first 16kB of your disk should be enough)
dd if=/dev/rdriveX of=<fileMBR-GPT> bs=512 count=32make sure that you still can access this file even if neither OsX nor Windows can boot (e.g. save on an USB stick)
2. download the binary Chameleon2 RC3 package
3. copy the boot0 file to boot0-win7fix
4. Now we are going to change the boot0win7 MBR code
echo h > not0x80
dd if=not0x80 of=boot0win7 bs=1 seek=108 conv=notrunc count=15. verify that everything worked !!!This should be done, but you can skip this step if you dont have developer tools on your OsX
ndisasm boot0 > boot0.asm
ndisasm boot0win7 > boot0win7.asm
diff -u boot0.asm boot0win7.asm
This should give something like this:
-0000006A 803C80 cmp byte [si],0x80
+0000006A 803C68 cmp byte [si],0x68this is the code where boot0 checks if a partition is bootable (0x80). By changing this
boot0 will not find an active partition and will try to check for an HFS+ partition in the GPT tables.
6. Good: When you are done, you can write boot0win7 to the MBR with fdisk (this will however delete the diskID and
you have to use the win7 DVD to repair)
Better: use dd to write only the first 440bytes of to the MBR (I did this with Linux dd)
BAD: !!! do not write the whole file with dd to the MBR - this will delete your MBR partition table !!!
7a. boot Windows and set its partition to active, then check sleep an hibernation
7b. If everything fails, get a linux live CD and rewrite the MBR backup of step 1.
For the advanced user:
(One could also take the MBR from step 1. instead of the boot0 from Chameleon distro)
I KNOW THIS IS A REALLY BAD FIX, BUT:
1. This is exactly how I did it on my computer in the first place
2. I don't want to add bad code to the source code
3. I'm still working on a proper fix (see attached file for proposed changes)
Edit: I found an easier way to do this:
1. download a disk editor that can access raw disks
(e.g. HDD software Free Neo
http://www.hhdsoftware.com/ for windows
HxD did not work because its not 64bit safe )
2. open your disk
3. Change the following line
0x060: c6 04 00 b3 01 80 ff 01 75 0a 80 3c 80 75 0f 30
to
0x060: c6 04 00 b3 01 80 ff 01 75 0a 80 3c
68 75 0f 30
Edit2: corrected some typos
Edit3: I would apreciate feedback (especially on the patch for boot0.s)