BootCamp Mac Disk Clone to a Larger HD

Below is my multi-day adventure into cloning my (BootCamped) Mac’s HD onto a larger HD.  I hope this is helpful to someone other than me, as nothing I tried that I found via online searching worked.  This apparently is not nearly as straight-forward as it probably should be, unfortunately.  Not TrueImage, DiskDirector, CopyCatX, VolumeWorks, CampTune, or GParted (or any combination of those that I tried) worked for this.  I’m going to outline the process that I did to get this to work (you’ll need both the Windows 7 and Mac OS X install DVDs, not to mention a couple of blank CDs to burn):

  • First of all, make sure to run a “chkdsk /f” from the command line in your (BootCamp) Windows partition.  It will have to reboot as it won’t be able to lock the drive while it’s in use.
  • Second, you’ll want to boot from the OS X install DVD and run DiskUtil and do a “Repair” (hold down the Option key, it changes the buttons at the top and “Repair” becomes available) on your OS X partition.  This is similar to a chkdsk /f on Windows.
  • Next, I download Clonezilla’s bootable ISO and burned it to a CD and booted it.  Clonezilla is the ONLY solution (and believe me, I tried many, including Paragon’s pay-for solution, CampTune, that proved useless) I have found that will accurately copy/clone and/or resize both the BootCamp/Windows AND the OS X partitions accurately (I know it runs partclone and some other stuff, but it’s got a “wizard” ;).
    • After you have burned Clonezilla, attach your new HD to your computer somehow (I used USB) and then fire up Clonezilla and run it taking all the default options until you get to the “Start_Clonezilla Start Clonezilla” menu option.  Go ahead and start Clonezilla and be sure to choose the source and target HDs properly and choose device-to-device and HD-to-HD for copying.  This will take a few hours to run depending on your HD size.
    • This creates an EXACT duplicate of your ENTIRE HD, the boot, OS X, and BootCamp/Windows partitions, and it worked flawlessly for me.  The issue is that it is indeed exact, my old HD was 500GB and my new 750GB HD was using only 500GB, but both Windows and BootCamp were bootable/working (a major feat in my book).
  • At this point, switch out your old and new HDs so that the new HD is inside the Mac (if you’re just cloning your Boot Camped HD to a new, same sized HD, apparently this should do ya and you’re done.  Read on if cloning to a bigger HD).
  • Now fire up OS X and download and install GPT Fdisk on the Mac side.  Fire up Terminal on your Mac and execute “sudo gdisk”.  Inside of gdisk, type “x” (for expert mode) and hit “Enter”.  Now type “e” (move backup GPT data structures to the end of the disk) and hit “Enter”.   Finally type “w” (Write table to disk and exit) and hit “Enter”.  Those commands just made your Mac’s GPT recognize the full size of your new HD instead of the 500GB (or whatever size your source disk was) size.  I would reboot Mac OS X at this point.
  • Now, inside OS X, fire up DiskUtil and delete your BootCamp partition (yes, it needs to be deleted as far as I can tell, and again, I tried a ton of other stuff).
  • Next, inside of DiskUtil, drag/resize your Mac partition to the full size of your new HD and apply it.
  • Now exit DiskUtil and fire up the BootCamp Assistant and create your BootCamp partition to whatever size you want.  Follow all of the instructions including inserting your Windows 7 installation disk and the click the “Install” button.
  • Follow all of the Windows prompts and do a full install of Windows 7.  Once this is finished, I verified that I could boot my Mac into either OS X or Windows 7 using the Option key at boot time.
  • Now restart the Mac from the Clonezilla CD, but this time take the defaults up through device-to-device and then choose partition-to-partition copy instead of HD-to-HD.  Again be sure to choose the correct source and target partitions.  You will be copying your source BootCamp partition to your new, target BootCamp partition.  The only way to identify which of these partitions is which, will be by the disk they are on, their size and their file system type. When copying your source to target partition, be SURE to select the “–m” (Do not clone the bootloader) option and the –r (Resize the filesystem of the target to fit the partition size) and deselect the “–j2” (Clone the hidden data between MBR and 1st partition) option.  This leaves (most of) the Windows/Mac boot stuff alone and only copies the data in the partition.  This will take a while again (hours for me).
  • At this point, you will still have the ability to boot either Mac OS X or Windows 7 by holding down the Option (Alt) key at boot time on the Mac, but the Windows partition will not boot (it gives a disk read error), which is OK.
  • Now boot from Windows 7 Install DVD and select “Repair” (on the second screen).  It will tell you right away that there is a startup issue that needs to be fixed.  DON’T let if fix it automatically! Just cancel or close this window.  Now from the repair choices, fire up a command prompt and execute each of these commands in order:
    • “Bootrec /fixmbr”
    • “Bootrec /fixboot”
    • “Bootrec /rebuildbcd”
    • “exit”
  • Now cancel out/exit without doing/installing anything else (red X) and do the same for the windows install screen.  This will reboot your computer at which point you can hold down the option key to select to boot into Windows.  Do this and allow Windows to run its chkdsk.
  • At this point you should have working Windows and OS X partitions at their new sizes!  On you Mac, if you don’t see the option in Startup Disk for BootCamp any longer, from what I’ve read online it is usually because you have either Paragon NTFS or NTFS3G installed.  Apparently they need to be removed for the BootCamp disk to reappear.  I have not found/read if you can then reinstall them and the disk stays, but either way, you can always switch OSes using the Option key at boot time method.