Running out of space on the c: drive that came with my PC, I knew it was time to upgrade. But to get all the data moved over, including the boot partition and the service partition would be a bit tricky. This is Windows, after all. And I wanted to do it without spending $100 on software tools like Norton Ghost and Partition Magic, which would be more than I spent on the drive. So here is what I did.

I temporary installed the new hard drive in my PC, leaving the original C drive there too. I gave a new drive letter assignment (such as “f:”) to this new drive. Then I used Ghost for Linux (G4L) to create partitions on the new hard drive that were exactly the same size as the old hard drive (using Linux fdisk), mark the boot partition as bootable, and do a byte-by-byte copy of data from the old partitions to the new partitions. G4L is a nice tool: download the ISO image, burn a CD, and then boot that CD to come up in Linux with the tool running. The undesirable thing here is that since the partitions on the new drive were exactly the same size as on the old drive, I didn’t have more usable space yet, as the the space improvement I wanted was sitting on the new drive as unallocated space. But I’ll fix that in a moment. If you have more than one partition on your c: drive (i.e., service partition, etc), make sure that the unpartitioned/unallocated space directly follows your main Windows partition (assuming that your main Windows partition is the one you want to grow). If you have another partition besides Windows on your c: drive such as a recovery partition, create those at the end of the new hard drive.

Next was to go into the Local Disk Manager in the Microsoft Management Console (“Manage My Computer”) and remove the drive letter assignment for the new drive, this leaves it with no drive letter. Shutdown the PC, leave the new drive connected, but disconnect the old drive. Simply disconnecting the SATA or IDE cable is fine, you can leave the power cable connected and leave it in the bracket. Then boot Windows. (Make sure your BIOS is configured to include the new drive in the list of bootable devices.) Windows will automatically assign the drive letter “c:” to the new drive, because at this point there is no “c:” drive: the new drive doesn’t have a drive letter assigned and the old drive is no longer visible because it is disconnected. So now I’m running on the new drive, but I haven’t yet been able to take advantage of the bigger capacity since the partitions had been created with the same size as the old drive.

Lastly, I bought a hard drive enclosure for 3.5 inch disks that would let me attach a hard drive via USB. I found this one for $25 that can handle both SATA and IDE hard drives. I removed the new hard drive from my PC and put it in the enclosure. Then I attached the enclosure via USB to another PC that has a valid license for Partition Magic. Even though the drive was externally attached via USB, Partition Magic recognized the drive and I was able to resize the Windows partition to use the adjacent unpartitioned free space on the drive. Partition Magic did its stuff to the partition table in just a couple seconds and now my Windows partition is much bigger and takes advantage of the bigger drive. Take the hard drive out of the enclosure and put it back in the PC. Boot and look at all the nice free space.

Although there is a Linux tool that appears to be an equivalent to Partition Magic, it was unclear to me if it has a good track record with NTFS partitions – I would love for it to do that. Since I had access to a machine with a valid license for Partition Magic, doing the external USB enclosure was easy. If you don’t have access to a valid license of Partition Magic then you probably want to give GParted or QtParted a try. Both of those are graphical front ends to the GNU Parted tool. If they don’t work, you still have the original drive with all the data and can try another tool.

If the drive I wanted to make bigger was not the c: drive, then I wouldn’t have needed G4L or Partition Magic. Just let Windows format the new drive and copy all the files/directories over via Windows Explorer, and change the drive letter. It’s the c: drive that is the tricky one.

I started out with two drives in my PC, one as c: for the operating system, but I immediately installed a d: drive for all the new applications I installed and data files. But with a new digital camera (not to mention 3 iPods in the family), we had an exploding amount of data, so I installed a 3rd drive as e: just for all the pictures as the d: drive got filled up. Now with half a terabyte of disk storage I hope we’ll be OK for another year at least.

(I’ll write a post soon on how I do off-site backups of my important files.)