warning! CloneZilla only supports cloning to disks with same/or bigger size as original disk!

in other words: “Officially, Clonezilla requires the destination drive to be the same size or larger than the master drive.” (src: superuser.com)

but even with the -icds option, you might run into “ERROR: No space left on device”

what is super neat about CloneZilla: Clone to multiple PCs/Hosts over Network! At the same time!

the setup process (imho install it in a virtual machine! but only start it outside of corporate LAN (direct connect Laptop to switch to PCs) or you run in danger of someone maybe booting up just at the moment you want to start cloning…. and get’s user’s harddrive overwritten))

can be a little tidiuous but once you have it up and running – and image taken – it is a matter of “how many pcs can i switch on at the same time” so they will boot at the same time (CloneZilla has a certain timeout it waits for clients to connect).

found a very fine tutorial, which also works for debian (wheezy)

http://www.geekyprojects.com/cloning/setup-a-clonezilla-server-on-ubuntu/

i modified it a little to adapt it to debian, you can download it as pdf from here: Setup a Clonezilla Server on Debian – Ubuntu.pdf

(tested on Linux clonezilla 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u3 i686 GNU/Linux)

here are the server startup/shutdown/deployment scripts:

CloneZillaServerScripts_v1.tar.gz

here is a example output of the clonezilla server

root@clonezilla:/scripts# /scripts/StartCloneZillaServerWithMenu.sh
starting dhcp server
Internet Systems Consortium DHCP Server 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 class decls to leases file.
Wrote 2 leases to leases file.

No subnet declaration for start (no IPv4 addresses).
** Ignoring requests on start.  If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface start is attached. **


