Dan Appleman: Kibitzing and Commentary

My personal blog

You’d think getting rid of an old computer would be easy.
Now, if it’s not a very old computer – say, a year or three, it’s easy: just restore the computer from its restore partition or backup DVDs, run a program like Eraser to overwrite the unused space with random data to make sure no personal information is left, and give it to a friend or donate it to a local organization.
But what if it’s a really old computer – say 10 years or so? In that case you have a much bigger problem. Disposing of the hardware itself won’t be hard – your local electronics recycler will be glad to take it off your hands. But that’s the easy part.
I know what you’re thinking. What am I doing with a 10 year old computer? Well, as you know, I run a software company. And we still occasionally get support calls on very old legacy software, which means we need to maintain the ability to debug or build some pretty ancient code. So when a new machine comes in, the previous machine remains frozen in time.
Now you may think you don’t have this problem, but let me ask you – how long have you had a computer? It may well be 10 years or longer. If so, you may have some old documents from back then that you’ve been carefully backing up or copying to your new machines each time you upgraded. But can you read them?

Yes, I know – the file can be read – but can you read or view the contents? When companies upgrade software they often upgrade the file formats. The updated applications can typically convert from previous versions of the file formats, but usually only a few versions back. Even Microsoft does this – For example: Office 2007 can’t open Word documents from 10 years back. And if you used an application that no longer exists, you could be out of luck.

Virtualization to the Rescue

So whether you are software developer, or just want to assure yourself of the ability to read old documents, it’s not enough to backup files from the old system. Fortunately, virtualization technology has reached a level where it is possible to create a virtual image of the original machine. Possible, but not trivial.
In my case, the box was a dual boot Windows 98 and NT4 box. Creating a working image took the following steps:

  • Create a Ghost image of the disk using Ghost 2003
  • Create a new virtual hard drive, then using an existing virtual machine, copy the image to the vhd.
  • Create a new virtual PC and drive, then attach the vhd containing the ghost images.
  • Restore the partitions to the new vhd, and create a new partition (you’ll see why soon)
  • Dig through MSDN to find a Windows 98
  • Boot into Windows 98 on the virtual pc. Go through numerous cycles of “found new hardware” until it finally boots.
  • Boot into Windows NT – watch it fail miserably in numerous ways (blue screen of death, reboots, freezes, etc. – NT4 does not handle hardware changes well).
  • Dig through MSDN to find an NT4 CD and an NT4 service pack CD
  • Boot back into Windows 98, and in a DOS window create a set of NT4 startup disks
  • Boot the NT4 startup disks and install a new NT4 on the empty partition.
  • Install the latest service pack.
  • Write down the video driver and network driver used by the clean install.
  • From the new NT4 OS, navigate to the system32 directory of the one you’re trying to bring up.
  • Backup the Drivers subdirectory and copy over the one from the current OS.
  • Backup the system32 directory files, then copy any files from the current system32 directory that are newer than those on the partition you’re trying to bring up (windiff can help identify the files).
  • Boot into the restored NT4. With luck it will now boot.
  • Install the display and network drivers based on the information you wrote down earlier.

It’s a lot of work – almost as much as bringing up a new machine. And if you’re fortunate enough to be converting a newer OS, things should be much easier. But though annoying, the investment offers valuable insurance for the future.

What, more backups?

That backs up the hard drives and operating environment, but remember, this is a very old machine. That means old hardware – including a tape drive and a Jazz drive (a removable hard drive device that uses 1GB cartridges). The Jazz drive still worked so I was able to back up all of the cartridges. The tape drive did its best, but whether it was the drive or the 10 year old tapes, there was little luck there. Fortunately, the tapes were just backups so did not contain anything important (I hope).

Back to the Hardware

The hard work done, now all that’s left is the final preparation for disposal. Removing the hard drives for erasing is a first step (though you can avoid this by using a recycler you trust to shred the drives). In my case I also had to pull and store the graphic card. Why? because this machine used an old Matrox Rainbow Runner card. This card enabled video editing, but used its own proprietary hardware video encoding (remember, machines back then weren’t fast enough to handle CPU video encoding and decoding). A few years back I converted a bunch of old videos on that machine to MPG, so I don’t think I’ll ever need that card again, but I’ve archived it just in case, and Matrox does have legacy drivers on their web site just in case.
All that’s left is erasing the old drives. I generally use the Eraser program (from sourceforge.net) to overwrite the drive with random data. If I can’t access the drive, I open it and physically damage the platters (along with running a strong permanent magnet over them). The old Jazz cartridges got the physical treatment, as did the now unusable tape cartridges.
So after (too many) hours, with data destroyed, the system is finally ready for the recycler. It’s seen loyal service, but I can let it go peacefully, as it’s spirit (in the form of a virtual image) will always be there if I need it.