Screwing Up Your System and Getting It Back On-Line in Minutes

As a developer and a beta-software fanatic, I tend to install and try out a lot of software. Some of it works well and adds value to my "developer toolkit". However, quite often the software is too buggy to work with, has a negative impact on my system's performance or leaves traces when uninstalled. Additionally, just using Windows and the installed applications tends to slow down a system after some time as well. Since having a speedy and responsive system is important for a productive developer, you need to find ways to keep your machine as fast as possible.

Over the years I found a good way to minimize the impact of these applications and Windows usage, enabling me to get my machine back in a clean state in just a few minutes. How?

Maintaining a Lean, Mean and Clean Development Machine

Rather than spending time and money on tools that are able to clean and speed up your machine after it's been messed up, it's better to get a completely clean machine every now and then. However, reinstalling Windows and all your favorite programs and tools can easily take days which is bad for your productivity. Additionally, it isn't the most exciting job to do. Instead of reinstalling over and over, I am using a mechanism where I can always start with a clean machine.

The trick is to use imaging software such as Norton Ghost or one the many free imaging tools available. You don't really need to use all of the features these imaging tools bring (I am using none of the features from the bloated Norton suite except for the ancient DOS version of Ghost) as long as they can image a partition or a complete disk in a DOS environment.

So how does it work? Easy; I keep an up-to-date image of my machine that I can restore any time to get back in a clean state. Here's what I do to create the image.

  • When I get a brand new machine for the first time, I partition my disk in a number of partitions and leave one set to FAT32. This will be the partition to hold the image of the Windows partition later.
  • I then install Windows and all the software I use on a day to day basis, such as Office, Visual Studio, the Adobe Web Suite, FTP tools, my Red Gate tools and more.
  • I configure these applications (where possible) to store data not on the primary Windows partition but on my D or E drive, or on the network. This makes it easier to completely wipe the C drive without losing important data.
  • I then tweak each application to work exactly as I want to. E.g. I personalize Windows, create network mappings, change drive letters, install printers, create user accounts, make the necessary changes to the Visual Studio Options dialog, set template paths and other settings in Microsoft Word, enter signatures and filters in Outlook, store my Internet Explorer favorites on the network etc, etc etc. Once I am done, I have a system that is super clean, with just the software I need on a daily basis, configured and tweaked the way I want it.
  • The next step is to clean up a little by clearing the Windows recent items in the Start Menu, files and history in Internet Explorer (if any), delete old Windows Restore Points and so on.
  • With the system completely ready, it's time to take an image of it. I am using a 7-year old DOS version of Norton Ghost which is able to create images of complete disks or of specific partitions only from a DOS environment. Using a handy boot disk that I created years ago I can boot to DOS and run the DOS version of Ghost. (Note: there are many boot disks readily available, such as the Ultimate Boot CD or the Ultimate Boot CD for Windows. I don't use these tools myself so please don't ask questions about them).
  • I use the FAT32 partition to store the image on, as the drive needs to be accessible from a DOS application (as far as I know, there are also tools that can read and write NTFS partitions, I just happen to use one that doesn't).
  • Once the image is done, I can boot my machine again and start using it. Since I now have the confidence of a clean image that can be restored anytime, I can use my system any way I want, installing new beta software without thinking about the possible impact of it.

Restoring the Image

Every few months, it's time to restore the image again and bring back my machine to its clean starting state. Here's what I do to get it back:

  • I make backups of important files on the C drive. Although most of my data is stored on other partitions or on the network, some application insist on storing data on the C drive. I created a simple batch file that copies my files to a backup disk. It takes some time and practice to figure out what you need to back up. I learned that the hard way... ;-) In the beginning, you could create a complete image of the "dirty: Windows environment before you restore the clean image, just in case you need to grab some files later. Over the years, I found out what I need and don't need so I've covered pretty much all files I need in my backups.
  • I then boot into DOS with my boot CD and restore the image I created earlier, wiping out my current and "dirty" system.
  • Once I boot back into Windows, I have the same clean environment I started out with.

Staying Up to Date

Clearly, the image I created at the beginning gets outdated pretty fast. Microsoft releases patches for Windows, Office and other programs. New versions of browsers come out and anti virus software needs updates. During normal use of my system I try to keep a list of changes I make to the system so I can reapply them to my image. However, more often than not I forget that. Immediately after I've restored an image, I go through this list and update the system. Additionally, I install or update whatever comes to mind (or whatever is reported by Windows or other self-updating tools). Once everything is up-to-date again, I create another image that replaces the old one.

From here, the cycle continues. I can use this image later to restore my system again, update it, and create another image that I use to restore my system at a later stage.

A Few Tips

Keep at least two versions of your disc image around. Some time ago I messed up an image by deleting too many Windows installer files to clean up the disk. I didn't notice that until after I create a new image. Fortunately, I still had a previous version that I could restore.

Store as much data as you can on the network or on a separate partition. When following the procedures outlined in this article, you wipe out your complete C drive. You better make sure that drive doesn't contain important files, or at least make sure you back them up before you restore a image.


Use this advise at your own risk. Don't blame me if it blows up your system and deletes all the important files of the project you've been working on for the past 6 months. I can't help you with creating or restoring images, nor with finding lost files again. This article purely serves to give you some ideas on how you can improve your productivity by keeping a clean and lean machine, without reinstalling it every now and then. No warranties whatsoever ;-)

Where to Next?

Wonder where to go next? You can post a comment on this article.

Doc ID 529
Full URL
Short cut
Written by Imar Spaanjaars
Date Posted 05/17/2010 11:33


Talk Back! Comment on Imar.Spaanjaars.Com

I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.

When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.

If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the Doc ID of the document.

(Plain text only; no HTML or code that looks like HTML or XML. In other words, don't use < and >. Also no links allowed.