Not configured to listen on any interfaces!
starting clonezilla server in choose select_in_client mode
Setting the TERM as xterm
*****************************************************.
*****************************************************.
Clean all the previous saved config file if they exist...done!
Client OS type when doing Clonezilla job is: nfsroot
Starting the OCS service for node IP add. = 192.168.3.2
Starting the OCS service for node IP add. = 192.168.3.3
Starting the OCS service for node IP add. = 192.168.3.4
Starting the OCS service for node IP add. = 192.168.3.5
Starting the OCS service for node IP add. = 192.168.3.6
Starting the OCS service for node IP add. = 192.168.3.7
Starting the OCS service for node IP add. = 192.168.3.8
Starting the OCS service for node IP add. = 192.168.3.9
Starting the OCS service for node IP add. = 192.168.3.10
Starting the OCS service for node IP add. = 192.168.3.11
Starting the OCS service for node IP add. = 192.168.3.12
Starting the OCS service for node IP add. = 192.168.3.13
Setting the PXE clients to DRBL mode with label "Clonezilla: choose save or restore later"...
Turn off all MENU DEFAULT in /tftpboot/nbi_img/pxelinux.cfg/default...
Make "clonezilla" as default label in /tftpboot/nbi_img/pxelinux.cfg/default.
The MENU LABEL is "Clonezilla: choose save or restore later"
Client jobs are recorded in this file: '/var/log/clonezilla/clonezilla-jobs.log',
*****************************************************.
Now set the client machines to boot from PXE or Etherboot (refer to http://drbl.org for more details). Then boot those clients and you can choose to save or restore an image!
NOTE! (1) If the cloned OS is MS windows, and it fails to boot with an error message like "Missing Operating System" or "Invalid System Disk", then you can try to (1) change the IDE hard drive settings in the BIOS to use LBA mode instead of AUTO mode. (2) Or you can try to use parameter -t1 when restoring.
Client 192.168.3.4 (00:10:f3:36:7e:60) finished cloning. Stats: Saved /images, /dev/sda1, success, 5.8 GB = 1407632 Blocks, 7.373 mins;

CloneZilla Options:

 /opt/drbl/sbin/ocs-sr: -h: invalid option
 Usage:
 To save or restore image
 ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE_NAME DEVICE
  Options for saving:
  -fsck-src-part, --fsck-src-part Run fsck interactively on the source file system before saving it.
  -fsck-src-part-y, --fsck-src-part-y Run fsck automatically on the source file system before saving it. This option will always attempt to fix any detected filesystem corruption automatically. //NOTE// Use this option in caution.
  -gm, --gen-md5sum  Generate the MD5 checksum for the image. Later you can use -cm|--check-md5sum option to check the image when restoring the image. Note! It might take a lot of time to generate if the image size is large.
  -gs, --gen-sha1sum Generate the SHA1 checksum for the image. Later you can use -cs|--check-sha1sum option to check the image when restoring the image. Note! It might take a lot of time to generate if the image size is large.
  -j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
  -ntfs-ok, --ntfs-ok   Assume the NTFS integrity is OK, do NOT check again (for ntfsclone only)
  -rm-win-swap-hib, --rm-win-swap-hib Try to remove the MS windows swap file in the source partition.
  -q, --use-ntfsclone   If the partition to be saved is NTFS, use program ntfsclone instead of partimage (i.e. Priority: ntfsclone > partimage > dd)
  -q1, --force-to-use-dd  Force to use dd to save partition(s) (inefficient method, very slow, but works for all the file system).
  -q2, --use-partclone   Use partclone to save partition(s) (i.e. partclone > partimage > dd).
  -rescue, --rescue Turn on rescue mode, i.e. try to skip bad sectors.
  -sc, --skip-check-restorable By default Clonezilla will check the image if restorable after it is created. This option allows you to skip that.
  -z0, --no-compress    Don't compress when saving: very fast but very big image file (NOT compatible with multicast restoring!!!)
  -z1, --gzip-compress   Compress using gzip when saving: fast and small image file (default)
  -z1p, --smp-gzip-compress Compress using parallel gzip program (pigz) when saving: fast and small image file, good for multi-core or multi-CPU machine
  -z2, --bz2-compress   Compress using bzip2 when saving: slow but smallest image file
  -z2p, --smp-bzip2-compress Compress using parallel bzip2 program (pbzip2) when saving: faster and smallest image file, good for multi-core or multi-CPU machine
  -z3, --lzo-compress   Compress using lzop when saving: similar to the size by gzip, but faster than gzip.
  -z4, --lzma-compress   Compress using lzma when saving: slow but smallest image file, faster decompression than bzip2.
  -z5, --xz-compress    Compress using xz when saving: slow but smallest image file, faster decompression than bzip2.
  -z5p, --smp-xz-compress Compress using parallel xz when saving: slow but smallest image file, faster decompression than bzip2.
  -z6, --lzip-compress   Compress using lzip when saving: slow but smallest image file, faster decompression than bzip2.
  -z6p, --smp-lzip-compress Compress using parallel lzip when saving: slow but smallest image file, faster decompression than bzip2.
  -z7, --lrzip-compress   Compress using lrzip when saving.
  -i, --image-size SIZE  Set the split image file volume size SIZE (MB). When ocs-sr is run with -x, the default SIZE is set as 2000, if without -x, we will not split it.
  Three words are reserved for IMAGE_NAME, "ask_user" is used to let user to input a name when saving an image. "autoname" is used to automatically generate the image name based on network card MAC address and time. "autohostname" is used to automatically generate the image name based on hostname.
  A word is reserved for DEVICE, "ask_user" could be used to let user to select the source device when saving an image.
  Options for restoring:
  -g, --grub-install GRUB_PARTITION   Install grub in the MBR of the disk containing partition GRUB_PARTITION with root grub directory in the same GRUB_PARTITION when restoration finishs, GRUB_PARTITION can be one of "/dev/hda1", "/dev/hda2"... or "auto" ("auto" will let clonezilla detect the grub root partition automatically). If "auto" is assigned, it will work if grub partition and root partition are not in the same partition.
  -r, --resize-partition  Resize the partition when restoration finishes, this will try to fix the problem when small partition image is restored to larger partition. Warning!!! Use this carefully... Backup your data first
  -k, --no-fdisk, --no-create-partition  Do NOT create partition in target harddisk. If this option is set, you must make sure there is an existing partition table in the current restored harddisk. Default is to create the partition table.
  -icrc, --icrc      Skip Partclone CRC checking.
  -irhr, --irhr      Skip removing the Linux udev hardware records on the restored GNU/Linux.
  -ius, --ius       Skip updating syslinux-related files on the restored GNU/Linux.
  -icds, --ignore-chk-dsk-size-pt Skip checking destination disk size before creating the partition table on it. By default it will be checked and if the size is smaller than the source disk, quit.
  -k1,           Create partition table in the target disk proportionally.
  -k2,           Enter command line prompt to create partition table manually before restoring image.
  -t, --no-restore-mbr Do NOT restore the MBR (Mater Boot Record) when restoring image. If this option is set, you must make sure there is an existing MBR in the current restored harddisk. Default is Yes
  -u, --select-img-in-client Input the image name in clients
  -e, --load-geometry Force to use the saved CHS (cylinders, heads, sectors) when using sfdisk
  -e1, --change-geometry NTFS-BOOT-PARTITION Force to change the CHS (cylinders, heads, sectors) value of NTFS boot partitoin after image is restored. NTFS-BOOT-PARTITION can be one of "/dev/hda1", "/dev/hda2"... or "auto" ("auto" will let clonezilla detect the NTFS boot partition automatically)
  -e2, --load-geometry-from-edd Force to use the CHS (cylinders, heads, sectors) from EDD (Enhanced Disk Device) when creating partition table by sfdisk
  -y, -y0, --always-restore, --always-restore-default-local Let Clonezilla server as restore server, i.e. client will always has restore mode to choose (However default mode in PXE menu is local boot)
  -y1, --always-restore-default-clone Let Clonezilla server as restore server, i.e. client will always has restore mode to choose (The default mode in PXE menu is clone, so if client boots, it will enter clone always, i.e. clone forever)
  -j, --create-part-by-sfdisk Use sfdisk to create partition table instead of using dd to dump the partition table from saved image (This is default)
  -j0, --create-part-by-dd Use dd to dump the partition table from saved image instead of sfdisk. ///Note/// This does NOT work when logical drives exist.
  -j1, --dump-mbr-in-the-end Use dd to dump the MBR (total 512 bytes, i.e. 446 bytes (executable code area) + 64 bytes (table of primary partitions) + 2 bytes (MBR signature; # 0xAA55) = 512 bytes) after disk image was restored. This is an insurance for some hard drive has different numbers of cylinder, head and sector between image was saved and restored.
  -j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
  -hn0 PREFIX   Change the hostname of M$ Windows based on the combination of hostname prefix and IP address, i.e. PREFIX-IP
  -hn1 PREFIX   Change the hostname of M$ Windows based on the combination of hostname prefix and NIC MAC address, i.e. PREFIX-MAC
  --max-time-to-wait TIME  When not enough clients have connected (but at least one), start anyways when TIME seconds since first client connection have pased. This option is used with --clients-to-wait
  -cm, --check-md5sum  Check the MD5 checksum for the image. To use this option, you must enable -gm|--gen-md5sum option when the image is saved. Note! It might take a lot of time to check if the image size is large.
  -cs, --check-sha1sum Check the SHA1 checksum for the image. To use this option, you must enable -gs|--gen-sha1sum option when the image is saved. Note! It might take a lot of time to check if the image size is large.
  --mcast-port  NO   Assign the udp port number for multicast restore. This is used by clonezilla server. Normally it's not necessary to manually assign this option.
  A word is reserved for IMAGE_NAME, "ask_user" is used to let user to input a name when saving an image.
  A word is reserved for DEVICE, "ask_user" could be used to let user to select the source device when saving an image.
  General options:
 -l, --language INDEX Set the language to be shown by index number:
     [0|en_US.UTF-8]: English,
     [1|zh_TW.BIG5]: Traditional Chinese (Big5) - Taiwan,
     [2|zh_TW.UTF-8]: Traditional Chinese (UTF-8, Unicode) - Taiwan
     [a|ask]: Prompt to ask the language index
  -b, -batch, --batch   (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
  -c, --confirm      Wait for confirmation before saving or restoring
  -d, --debug-mode     Enter command mode to debug before saving/restoring
  --debug=LEVEL      Output the partimage debug log in directory /var/log/ with debug LEVEL (0,1,2... default=0)
  -m, --module MODULE   Force to load kernel module MODULE, this is useful when some SCSI device is not detected. NOTE! Use only one module, more than one may cause parsing problem.
  -o0, --run-prerun-dir  Run the script in the direcoty /opt/drbl/share/ocs/postrun before clone is started. The command will be run before MBR is created or saved.
  -o1, -o, --run-postrun-dir  Run the script in the direcoty /opt/drbl/share/ocs/postrun when clone is finished. The command will be run before that assigned in -p or --postaction.
  -w, --wait-time TIME   Wait for TIME secs before saving/restoring
  --nogui         Do not show GUI of partimage, use text only
  -a, --no-force-dma-on  Do not force to turn on HD DMA
  -mp, --mount-point MOUNT_POINT Use NFS to mount MOUNT_POINT as directory ocsroot (ocsroot is assigned in drbl.conf)
  -or, --ocsroot DIR    Specify DIR (absolute path) as directory ocsroot (i.e. overwrite the ocsroot assigned in drbl.conf)
  -p, --postaction [choose|poweroff|reboot|command|CMD]   When save/restoration finishs, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
  -ns, --ntfs-progress-in-image-dir Save the ntfsclone progress tmp file in the image dir so that if cloning is in DRBL client, the progress can be check in the server (Default in to be put in local /tmp/, which is local tmpfs).
  -um, --user-mode [beginner|expert]   Specify the mode to use. If not specified, default mode is for a beginner.
  -v, --verbose      Prints verbose information
  -d0, --dialog     Use dialog
  -d1, --Xdialog    Use Xdialog
  -d2, --whiptail    Use whiptail
  -d3, --gdialog    Use gdialog
  -d4, --kdialog    Use kdialog
  -x, --interactive   Interactive mode to save or restore.
 Example:
   To save or restore image in client (Only that DRBL client will join, and its local partitions is NOT mounted). NOTE!!! You should run the command in DRBL client or you have to make sure the target device is NOT busy!.
   To save all the data in local first IDE harddrive 'hda' as image 'IMAGE1', use ntfsclone instead of partimage, and lzop compression (NOTE!!! You should run the command in DRBL client or make sure hda is NOT busy/mounted!):
   ocs-sr --use-ntfsclone -z3 savedisk IMAGE1 hda
   To save the data in first and second partitions in local first IDE harddrive 'hda' as image 'IMAGE2', use ntfsclone instead of partimage, and lzop compression (NOTE!!! You should run the command in DRBL client, or make sure hda is NOT busy/mounted!):
   ocs-sr --use-ntfsclone -z3 saveparts IMAGE2 "hda1 hda2"
   To restore image IMAGE1 to local hda. grub-install will be run after cloning (image IMAGE1 is already in DRBL server. NOTE!!! You should run the command in DRBL client or make sure hda is NOT busy/mounted!):
   ocs-sr -g auto restoredisk IMAGE1 hda
   To restore image first and second partitions from IMAGE2 to local hda1 and hda2. grub-install will be run after cloning (image IMAGE2 is already in DRBL server. NOTE!!! You should run the command in DRBL client or make sure hda is NOT busy/mounted!):
   ocs-sr -g auto restoreparts IMAGE2 "hda1 hda2"
   To save disk(s)/partitition(s) as an image or restore an image to disk(s)/partitition(s) interactively, use:
   ocs-sr -x

liked this article?

  • only together we can create a truly free world
  • plz support dwaves to keep it up & running!
  • (yes the info on the internet is (mostly) free but beer is still not free (still have to work on that))
  • really really hate advertisement
  • contribute: whenever a solution was found, blog about it for others to find!
  • talk about, recommend & link to this blog and articles
  • thanks to all who contribute!
admin