Using Open Source to Virtualize Old (Ancient) PCs
If you’re like me, you — or your customers — have an excessive number of old PCs lying in your basement or in a storage room. Time to throw those old PCs in the recycling bin? But what if you can’t bear the thought of saying goodbye to those machines forever? Fret not: Using a few open-source tools, you can immortalize those retired PCs as virtual machines without having to hold on to the actual hardware.
I received my first computer, an IBM PS/1, as a gift in 1992. I was in second grade and my previous PC experience was limited to playing around with the Apple IIes (can we even call them PCs?) in my elementary school, so the Windows 3.1 operating system that came installed on my computer was a big deal.
But the years passed, Windows 3.1 went out of style, and I went through a long series of bigger and better machines. My PS/1 was retired to the basement long ago, along with about a half-dozen other PCs that, combined, probably have less computing power than my current cellphone.
I’ll never use that hardware again, and I should get rid of it. But as a computer geek who’s also an aspiring professional historian, the thought of forever losing access to those machines, and all the data they contain, just seems wrong. It would mean surrendering part of the past — even if it’s mostly just my personal path — to the ether, where no one can ever examine it again.
From Deprecation to Virtualization
Luckily, there’s a solution. Using a handful of free, open-source tools, I’ve been able to convert my ancient PCs into virtual machines and boot them on my modern computers. This solution makes it possible not just to access the data stored on the old desktops, but to run them almost exactly as they used to be.
The process is simple. First, I took the hard disks out of my old PCs and connected them to the desktop I use today (which, fortunately, supports SCSI interfaces; otherwise this might have been a problem). Then I used the dd tool, which comes built-in to virtually every Linux distribution, to dump the contents of the disks to raw image files with commands like:
dd if=/dev/sda of=/path/to/files/disk1.img
And then I simply fired up the KVM hypervisor to boot the disk images:
This should work with a variety of other virtualization platforms as well, such as VMware and VirtualBox, but KVM proved simplest since it’s only a quick apt-get away on Ubuntu. It also conveniently supports raw disk images out-of-the-box, whereas most other hypervisors generally require proprietary disk formats.
Here’s a look at my PS/1 in action, complete with all my favorite apps from childhood:
Of course, there are some catches. Sound doesn’t work on some of my virtual machines, and the image from my Windows 98 PC will boot only in safe mode. Internet connectivity is also non-functional in Windows 3.1. I could probably sort out all of these issues if I spent time on them, but I haven’t bothered because I don’t care that much.
Nonetheless, despite its imperfections, this process demonstrates the power and flexibility of the open-source tools that are freely available in most modern desktop Linux distributions. They’re not only cool from a geek’s standpoint, but also hold real value for preserving information in ways that assure its availability even after the hardware on which it originally lived has disappeared forever — an issue which is destined only to become more and more significant as the age of the PC continues.