Recently I upgraded to a newer laptop, and considered to virtualize my old laptop, because there are so many settings for software development, that are not easily copied. This includes search paths that depend on the drive configuration, installation of tools (cygwin etc.), and many other things. In order to be 100% productive at all times, I simply need the old laptop to be available until the new one is 100% ok.
This is possible using VMware and VirtualBox, but there was no full description of prerequisites and consequences, so I just went ahead with the solution that seemed simplest: Using VMware converter and VMware player. This is a short resume.
VMware converter can convert a physical PC into a VMware image, ready to be played inside VMware player. This enables access to your old PC from the new PC, in a window, which can be great until you have moved all the settings, files, and installed all apps onto the new PC. The first thing you need to do is to identify a PC that is suitable to receive the result of the conversion. It must:
* Have enough free harddisk space to keep the image of the old computer. If your old laptop had a 100GB harddisk with 70GB allocated (30GB free disk space), you should have at least 80GB available.
* Have the ability to share a directory as a windows file share. Not all PCs are set up for this.
* Have the ability to let the VMware converter app listen on port 80 and port 443. It is possible to use other ports, if you already have a webserver installed.
* It should use wired network, because then it only takes hours instead of days.
Your old computer should also use wired network, of course, and have a wired power connection (not running on battery) before starting. You need to install the VMware converter on both computers, and then the rest is rather easy: It is installed as a service on the "server" and on the old PC you are guided through the process. After a while, maybe 30 minutes, a progress indicator will tell you how long the entire process takes.
My old laptop was fully TrueCrypt encrypted, and I chose to unencrypt it before the conversion, just to make sure that it did not interfer with the conversion process. I am not sure that this is necessary, though.
When the process is finished, you have 2 files on the server, and you can uninstall the converter again. You can then move the files to your new PC, install VMware Player, and start using it. My old laptop was using Windows XP, and when I started it, it used 640x480 resolution in 256 bit color or something like that, and required to be re-activated. It took ages for it to load, but after installing VMware tools, it worked smoothly and nicely, with full screen resolution and full color, except that the bridges VMware networks connections did not always work. After switching to VMware NAT connections, that problem was solved.
Windows XP has to be reactivated within 3 days after doing this, because of the significant changes in hardware. I reconfigured the amount of RAM it should use, CPU settings, hardware settings etc., so that I had the final hardware configuration before reactivating Windows XP over the internet. That worked perfectly, and I could archive the old laptop. After a week, when I was completely sure that everything worked perfectly, that I didn't miss anything important, I retrieved the old laptop and wiped it by installing Ubuntu.
Except for the bridged networking problem, that was easily solved by switching to NAT, and the lack of pre-process documentation, everything went perfectly. I will do this again next time.
From the article:
"If your old laptop had a 100MB harddisk with 70MB allocated (30MB free disk space), you should have at least 80MB available."
Exactly how old is this laptop computer? Does it have i386, monochrome LCD, weigh 10kg, and is of 1990 vintage? ;-)
Surely it must be MB -> GB.
Beside this, nice trick to use the VMWare converter.
Oops... that was meant to be GB, of course :-) Thanks for the comment (!), I have now changed the original blog post to use GB instead of MB.
VMWare the independent developer's best friend. I have a dedicated VM for each of my clients. It's great being able to pause and resume them days or weeks later exactly where I left off last time.
Plus whenever I deploy a significant new version I snapshot or clone the VM at that point. Having the exact same development environment you used to build a particular version is great for resolving bug reports.
I've made a "default" VM for every developpers to start from. Some host it on Windows, some on Linux.
Once your development platform is virtualize, you can easily add developper to the team, change hardware if you need more speed, etc.
No need to install those components, path or anything. Using version control like SVN, it's a charm.
Speed hungry? Buy a real server to run those and watch the magic.
Post a Comment