Hi ! I would like to know if there are issues to clone my Bootcamp partition onto another mounted disk? I plan to make tests on the second one, and still have the first one untouched. Will they boot as they are exactly identical?
I tried using Winclone to clone a Windows 7 partition to another disk that previously had no Boot Camp partition (no boot code in the MBR, no disk identifier at offset 0x1B8, no partitions in the MBR except the EFI protective partition which covered the entire disk). Winclone successfully restored the image and also added the boot code, created a random disk identifier, and added the first 4 GPT partitions to the MBR and set the active flag of the restored partition.
Note that most Macs can't directly boot Windows from an external drive.
Indeed. Getting a external drive to boot Windows is spotty at best. The Mac firmware (EFI) also has issues with multiple internal drives that have bootcamp partitions and even a drive setup if the bootcamp partition is not within the first 4 partitions.
The firmware can handle multiple internal drives. You just have to make sure the BootCampHD nvram variable points to the hard drive that you want to boot. Startup Preferences does this for you when you select a Windows partition. This also works when you use the Startup Manager (hold option at startup) - Startup Manager shows one Windows option for each hard drive containing an MBR with boot code; it does not list Windows partitions separately.
Note that every Windows partition on the same hard drive will have the same BootCampHD setting - the partition that actually gets booted is the one that has the active flag set in the MBR. That's why people use rEFIt - rEFIt will set the active flag in the MBR of the partition that you select in its menu. The current downloadable rEFIt binary doesn't set the BootCampHD nvram variable but the source code does have code to do that, you just need to recompile it.
The firmware doesn't care where the BootCamp partition is in the GPT table. The partition just needs to be listed in the MBR. rEFIt has an option to sync the MBR to the GPT but it only syncs the first GPT partitions instead of letting you choose. That's why I sync manually with fdisk, or gdisk ("GPT fdisk"), or iPartition.
As for the disk identifier, it looks like I was wrong about it being random. Winclone seems to duplicate the disk identifier from the source of the imaged partition. So what happens if you clone two partitions from two different disks to the same disk? How dependent is Windows on the disk identifier remaining unchanged? Are there registry entries that need to be changed? Does Winclone modify the registry? Is there documentation on what is required to move a Windows partition to a different disk? I successfully cloned Windows 7 but I am having issues with Vista and XP (Vista complains about winload.exe and XP complains about ntoskrnl.exe).
I got my Windows Vista and XP partitions working. I don't know what the problem was. Things I tried were: 1) Reformatted the partitions in iPartition - it automatically reduced the partition size to a certain odd number because (according to a iPartition support person) "NTFS includes a secondary copy of the filesystem metadata at the end of the volume, to enable repair in case the copy at the start of the volume becomes damaged or deleted. Apple's HFS+ filesystem has a similar data structure at the end of the volume, but whereas in HFS+ this secondary volume header does not necessarily need to be at the end of the partition, NTFS does require that this be the case."
2) Reordered the partitions so they matched the order on the original disk.
3) Used EasyBCD to edit the BCD's of each partition (because I did not choose to use the Replace BCD option in Winclone).