Sunday, December 20, 2009

Imaging / Fixing my laptop

Two and a half months plus after my hard drive on my laptop failed, the ordeal is finally (mostly) over. I've recovered nearly all of my data, except for the 2-3 weeks right before the crash. I still haven't tried restoring my XP partition; despite the data on there, it's just not a challenge I'm ready to face yet. However, after much trial, tribulation, difficulty, despair, and delay, it's finally back to working condition. Through it, I learned some valuable lessons, so I'd like to share some of my experiences in the tiny hope that it might help someone else.

First, my solution is backup using Acronis TrueImage 11 and Windows Vista (also XP, although as mentioned, I haven't gotten to that yet). It seems to be a great solution; easy to set up and, once you know all the caveats, capable of restoring very effectively, so that even software like Microsoft Office, which can be somewhat temperamental with moving/cloning, works just fine. However, these caveats combined with my busy schedule meant that I spent more than two months without real access to my old data and with a pretty much unusable laptop.

By far the biggest caveat is to know what you're doing with drive letters. Specifically, Microsoft recommends to never change the drive letter of a Windows install, and I think they're right. Long story short(ish): you will need to make every attempt to restore to the same drive letter as the original, and even then you may still have to manually change the system drive letter. There might be an easier or faster way, but what I ended up doing (which worked for me) was: make a recovery partition (accidentally named C:), make a second recovery partition at D:, remove the C: label from the other recovery partition (and format that partition), format and the partition you want to restore onto, give that partition the C drive letter, restore to that partition (TrueImage should show in the restore process that you're restoring C: to C:), then boot into the restored Windows.

Once I booted, I discovered that the drive letters were still messed in the restored Windows. This led to me using a bit of a hack to get a command shell to come up without logging into windows, so that I could edit the registry (read: use regedit) to set the system drive letter. Basically, the idea was replacing the sticky keys executable with cmd.exe so that using sticky keys popped up a command prompt. If you can't figure out how to do this by Googling, leave a comment and I can probably point you to some helpful web resources. After getting the command prompt up, I launched regedit and changed the system drive letter back to C: (again, if you're having trouble figuring out how to set the system drive letter, leave a comment and I can point you there). Now, my system drive letter and the drive letter Windows was expecting were back in alignment, and things seemed to be mostly back. I could login, my old desktop and icons popped up, etc. Phew!

Another caveat: Validating Windows. Even though this Windows install was properly validated, and I restored to the same hardware (except for a large HD), my windows unvalidated itself and refused to validate online. A quick call to the telephone support line resolved this problem, although I had to go through the phone validation process with a live person, which was slightly tedious, but I was glad because it really wasn't too much hassle.

A final caveat: Windows update. You might have to reset Windows update. Windows update and the Windows Defender update process were giving me issues. I used the fix found here: http://support.microsoft.com/kb/971058 , and now the updaters seem to be working again.

Now, the full story of how I figured this all out (if you're interested): I created a small partition to run the recovery from, then restored to a partition with a different drive letter than it had before (before, it was on the C drive). It appeared to boot just fine, but logging in gave a message like "personalizing your desktop" before going to a blank screen where it would hang for quite a while and then quite back to the login screen. I decided that the proper thing to do at this point would be to try and upgrade to Windows 7, in the hopes that it would replace enough of the broken stuff that I would have a fully functional computing machine. This then led me to an error message about having to have my users, windows, and something else on the same partition...which of course they were. That then led me to an internet search that led me to investigate my environment variables, which revealed a few of them were set to different drive letters.

I googled for a while about how to fix those variables, then, after having fixed them, I tried again...but still got the same error. This led me to the registry...where I discovered that a ton of stuff was hardcoded for drive C. I then (somewhat stupidly) decided to use a registry utility to attempt to automatically change every instance of C: to the new drive letter. It was pretty ridiculous. I finally got to the point where I could log in to a very broken windows, where I was able to launch the Windows 7 installer and get past the warnings about the data on different partitions. However, I got a message about having to uninstall my older version of McAfee first. Windows installer was unfortunately one of the things that was still broken, and after multiple attempts to fix the installer and a look at the effort it would take to manually uninstall (and coming to terms with the idea that installing Windows 7 would likely not fix everything that was broken), I finally came to the idea of creating another recovery partition. Previously, I wasn't able to use C: for the restored partition, because the recovery partition used that. However, creating and installing Vista on another recovery partition would allow me to delete the old one and use the C: drive letter for the restored data. That's finally what I ended up doing, as described above, and it seems to have worked successfully.

Was that longer than needed? Probably, yeah. But, I put a lot of time into figuring out the solution, so I figured I should get something out of it, even if it's just a boring long story on a blog.