Share |

2.3 Mass Clone: a multicast disk cloning tool

Mclone or Mass Clone is a utility that creates and distributes harddisk images over the network via multicast.
It is very fast since it uses only one network packet for an infinite number of receivers. On a 100mbit switch it will average at about 93mbit. The only limitation here is the speed of the network, disk or cpu.
Main features:
-make exact copies of any operating system
-optimized for Windows XP/Vista/Seven imaging using ntfsclone. Other filesystems are copied with dd
-fast and scalable
-save to image and restore from image (to multicast) with optional 3 compression algorythms (gzip, bzip2 and 7-zip)
-restore original bootsector/ntfs c/h/s values. An old bug in many BIOSes sometimes gave wrong values for Cylinders/Heads/Sectors count. Although CHS is an old method for assigning disk geometry (LBA should be used), Windows XP and family still use it to assign addressing of their bootcode. Recent Linux kernels discard wrong C/H/S values and set it to the LBA values. This resulted sometimes in unbootable cloned Windows machines (the blinking cursor nightmare). Recently a patched version of relocntfs appeared (now called ntfsreloc) which is able to "force" original C/H/S values into your NTFS. Mclone does it automatically for you. Major feature over other cloning tools.
-run up to 50 different sessions separately over your LAN
-optional speed limitation. Just so your LAN doesn't get saturated.
-option to specify disks/partitions instead of just everything automatically
-option to skip bootsector
-option to skip C/H/S check

Since TRK is network bootable from another TRK without any modifications to your LAN's config, you could just boot one TRK from CD/usb stick, boot all your other computers over the network and run mclone on all of them.

An average image of about 4Gb on a 100mbit network is cloned in about 7 minutes

USAGE

In short: the computer to be cloned (the sender) runs 'mclone -s', all others run 'mclone' (the receivers).
Once all computers are ready and waiting, just press enter on one of them and cloning begins.

You can also save to an image file. The computer that will save the image as a set of files runs mclone with the option -o.
For example:

mclone -o standard-xp-install

will save an uncompressed image to "standard-xp-install", creating it as a directory in the current directory if it does not exist.
The command:

mclone -C 7-zip -o standard-xp-install

will add 7-zip compression to the image. But beware of compression. I've noticed that gzip is the only compressor that doesn't eat too much of your CPU so not to lose transfer speed. If size is more important to you, use bzip2 or 7-zip
In all of these cases you run 'mclone -s' on the computer from which you wish to create an image. (The Sender.)
Restoring from this recently created image is done with:

mclone -i standard-xp-install

No need to specify the compression anymore, mclone will use the correct decompressor.
So remember:
-o mode and 'mclone' without arguments is a receiving mode, so the other side must run mclone -s (sender mode) -i and -s mode are sender mode, the other side runs 'mclone' as a receiver

Here are all the options that you can specify.

The command: mclone without any arguments runs in client mode, meaning it will RECEIVE an image from a sender

-s
SENDER mode. This mode will send the contents of the local harddisks to listening clients
e.g.: The sender runs 'mclone -s', the clients run 'mclone'. The sender will clone a one to many copy of itself
-o <path-to-image>
This mode is a RECEIVER mode that stores an image from a sender to image files in the path specified by the argument 'path-to-image'
e.g.: 'mclone -o /data/xp-image'. Note: the dir does not need to exist, but please erase it if an image is already in there.
-i <path-to-image>
This is a SENDER mode that sends an image to clients. You first need to have an image created with mclone -o of course.
e.g.: 'mclone -i /data/xp-image'
-n <session number>
Specify as many as 50 sessions when performing multiple cloning. Client and sender need to specify the same number
e.g.: 'mclone -n 5' for client, 'mclone -s -n 5' for sender
-h
short help screen
Optional arguments ONLY FROM SENDER MODE:
-d <disks>
Skip disk detection and specify your own (comma separated if more than one). Only valid for SENDER mode (-s).
e.g.: 'mclone -s -d /dev/sda,/dev/sdc'
-p <partitions>
Skip partition detection and specify your own (comma separated if more than one.) Only valid for SENDER mode (-s).
e.g.: 'mclone -s -p /dev/sda1,/dev/sda2'
-c
Skip C/H/S check. This should not be necessary, but if you run into troubles with booting, it might help, although the opposite is more likely to be true
-b
Skip save bootsector. Should you not want to overwrite your bootsector, add this parameter.
-t <timeout>
set the timeout between the first client to connect and the last one to ride the train. This option is only used during actual image creation. Default is 10 seconds.
-r <bitrate>
Set the maximum bitrate. Set it in kilobit (k) or megabit (m). This is recommended when you are on a shared lan, because mclone will eat all the available bandwidth.
e.g.: 'mclone -s -r 80m' sets a maximum of 80 megabit or 10 megabytes per second (which is ok on a 100mbit switch)
Optional arguments for IMAGE SAVE MODE
-w
Use network compression. This option uses more CPU but saves bandwidth on your network. Use only on powerful machines. This option is permanent when you store to an image file, i.e. when enabled at image creation it will always be used during restore.
-C <compressor>
Save your image with compression. 3 compression methods are available (specified as written here): gzip, bzip2 and 7-zip e.g.: 'mclone -o /data/xp-image -C gzip'

 

For the full documentation, refer to the online manpage:

http://trinityhome.org/manpages/man8/mclone.8.html

Updated: August 11, 2010