Using Linux to upgrade a Windows machine
A rather long post intended for geeks...
The Problem
My father has an elderly Dell Inspiron laptop running Windows 2000. His 4GB hard disk was almost completely full, it was heavily fragmented, it didn't have enough space to do a proper defragment, and it was starting to get quite tricky to install Windows updates etc. It was also crawling because of all the layers of Norton antivirus and firewall stuff that those lucky Windows users need.
So I wanted to replace the disk with a 40GB drive I had taken out of my old Powerbook, and do some tidying up at the same time. Tempting as it would have been to do a fresh installation of the OS and applications on the new disk, that would have been impractical; there were just too many bits. And though I had successfully switched my father-in-law's machine to Linux in the summer, my father is rather more dependent on Microsoft Office at present. So I had to come up with a way to move the current system, intact, to a new disk with a larger partition. This post is really a record, for me, of what I did in case I ever want to repeat it, but in the unlikely event, gentle reader, that you find yourself in a similar situation, the following may be of use to you too...
Getting started
The first thing I did was to get a USB hard disk enclosure so that whichever disk was inside the machine could talk to the one on the outside! I managed to find one for £22 at a local computer store. The laptop only has USB v1, so this wasn't very fast, but it worked fine.
I also had some space on a Firewire drive and an old PCMCIA Firewire adaptor. So I had the idea that I would connect this drive up, image the existing partition onto it, swap the internal disk, restore the image onto the new one, and resize the partition to make use of the new extra space.
This would have been fairly easy on the Mac, where the ability to do things like booting from external devices and creating images of drives all comes as standard. And where, if you want to, you can just copy applications from one drive to another by dragging and dropping. On Windows it's a lot more challenging. I could have bought copies of DriveImage and PartitionMagic. They're good tools and they would have done the job nicely, but I didn't feel like spending too much money when I don't have any other Windows machines and didn't expect this one to live very much longer. And the shops were shut. And besides, there must be a way to do this for free...
Just using Windows?
My first thought was that I could use the Backup program that comes with Windows 2000. I'd backup onto the Firewire drive, put in the new hard disk and install a basic copy of Win2K, then restore from that backup. I did all of this, which took two or three hours, but when I'd finished all sorts of applications wouldn't run. I think, as might be expected, that Windows cannot restore onto the system disk from which it's running. It didn't give me any error messages or anything; it just didn't work properly afterwards. I blame the registry...
So I had to come up with another solution.
Using Linux
I was curious to see how well Linux would run on this machine, so I grabbed my trusty Ubuntu CD, created a small partition at the end of the disk, and installed Ubuntu there, leaving space for an eventual Windows partition before it.
I had never installed Ubuntu on a laptop before, and on this one it was as smooth as you could possibly imagine. Not only did it deduce the somewhat non-standard screen resolution correctly, and work perfectly with the external USB drive, it also had out-of-the-box support for:
- My PCMCIA Firewire card (That really surprised me)
- My old Orinoco PCMCIA wi-fi card
- My old Xircom PCMCIA ethernet card
Comments