Cloning Many Windows 7 Computers Quickly

(I did this before learning about Clonezilla and Fog. It was all done within two days. If I were to deal with this again, I'd get Clonezilla. See: USB Booting System for Clonezilla SE, Diskless PC.)

I had to clone a large number of machines. Reading the reviews and ads, it seemed like the most popular solutions were Acronis True Image and Symantec Ghost. Unfortunately, it also seemed like they had "enterprise" versions that were closer to what I needed - something focused on cloning over a network. I hate enterprise software. Often, they have restrictions like it needs to be run on Windows Server or some other bullshit. So I looked around some more and found Partimage, a FOSS program that comes included in the KNOPPIX CD.

Reading sales pitches it seemed like imaging was really quick, but occasional articles seemed to say it took a while. Generally, open source websites are honest about things like speed, pain of use, and other problems with their software, so it was a bit easier to comprehend how Partimage would work.

I prepped a computer. Being ignorant of Sysprep, I didn't use it. It might have been useful, but it seems hard to use. Anyway, I didn't use it, and will suffer the consequences.

To prep it, I removed the ton of crapware that the manufacturer and Microsoft install with all new computers: video games, chat crap, Windows Live, the Office preview, and other various links to websites. That slimmed the partition down to 24 gigs. Egads. I was honestly unable to figure out what was consuming all that space.

I ran defrag to condense the file system. Partimage's website said to do it. They also claim NTFS support is experimental, but users reported success with NTFS.

Then you shut the computer down, and boot with KNOPPIX. You then use Partimage to write the image out to a server. This took a while, and resulted in a 6 gigabyte image file. Not bad.

It takes 15 minutes to copy the image file to a computer over a (slow) 100 Mbps network. However, when it comes to re-imaging a computer, it's not the network that's the bottleneck - the compressed image is written to the full 24 gigs of disk, so the disk write speed is the bottleneck. It takes 45+ minutes to write the partition.

When you're installing the image onto multiple computers, you are limited by the disk read speed. Normally, the disk write speed limit will keep the network utilization below 100%, but disk reads are a lot faster. So, multiple computers will cause the network to be used at 100%.

The way to handle these bottlenecks is parallelism. Don't restore from a central server. Instead, turn a bunch of computers into servers. Install the partition image file onto each. Give each a static IP address. Turn off the firewall, and make the server publicly accessible over Windows networking.

You should set aside around 1/10 of your computers to be servers. That means if you have 50 computers, set aside 5 computers as servers.

Then, break up your network into smaller, independent networks. Each ad-hoc server will handle up to 4 or 5 clients.

Small 5 and 8 port desktop switches will not work for this project. They're too wimpy, and tend to "reset" under load and lower performance. Better to use larger switched hubs with lots of memory. Put 10 or more computers on each network. Add one server per 4 computers.

Assign someone to make duplicates of the KNOPPIX CD. Make enough CDs to boot 1/3 to 1/2 of the network.

Expect to spend a few hours preparing these CDs and creating servers. To speed things up, remember to "go parallel". First, you copy the image from the server or USB to a computer. Then you copy from both those computers, and end up with four computers. Repeat again to create eight computers.

BTW, I found that CD RWs took longer to burn, but booted more reliably, than CD-Rs.

Next, use the CDs to boot up. Mount the shared server resource, and run Partimage to install the image. Each install will take an hour, but you can do 2 to 4 in parallel, and take it down to an average of 20 minutes per install.

Because you have multiple servers, you can achieve parallelism. If you have prepared two networks, four servers, and sixteen workstations to install, you can complete the task in around 90 minutes. The important fact is that you have to prep the servers and CDs - you need to spend a half hour copying files, and at least an hour burning KNOPPIX CDs. So the entire task takes three hours - but as you scale up, the overhead time improves, and the image installation time also improves. It'll take longer, but each minute of prep pays off greater during the image installation.

The best way to do this is "more hands on deck," Having two or three helpers really speeds you up. A single person can't really do more than 10 workstations at a time. There's just too much waiting on the computer to boot up, time spent typing commands, and time lost to not being present to initiate the next step in a multi-step process. Having more people helps a lot - three or four slow novices can be as fast as a quick admin, if they have good training and written instructions.

Once all the workstations are reinstalled with the image, you can the repeat the process for the servers, installing the image on each one from the main server, which, incidentally should be the original model computer.

In the end, you should have a single computer, the first "model" computer. It won't need to load the image, because it's already perfect.

In the example, if we had 4 servers, 16 target installs, you would install the 16 computers, then install 3 servers, then end up with one server.

Notes

I'm now doing my third image and learning a whole lot.
* Compare all the target computers or a big sample to make sure hard disk partitions are the same size. If they are not, start imaging for the smallest partitiona s PartImage can restore a small partition into a larger one - but you will shrink the partition. (You may not care.)
* Run Disk Cleanup to clear out old files.
* If possible delete all user account and clear out the profiles.
* Manually delete AppData (hidden folder) data for programs you will remove. Delete Temp files.
* Manually delete sample data in the Public user folder (unless you really need that junk).
* Uninstall all useless software.
* Run Windows Update to get updates.
* Run MSConfig and shut off all useless software.
* Manually delete files from Program Files. Mail, Movie Maker, Photo Gallery, Windows Sidebar, anything from the OEM.
* HP computers have a folder called SWsetup. You can delete it - it's installers.
* Delete files in Windows/SoftwareDistribution/Downloads - it's the downloaded updates.
* Install all apps you want on the build.
* Run Disk Cleanup to clear out old system restore points.
* Run each app at least once. Make sure you're on the Internet. Let the firewall allow your outgoing connections.
* Run Eusing Free Registry cleaner after all the uninstalls - this will clear out some registry keys.
* Install and run Malware Bytes or another antivirus program.
* Defrag the disk. (You may want to start defragging early in the process if you have some time to waste early on.)

Other stuff:
* Remove Microsoft crapware, start uninstalling with the Windows configurator tool, and when that's done, manually delete stuff from Program Files.
* Remove OEM crapware, like update chekers and such.
* Turn Automatic Updates on or off as you wish.
* Create all the user accounts you want. Set their desktop images, icons, app configurations, user icons.
* Set the user account startups.
* Set the networking options. Turn off file sharing if that's what you want.

Final Steps:
* Run Eusing FRC.
* Run Defrag.
* Log out, shut down.