Joe van Tunen - 2011-09-26

The current release version of rEFIt (0.14) will properly detect Boot Camp partitions on multiple drives but it will not properly boot a partition that is on a disk that is not the one that contained the Boot Camp partition that was last selected for booting by Startup Disk preferences or Boot Camp Assistant or the bless command.

Startup Disk preferences won't show the partition if it doesn't have certain Windows boot files on it so you may need to use the bless command.
sudo bless --device /dev/disk1s2 --setBoot --legacy --legacydrivehint /dev/disk1

In the above bless command,
--device doesn't really matter because it's not meaningful when --legacy is used.
--legacy requires --setBoot. It tells the Mac that BIOS will be used for booting. This is stored in the "efi-boot-device" NVRAM variable. "efi-boot-device-data" is an encoded version of the same information.
--legacydrivehint requires --legacy. It tells what hard disk the BIOS should use as the first hard disk. This is stored in the "BootCampHD" NVRAM variable.

To boot Mac OS X, use the following bless command (or use Startup Disk preferences panel):
bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot.efi --setBoot

Note that switching booting back to Mac OS X does not remove the setting for the legacydrivehint.

The latest source code for rEFIt (post version 0.14) sets the BootCampHD so that you can boot from Boot Camp partitions that are on any disk. You can recompile it yourself using Windows or try the version I compiled at:

If the problem is not the BootCampHD nvram variable, then there may be something wrong with the way the partitions are setup on your 2nd internal HD. The script at will dump information about your partition setup. The MBR should match partitions in the GPT. The flagged boot partition should have boot code in the first block of the partition. The MBR should have boot code also.