My config:
Chameleon 2.0RC3 - BIOS Booted
One Disk - MBR synced to GPT:
EFI System Partition
MacOS 10.6.2
Windows 7
boot0 in MBR
boot1h in MacOS partition
What I found out:
boot0 tries to find active partition in MBR
if found, it loads the boot code of this partition an executes it
if there is no active partition, it searches for an HFS+ partition
as far as I can tell from the boot0 assembler code, it makes also
use of the GPT for this step. If found, it executes the boot code.
So if Windows is active, the boot1h is never executed and Windows is booted
directly.
On the other hand: If the active partition contains boot1h (= MacOS partition) then
one can choose to boot Windows from boot1h, but the Windows system partition is not active.
Unfortunatly, Windows 7 needs its system partition to be active for a couple of things.
That are:
1a. BCDEDIT does not know where its config is (can be overcome by /store C:\BOOT\BCD)
1b. Tools as easyBCD dont work either
1c. and of course the boot priority settings dont work either
2. Hibernation does not work because it wants to write to the active partition
3. Sleep mode does not work because the default is "Hybrid-Sleep" which is a combination of Standby and Hibernation (this can be overcome by turning Hybrid-Sleep off in the advanced power settings)
The only thing to fix this IMHO is to let boot0 ignore active partitions and search for boot1h
in a different way.
Maybe one could make a boot1h ID like this (pseudo ASM):
jmp .start
data magic number
.start
and let boot0 search for the magic number on all MBR partitions, ignoring the active flag.
(for a single HFS partition on the disk this is almost built into boot0 already, you have just
to disable the search for an active partition UNTESTET)
So.
Now I'd like to hear some feedback.