Saturday, September 01, 2007

The MBP w/ BootCamp Seamless HDD Upgrade

When I got my MacBook Pro (2.33GHz C2D), the biggest 7200rpm drive that Apple offered was too dang small for my tastes, so I opted for the (cheaper) 5400rpm 160GB drive. I had everything configured nicely, but had only carved off 18GB (NTFS) for my XP Pro BootCamp partition. Well, when one game (TOCA 3, which I absolutely refuse to uninstall) sucks up ~6GB of that space, that obviously isn't going to be adequate. Also, since I like to produce vacation videos to commemorate my travels, I need a significant amount of working space on the OS X (HFS+) partition, and didn't want to sacrifice the ability to work a good-sized project without having one of my external drives tethered.

The Problem
I wanted to execute the HDD upgrade -- gaining more space for both OS options, and switching to a 7200rpm mechanism to help whilst performing the aforementioned untethered video work, Photoshop activities, et.al.; however, I would consider a requirement of performing a reinstallation of either OS to constitute failure.

The Hardware for the Solution
First I went to OWC, and procured their Mercury On-the-Go 2.5" SATA external enclosure. I opted for the USB 2.0 / eSATA combo version; after giving strong consideration between the FW800 and eSATA options, I chose the more future-proof eSATA version. After looking at the prices of the versions that included a drive, I realized that I could go to NewEgg and get the Hitachi 7200rpm 200GB SATA-2 2.5" drive (including shipping) while still saving a significant chunk of money vs. the pre-assembled drive from OWC.

The Software for the Solution
I needed a way to replicate or image both OS X and Windows XP. A couple of seconds of Google Search action resulted in finding SuperDuper!, which appeared to fit the bill nicely for my OS X duplication and future bootability requirements.

Since I've been a "PC Guy" for a long time, I had a licensed copy of Symantec's Norton Ghost laying around, and thought that it may meet my needs on the XP side. But, alas, that would have been too easy -- the version I had (Ghost 2003, a.k.a. version 9.0) didn't support the GPT partition scheme, and couldn't make a partition image of the XP BootCamp partition. I had another brilliant idea, and tried to execute the Ghost imaging process from within VMWare Fusion, but Ghost couldn't see the C: drive via the VMWare driver (Curiously, it could see my external drive -- close, but no cigar...) I couldn't see any clear indication that the current Ghost 12 package would resolve this for me, and they wanted $50 (upgrade price) just for the chance to try -- no thanks, I just spent enough hard-earned cash on the hardware... There are also some widely-discussed problems trying to use a *.DMG disk image from OS X's Disk Utility to successfully image BootCamp, so I started the Windows phase of the game with 2 strikes...

Luckily, there are some clever folks out there who know how to leverage tools that have been in development for quite some time and make them accomplish new tasks. Enter WinClone, which is heavily based on the hard work by the good folks at the Linux-NTFS project. This little gem lets you save off an image of your NTFS partition and restore it to another partition. The use of the ntfstools is executed nicely, and WinClone manages to pull off the restoration in a way that continues to make BootCamp happy and bootable.

High-Level Description of the Process
  1. Gather all the required HW and SW for the process
  2. Install the replacement HDD in the enclosure, attach the enclosure to the MBP via USB
  3. "Initialize" the new drive: make a single partition that consumes the whole disk (we'll make the new BootCamp partion later), format it as HFS+, and name it "Macintosh HD" (because we're shooting for a seamless transition)
  4. Use SuperDuper! to make a full and bootable copy using the Backup -- All Files method
  5. Reboot, hold in the "Option / Alt" key, and boot from the newly-cloned drive to make sure it works.
  6. (Optional) Reboot back to the original internal HDD for now.
  7. Run WinClone, create an image file from your BootCamp partition (mine was the 3rd partition -- or slice -- on the first disk on my MBP, namely /dev/disk0s3), and save it as a file somewhere that you'll be able to access later (I would suggest one of your HFS+ partitions, and the clone is a good choice for this purpose, because you won't have to tether an external drive to restore it).
  8. Shut down the computer completely, and prepare for the disassembly. I used a #000 Philips and a T6 Torx driver to perform the dirty work. You can refer to the ExtremeTech or iFixIt guides to complete the diasassembly [remove the plethora of itty-bitty screws that are required to remove the palmrest / top cover (4 on one side, 4 on the other side, 4 on the bottom, 2 on the back, 2 near the memory cover, 2 under the front lip beneath the battery, etc...), disconnect the keyboard/trackpad cable, and remove the drive (2 more screws, some tape, and an interface cable).] Needless to say, use your brain to avoid ESD zapping of your computer's sensitive and/or delicate parts... Note: There were some minor differences between my MBP and the first-gen model used in the iFixIt guide, but they were farily trivial (e.g. no bluetooth board, and different HDD mounting assembly on the right-hand side).
  9. Take the replacement drive out of the external enclosure, migrate the HDD mounting bushings (and / or brackets on other systems) to the replacement drive, install the replacement drive into the system, and put the bloody thing back together...
  10. Boot to your migrated OS X system (if you haven't been following along , you may be horrified that you --temporarily -- have no BootCamp partition). Since you tested it in step 5, you should already know that this will just work. Thanks, again, to SuperDuper! for making this so part of the migration so dang easy.
  11. Run BootCamp Assistant and carve off a new BootCamp partition on your new internal HDD (I chose 45GB this time, because I want more than 2 games on my Windows XP installation).
  12. Start the Windows installation, and get past where you've formatted the C: drive as NTFS. Note: you don't have to finish the Windows installation.
  13. Reboot back into OS X, and run WinClone to restore from the file created in step 7 to your newly-created BootCamp partition (now you can clearly see why I suggested storing the file on the new drive).
  14. Reboot, hold "Option / Alt", boot to Windows, let it run chkdsk, then repeat to complete the Windows portion of the migration.
  15. Grab a cold one, and enjoy...
Getting VMWare Fusion to Recognize the Change
After the upgrade, VMWare Fusion couldn't start the VM that was based on the physical BootCamp partition, because the partition table was different. It recommended removing and re-adding the disk to the VM config file, but there's an easier way. I simply deleted the VM config file (/Users/[your_user]/Library/Application Support/VMWare Fusion/Virtual Machines/Boot Camp/[your /dev/disk#]/Boot Camp partition.vmwarevm), and then let VMWare Fusion rebuild the VM file... That did the trick, and I just hit cancel to avoid re-installing the VMWare tools (since they're already installed).

Mission Accomplished!
That's it: a few hours of time resulted in more space for both OS environments, and a little more speed as well. I also accomplished my prime objective of not having to reinstall either OS, re-apply any customizations, re-download any tools, etc... Oh, yeah, and I walk away with a pretty sweet 160GB bus-powered USB 2.0 HDD that happens to also support connection via eSATA.

No comments: