Clonezilla is the state of the art for saving and restoring disk images. It can be used for mass-installation of prepared systems.

Clonezilla comes in two flavours:

Clonezilla live is intended for saving/restoring images on one computer. Clonezilla live can be booted from a CD or USB stick and will interact with local disks and network resources like Windows Shares or NFS.

Clonezilla SE is intended for remotely saving/restoring images over the network on multiple computers at once. It provides DHCP, TFTP and NFS servers to network-boot computers via PXE. You specify the action to be taken on the network-booted clients once on the server and any client coming up will automatically do what you’ve specified without requiring any further interaction. You can even distribute images in parallel to multiple computers via UDP multicast. This technique greatly reduces the time necessary to distribute the images and avoids error-prone (dis)assembly of computers to remove/install hard disks.

Clonezilla SE is based on DRBL and has to be installed into a pre-existing Linux system. However, as Clonezilla live is a Linux system you can install Clonezilla SE “into” a Clonezilla live USB drive and have them both available from the same medium.

In my git repository there are some scripts I used to create a more streamlined version of clonezilla live with sane defaults that reduce the number of steps required for imaging loose disks. There also are some helper scripts dealing with the combined live/SE setup.