I have a WinXP based laptop with pretty basic hardware configuration by today's standards. I am planning to upgrade to a WinXP based laptop with a lot better hardware.

The problem: My current laptop has truck loads of software like cygwin, perl, ruby etc. Installing each software manually is going to be pretty cumbersome. Not to mention customizing the packages.

Is there any software (freeware or commercial, both okay) that can migrate my current programming environment with minimum fuss?

  • 9
    One thing: are you SURE you want to go with XP for the new system? Current claims from MS are that extended support will be until 2014, but it might be wise to consider upgrading before the last moment. Jan 28, 2011 at 14:47
  • @Michael: I'd upgrade, post 2012.
    – Fanatic23
    Jan 28, 2011 at 14:50
  • 1
    Did you install the current software manually? If yes, then just bite the bullet and do it again.
    – user1249
    Jan 28, 2011 at 15:32
  • 2
    Wait? Notepad has to be migrated? :)
    – MVCylon
    Jan 28, 2011 at 16:00
  • If you are bothering to upgrade the hardware you need to update the OS at this point. How far out is your system? Not like you could meet common RAM standards on XP not to mention XP is out of support soon...
    – Rig
    Apr 1, 2012 at 5:25

9 Answers 9


A new computer means a great opportunity to verify that your work environment is reproducible. What if your current hard disk got trashed or stolen? During a move to clean you'll find out about the installation CDs that got lost or damaged, the software that has been deprecated, and other quirks in your setup.

The new hard disk will likely have double or more capacity than the previous one, so I agree with the recommendation of doing a clean install, and copying the complete contents of the old disc to a directory in the new one.

I also agree that is time to leave WinXP behind, at least as the main OS.

To answer your question, the tools you need are gparted and VirtualBox. With gparted you can transfer an image of the old disk to the new one, and then transfer that image to a VirtualBox virtual disk. I was going to write the steps (I did it once), but I don't remember them exactly, and I have no notes (if I had them, they would be for a new system that boots to Linux).

P.S. A new computer is a good opportunity to reserve a partition for Linux. Experimentation is a good enough excuse, but a more urgent one is that the tools for replication, redundancy, backup, translation, and transformation are readily available in Linux, and they are free. Why not a virtualized Linux? Because some of the tasks require more low level access to the hardware. My last computer upgrade was to Linux as base OS, and everything (WinXP included) works as I want it.

P.P.S With the requested details

  1. With Linux on the receiving side, the tools in gparted live (and other migration and recovry live CDs) will let you transfer an image of the old disk to the receiving end through the network. The time it takes doesn't matter, because it's unattended. It's the first thing I do when friends come to me with what has symptoms of an agonizing hard disk.
  2. The images created can be transferred to a partition that has the same or grater size, on any disk, or can be backed up to optical media.
  3. If you reserve a bootable partition for Linux on the new machine, then you can give it very little disk space, because it will be able to use the NTFS partitions to store large stuff, like disk images.
  4. gparted will handle transfers between partitions of different sizes.
  5. A virtualized WinXP sucks if you need access to special hardware (graphics, pen tablets, etc.), but works perfectly for programming if the base OS is Linux. That was my WinXP setup until recent versions of wine let me run everything I need (Delphi7 is one) without booting the virtual WinXP.
  6. The details that are not in my memory, are readily available on the Web. That's probably why I didn't keep notes.

To be honest, switching to Ubuntu as the main OS took three months of weekends to verify that it could work, a couple of days to do the backups and the switch, and six more months until I came to rarely booting XP. My development tools are Java, Eclipse, Python and PyDev, Java, gfortran (Intel Fortran is available too), Web (HTML, CSS, JavaScript), Subversion, Mercurial, and Delphi7 for a legacy app. I ditched word processors in favor of structured plain-text, bu there's nothing that compares to MS Excel. For everything else, I've found several ready-to-try options over Linux, some of them the best.

In the end, even if I had stuck with WinXP, my experience is that the process of setting up a new work computer from scratch is GOOD. It is provably false that you know where you're standing, or that you can quickly recover from the unforseen until you do it.

  • +1. Please share more details about the migration process.
    – Fanatic23
    Jan 28, 2011 at 15:30
  • Absolutely. Make your setup as Out-of-the-box as possible. Keep your source code in a separate repository as well. then you just check out the project to your new PC.
    – MVCylon
    Jan 28, 2011 at 15:52
  • 1
    @Doug Chamberlain Youtube has a presentation by Linus Torvalds supposedly about GIT, but actually about common-sense configuration management. One of his statements is "I don't do backups because I don't need them". Recommended!
    – Apalala
    Jan 28, 2011 at 16:03

I've always prefered to do clean installs of all my dev tools on every new system. It's a bit of a hassle, but it helps to point out which tools I've got that I simply don't use anymore (I do a LOT of different things, programming-wise, so my selection of tools is constantly mutating). In general I find that my systems accumulate cruft over time, and an upgrade is a good moment to clean them out.

