So, my new 500 GB hard drive arrived the other day. Thus began the 3-part geek tragedy that accompanies any computer upgrade.
First off, let me say that it’s been a while since I’ve done this. The last time I installed a new hard drive in my computer, Ultra DMA was still pretty new – and every hard drive tended to ship with an IDE ribbon cable, just in case.
My first lesson was that this is no longer the case – or at least, it’s not the case with SATA drives, which is of course what my computer uses now. So, when I hunkered down Friday night to install my hard drive, I quickly hit the impasse of “no cable.” Silly me!
To be fair though, I must compliment modern PC designers – or maybe just Dell. This was the simplest hard drive install I’ve ever done. Say what you will about Dell (or mass-produced PCs in general), but they do have some good points. I just slipped out the plastic drive tray, popped the drive in, and slid it back into place. No tools needed. Sweet!
The next day, I hopped over to the nearest store where I could confirm that they had an SATA cable – which turned out to be Radio Shack. Of course they charged $10 for what should’ve been a $3 cable – but of course it was all shiny and colored and probably meant for more of the “case mod” crowd than people like me, but whatever. I got a really good deal on the hard drive to begin with, so I didn’t mind spending a few dollars more for the cable.
The First Signs of Trouble
I snapped the cable into place easily (I’m really liking SATA, BTW) and the drive came online easily. Now I just needed to boot from my GParted LiveCD and copy my partitions onto the new drive, resize them to take advantage of the new space, and I’d be done. Although the resizing would take a while, it should be pretty simple – just set it up, let it run, read a book while it churns, and come back when it’s done. How hard could it be?
The answer, it turns out, is really hard. GParted (or more specifically, NTFSResize) kept saying that I had “bad sectors” on my drive, and because of this it refused to touch my main NTFS windows partition. Ugh.
So, following the advice of the tool, I rebooted and ran CHKDSK… and it found nothing. I booted to the Windows Recovery Console (following advice found online) and ran CHKDSK from there… and it found nothing. I booted into the “utility partition” that came with my Dell and ran the HDD diagnostic tools there – they all said the drive was A-OK. I rebooted, tried GParted again – no luck, it STILL insisted that there were bad sectors. I even ran Seagate’s own “SeaTools” disk diagnostic program – on both drives, with each scan taking several hours – and both drives “passed” the tests, no errors detected. But still, I couldn’t use GParted because NTFSResize kept saying there were bad sectors.
By this point, it was Saturday night and I was getting impatient. “OK,” I said, “screw you, GParted – I’ll just use some other tool to copy the partition, and then resize.” Oh ho ho ho ho, how naive I was to think that I could get away with this!
Trying to Outwit Fate
I used a disk cloning tool to make a copy of my hard drive on the new drive. Naturally, since the new drive was bigger, it didn’t use up all the available space after the copy. I figured that since the new drive was, well, new, it wouldn’t have bad sectors and once the data was copied I’d be able to resize the partitions easily.
This, of course, was not the case.
8 hours later and the copy was complete. I fire up GParted and… NTFSResize stubbornly refused to resize my partition, even though I had made a complete copy a new disk. It still said I had bad sectors.
At this point, I was beginning to wonder exactly how NTFSResize detected these bad sectors. It took over an hour for CHKDSK to do a complete scan, how was NTFSResize, which booted up in just a few seconds, detecting these bad sectors? And did the disk clone really copy the bad sectors as well, or just some partition table information that labeled certain sectors as “bad?”
By this point it was late Sunday afternoon, and my weekend of spare time was quickly running out. So I decided to compromise by using option 2 from my original post – the feature of NTFS “junction” points. It wasn’t ideal, but it would work – mostly.
I booted into Safe Mode and logged in under my seldom-used Administrator account. From there, I copied my entire user profile directory to a temporary location so I had an empty directory to junction with (for obvious reasons, you can only junction to an empty directory).
While I was at this stage, I thought “perhaps 500 GB just for my personal user profile is a bit much – surely I can junction another large folder and split the space into two partitions, perhaps 250 GB for my user profile and 250 GB for, say, “Program Files?” Well, no, actually, you can’t do that, as it turns out. Windows won’t let you rename the Program Files folder (even in Safe Mode), so you can’t use that trick to junction it to a different partition.
This wasn’t a huge setback – my user profile takes up some 60% of the space on my drive, what with movies & music & other such things – but while not ideal, it would work.
So after waiting an hour or so for the new partition to format, I had it linked to my user profile directory. Now to just copy my data back into the folder – which is now a “hard link” to a partition on a different drive. 🙂
A few hours later (hey, it’s a lot of data!) and my profile had been moved to the new junction – effectively, the new drive. I rebooted and everything came up A-OK.
Now, my user profile directory (all of it, not just the “My Documents” folder mind you) is actually located on a physically different hard drive (although it could have been any other partition).
As you can see (click the image for the full-sized picture), my user-profile folder “Keith” even has a distinct icon to show that it is linked to a different hard drive.
What was once a rather cramped 144 GB drive is now 79% free space – plenty of room for growth (new programs, Windows updates, etc.). And my bulky user profile, with its massive music & movie collections, now has plenty of room to grow on that new partition (named “HAL” for personal historical reasons – before Windows introduced the “My Documents” folder, I used to keep documents in a folder called “HAL”).
Those other FAT and FAT32 partitions, in case you are curious, are the utility partitions for Dell – where it has the “recovery & diagnostic tools.” They don’t take up too much space, so I leave them around – and they may come in handy someday.
I would have much preferred to be able to do what I originally set out to do. I’ve used GParted before, and I’ve had nothing but good experiences prior to this. The new drive is (presumably) slightly faster than my old one (bigger cache), and I would have liked to have that slight speed advantage for some of my, you know, programs, or maybe even for Windows itself.
I still wonder what those “bad sectors” were. I suspect that they may have been found long ago, and CHKDSK found them and dutifully marked them as “bad” after recovering data from them. They certainly don’t cause me any trouble – my computer is (knock on wood) quite reliable. Why NTFSResize refused to run is beyond me – perhaps being a little too paranoid about data integrity? And why there isn’t an option to just ignore the errors and continue I’ll never know – these are Linux-based programs, after all. Isn’t that kind of power/option the whole spirit of Linux? (I suppose I could have downloaded the source code to NTFSResize and re-compiled it myself to do what I wanted, but seriously, who has the time?)
I’m not knocking GParted – it’s still my favorite tool for this kind of work. But it was rather frustrating – it did, after all, eat up my entire weekend.
What do you think – was I just unlucky, or is this common when resizing NTFS partitions?
(Image credit to geerlingguy for the Creative Commons licensed image.)