Update: In addition to this post, check out my guide on customizing custom-ocs.
In a previous post, I talked about using disk imaging software for setting up Windows in a corporate environment. For years, I’ve used Symantec Ghost, specifically Ghost 8. I’d previously manually run Ghost from a network drive, booting from a custom floppy bootdisk with a DOS Novell client to allow me to log into our network (we still use Novell). A couple of years ago, I switched to running Ghost from an external USB hard drive that stored all the image files. To make it even more automatic, I wrote a tiny utility in assembly that reads the model info from the computer’s BIOS and uses the correct image file.
As time went on, though, the shortcomings of Ghost became apparent. The biggest one is speed: by running Ghost in a DOS environment, I was limited to USB 1.1 speeds. Ghosting a 20 GB Windows 7 partition would take around 40 minutes. When you are ghosting many machines at once, the quicker you can do it, the better. I knew of a great, free alternative in Clonezilla, but would it work for what I needed?
I have been using Clonezilla for backing up my home computer for a while, but running it in interactive mode once every month or two is a lot different from running it constantly (I only use Clonezilla at home to back up my Windows partition; my data is backed up daily using WinRAR). Most important was the ability to detect the model that the external drive was plugged into so it could grab the right image. My DOS COM file wouldn’t run under Linux, so I either needed to port it over, or find an alternative.
After a short foray into assembly programming in Linux, I figured that somebody smarter than me would have figured this out before, and I was right: dmidecode will pull that information from the BIOS, no problem. After fiddling around with a shell script, I was able to get the model information from the BIOS and automatically select the image. It took a few days to work out all the kinks, since my Linux expertise is very low, but I was able to get everything to work.
The results? Creating a disk image was sped up by a factor of two or three, and putting that image back onto a disk by a factor of four or five. Being able to put an image on a computer in less than ten minutes makes a big difference.
The only difference between Ghost and Clonezilla is that Clonezilla does not have a utility to change the Windows computer name and SID after the image is put onto the disk. In the past, it was considered that needing to change the SID was required or else all sorts of network errors would happen, so we used Symantec Ghostwalker to do so. However, even Microsoft says that it’s not necessary anymore, so we’ll give it a try. We aren’t in a Windows domain environment anyway, so it shouldn’t cause too many problems. Plus, we change the computer name manually as a matter of course regardless.
I always try to use free, open-source software whenever I can, and getting Clonezilla to do what I need it to do was a real victory.
Edit: check out my update.