Saturday, August 30, 2008

A Tale of Three Partitions

Lately my home PC has had issues, the most annoying of which being that it would fail to install any Windows Installer (.msi) based product unless I dropped to a command line and forced it to install manually using:
runas /user:Administrator "msiexec.exe /i C:\full\path\to\installer.msi"

This was getting really annoying, and I have also been having my 13-in-1 card reader sporadically "go missing". I have a fairly new Dell XPS 710, and it is a pretty sweet machine. I can't complain about this thing as it is built like a tank and it is definitely a luxury model compared to past PCs I've had. Dell really knows how to build a machine.

Anyway, the Windows Installer thing has been bugging me for weeks because I have flexed all of my significant geek muscle trying to fix this problem and have come up empty handed. I was quite proud when I figured out the "runas" workaround (without it all installers just flash up a window and silently fail), but the fact that I cannot fix this problem just drives me nuts. I've tried removing almost every Windows-based component (.NET, Silverlight, etc.) and hacked around in the registry all to no end. So yesterday I decided to buy a second 500GB hard drive, and start from scratch (preserving my significant amount of data on the original 500GB drive).

Last night I started out by downloading a copy of the Linux-based Clonezilla LiveCD, and I used it to successfully clone my old drive to the new one. I knew from previous hacking that there were two other partitions on my hard drive besides my main data partition and I figured these were special Dell system partitions involved in the restore process and further investigation showed that they were in fact partitions containing the Dell diagnostics as well as a ghost image of the factory default WinXP installation. I basically now had two disks containing the following:

+------+--------------+-----------------+
| 47MB | 496GB NTFS | 3GB System |
| Diag | (Windows) | Restore |
+------+--------------+-----------------+

Sure enough, I was able to boot from either drive and ended up with an identical working installation of Windows XP. So the next step was to restore the factory default disk image. I had what I thought was a recovery CD and proceeded to boot from it. It turns out, it was not a recovery CD, but a re-installation CD. I figured there was a chance it would still somehow use the system partitions to install the old factory image onto my 496GB NTFS partition. Well, it installed Windows, but it did not restore the factory install - it just installed Windows. As a result, most of my hardware did not work; not even my network card so I couldn't even access the internet to figure out what to do next!

So I decided to boot from a boot disk and have a look around the third 3GB partition and found there to be a couple batch files and executables (basically Norton Ghost), and a ghost image that *was* a backup of my factory default. I was able to manually run recover.exe and restore the ghost image to my NTFS partition, but when I rebooted I was greeted with an error message that indicated Windows setup was not completed properly and to install again. Weird. At this point I figured there *has* to be a way to restore my machine from this ghost image using Dell's built-in support for this. A little Googling revealed I should be able to simply press Ctrl+F11 after the initial boot screen to initiate the restore procedure. After trying this, I was greeted with the error message Cannot recover. Much more searching and I found this very informative Dell forum thread:
http://www.dellcommunity.com/supportforums/board/message?board.id=dim_other&message.id=274416&query.id=299988#M274416

This ultimately led me to this website which contains a very detailed breakdown of the Dell system partitions, what they contain, and how they are used during the boot process. There are also utilities there for fixing your master boot record code, partition types, and more. Wow, this looked like just the ticket! However, after repairing everything (my MBR code and partition types were messed up during the cloning/re-installing of Windows process) I was still not able to get Dell's built-in recovery procedure to work.

Eventually, I tried resetting the partition types on the original disk to be normal FAT16 and FAT32 partitions (as opposed to special, hidden partitions) using the ptedit.exe utility, then re-cloning them to the new disk with Clonezilla, resetting them *back* to hidden, then attempting to recover by manually running recover.exe, as suggested by the owner of goodell.net in another thread. It was suggested that perhaps the source partitions being configured as odd, hidden types would confuse the cloning software causing things to be cloned incorrectly. Setting the partition types to standard FAT16 and FAT32 types before cloning may alleviate this problem. This time after restoring from the ghost image and rebooting it worked, and I am up and running with a fresh installation of Windows XP (with no Windows Installer issue!). Now to re-install all of the programs I use every day, and slowly migrate my data over from the old drive.

On a positive note, I can't say enough about the build quality of Dell computers. I have 6 SATA ports on my motherboard, and this computer comes with a neatly routed power connection and SATA cable to every drive bay in my machine. Also, every drive bay has a plastic drive carrier inserted in each location. The amount of money you save in not having to purchase cables and plastic bits and baubles alone is staggering. Finally, there are no fasteners required on anything. There is a spring-loaded mechanism on everything so pretty much any drive or component can be removed by pressing a button or sliding a lever. Check this out:



Anyway, here's a big "thank you" to Dan Goodell for his awesome utilities and instructions. You've obviously helped a lot of people with this in the past and you've just helped one more. I owe you a beer!

No comments: