Last weekend, my computer froze up out of the blue, and then refused to boot. Since I got the dreaded “Unmountable boot volume” error, I figured it was the hard drive. My C: drive was a 250GB beast from when I built my first computer in 2005, so it was clearly getting a bit old. I used a diagnostic tool on the Ultimate Boot CD to determine that it had a few bad sectors. Just a few, but every techy knows that once you get a couple, they will spread quickly like a malignant cancer. Thus, it was off to get a new drive.
I bought a new 1TB drive and successfully used Clonezilla to copy the data from the old drive to the new one. Clonezilla isn’t sophisticated enough to allow you to input new partition sizes when you clone from a smaller drive to a larger drive; it simply increases the partition sized proportionally. Since my new drive was four times bigger than my old, all the partitions were four times bigger. That was perfectly fine with me. However, once I rebooted from my new drive, the two non-system partitions showed the right size, but my C drive did not: it showed the old size.
I did some Googling and many sites said it was an error with the Host-Protected Area (HPA). A couple utilities were available to try to “fix” it, but they were unclear and didn’t seem to fix the problem. At that point, I stumbled across another solution: using gparted to update the partition table.
I grabbed my old Ubuntu live CD, booted from it, and used gparted to make a slight change to the C partition: I shrunk it a bit, applied the changes, then put it back to it’s correct size. After booting, voilà! It was finally showing the correct size.
So the TL;DR is this: if you clone a drive to a larger one and it is showing the wrong size in Windows, use gparted to change it slightly and then change it back. All will be well.