My usual approach is to put the contents of the old system (less the windows folder) onto the new system in an 'old HD' folder. Then, when I need some data file or whatnot, I hunt through the old HD and move the thing up to the proper documents folder.

  • 4
    +1: Clean install. Also "Not to mention customizing the packages" is a bad habit. Learn to work from a clean install.
    – S.Lott
    Jan 28, 2011 at 15:08
  • 1
    I've worked on macs for years, and Apple does a fairly decent job of automatically migrating everything from one computer to the next. I still prefer to restart from scratch - I look at the upgrade as an opportunity to review my setup, perform a general clean up/dispose of garbage, find new improvements, implement changes that I've been meaning to get to but never get time for. It's like spring cleaning for my digital life. Jan 28, 2011 at 15:54

You could give a try to virtulization. We are using this setup for a few months with good results:

  • a laptop with basic office tools.
  • a dedicated internal HD for VMs images. (on some laptop, you can replace the dvd unit with a hd)
  • a VM dedicated to dev with all dev tools pre-installed. (would still recommend a fresh install to create a first VM, than migrating your older system. But you could virtualize your system for comparison purpose)

We find it easier to get clean installs really quickly, as sometimes development machines gets "dirty" with test tools, or older tools that are no longer needed. The office part of the machine is pretty stable and doesnt need refresh quite as often.

Edit :

Given this setup you get two scenarios :

  • Quick and dirty virtualization : Virtualize your old system, and use it for development in a VM on the new laptop.
  • Long-term virtualization : Create a fresh install VM, to use and reuse in a VM on the laptop.
  • Not sure how this setup helps migration. Could you please elaborate?
    – Fanatic23
    Jan 28, 2011 at 15:29
  • @Fanatic23 : Given precisions for migrations scenarii. Hope it helps :)
    – Matthieu
    Jan 28, 2011 at 15:34

Windows provides the File and Settings Transfer wizard (or FAST) which brings over your profile and all the personal settings you had on your previous machine. Also once the wizard is completed it tells you what software you had installed and would want to install on the new machine.

As an ubergeek, I've purchased a rack-mountable server (Sun Fire X4150), and installed Windows Server 2008R2 with hyper-v, a domain controller, dhcp, dns, TFS 2010, SQL 2008, and Systems Center running on one box.

I've taken the time to create application packages on System Center so I can one-click deploy any app that I need. (Office, VS, Resharper, etc. etc.). When I build a new box, I just select the apps that I want to deploy and let System Center do its magic.


Do you care about your user profile? If not, and it's just the software you care about, pull the old hard drive out and either stick it in a spare slot or (more likely) put it in an external enclosure. That way you can copy software to your heart's content or even run it from that drive.

If you care about migrating your old user profile, that could get messier. I'm sure there are utilities out there, but from the little I know about Windows it's nowhere near as simple as just copying a directory over.

  • External HDD is an option, but to carry it around would be an issue with me. I do need to migrate my user profile.
    – Fanatic23
    Jan 28, 2011 at 14:42
  • You could, however, copy the software you need and not carry the drive. That won't save your profile without a utility, though. Jan 28, 2011 at 15:02

My advice won't do you any good now, but for the next time (which is about to happen) make a clean install and immediately after make an image of the system partition (before you begin to work with it and bring garbage). When you will be moving to a new laptop, just restore from the image and install the necessary drivers for your new hardware.

And do not install XP now. By the time you get another new laptop, there won't be any support or drivers for this OS with quite a strong likelihood.

  • What about the individual software configurations that I install after the OS? Is there any specific tool you would recommend for making an image of the system partition?
    – Fanatic23
    Jan 28, 2011 at 15:17
  • Install OS, install your tools then make a snapshot. I personally use Norton Ghost, but there are other products available.
    – user8685
    Jan 28, 2011 at 15:30

In the future consider putting your tools in CM. I find this easier for Linux; it isn't practical for Windows. Then deploying my tools on a new machine is a sync and maybe setting a license file.


Uninstall the plug and play adapter in device manager and shut down the computer. Move the hard drive across and power up. Done.

Alternately boot from optical media and image the old drive onto the new one. You may have a problem if you go from ide to sata using this method.


I have found that the tedious part of setting up a new system is not installing and configuring everything, but finding all the software and documentation, and remembering how to set everything up.

Enter Evernote. I simply created a note and listed each step with everything I need to remember. This note is available from any computer or device.

Also I keep a copy of all the software installers (and secret codes) in one place (like an external drive). You can even copy installers from a CD and put them in the folder (although CD install software is disappearing...).

Then, setting up a new computer is a breeze, just a few hours that go smoothly, instead of an all-day searching and trying to remember annoyance.

Also, with an SSD, installers run about 5 times faster, so the actual waiting time is minimal.

Finally, you may need to set up a new computer more often than you think. If a hard drive fails, or your laptop gets lost/stolen, or the system gets corrupt, then you can go through this process.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.