Modify Clonezilla

At work i need to use an application that can store and restore images of an computer. I am using Clonezilla to do so. Clonezilla is an distribution of Debian(sid) which does all those jobs. The advantage is that it is very customizable. Because i am storing all the images at the same space and using the same network setup i has become contra productive to setup it again and again for every single image . Thank god Clonezilla can run a prerunscript which does this for me. If you want to do the same get the lastest version of clonezilla as .zip file and extract it. Changes need to be done in the /syslinux/syslinux.cfgfile which defines the menu is shown when booting clonezilla.

Here we have two menu entries, i replaced those i did not need. I will explain the meaning of the syntax now for you:

  • label – Defines the option just for the config an can be set with any value
  • MENU DEFAULT – This defines which option should be booted if the countdown is over (define only once in config, use # for the rest)
  • MENU HIDE - Hides the menu.
  • MENU LABEL – The Label that is shown in menu.
  • MENU PASSWD – You could ask for an password when choosing the option but it is not needed to me.
  • “kernel /live/vmlinuzappend initrd=/live/initrd.img boot=live config noswap nolocales edd=on nomodeset” – Starts clonezilla as it is.
  • ocs_prerun=”mount -t cifs -o user=administrator,domain=domain.net 172.28.64.141:/Images /home/partimag” ocs_live_run=”/opt/drbl/sbin/ocs-sr -u restoredisk ask_user sda” ocs_live_extra_param=”" ocs_live_keymap=”/usr/share/keymaps/i386/qwertz/de-latin1.kmap.gz” ocs_live_batch=”no” ocs_lang=”en_US.UTF-8″ vga=788 toram=filesystem.squashfs nosplash- Here it becomes very tricky. Do not worry i will explain it for you:
    • ocs_prerun= – Commands in this value will run before clonezilla starts.
    • mount -t cifs -o- mounts a samba share with parameters:
      • user =admin – Login as “admin”
      • domain=domain.net – name of the domain (if you don’t know leave it blank. Home spaces do not use domains icon wink Modify Clonezilla )
      • 172.28.64.141:/Images – Place where the Images are stored or should be placed
      • /home/partimag – Clonezilla mounts the images here which is the reason it does not ask for any other place to search for the images.
    • ocs_live_run=”/opt/drbl/sbin/ocs-sr -u restoredisk ask_user sda” - ocs_live_run is defined two times in my config. This one runs the restore function of Clonezilla.
    • ocs_live_run=”/opt/drbl/sbin/ocs-sr -u -q2 -z1p -i 2048 -p poweroff savedisk ask_user sda- This is the second entry which runs the store function:
      • -u - Asks the user for the image name (could be set in config too).
      • restoredisk or savedisk - Which mode to run ? store, restore, partition or hard-drive ?
      • ask_user - This would be the name of the image but “-u” requests it from user.
      • sda – Which hard-drive should be written or red.
      • -q2 – Use “partclone”. I am preferring this .
      • -z1p – Use gzip-Kompression (with multicore)
      • -i 2048 – Splitzise in megabyte (Split every 2GB a new file for the backup.)
      • -p poweroff - power off after successfully running the script.
    • toram=filesystem.squashfs – Extracts all files to a ramdisk. Therefore you can remove the stick when clonezilla is booted.

After we modified our script we can flash it to an flashdrive (e.g using UnetBootIn or something like that) and test it.

If you have any problems with this how-to feel free to ask me for help and more information.

Systembackup using rsync

Deutsche Version

Why does nobody a backup if everybody is talking about it? Using a unix-system with rsync it is that easy!:

First you should know some things about rsync: its an network protocol for synchronizing files. The interesting thing about rsync is that it is able to compare parts of a file and if it is needed sync only that parts. For example if there was changed one line of a config-file it will only transfer the information of that line through the network. Thats why rsync is really lightweight and fast. I am backing up my Linux-systems using rsync. I want to show how i created a backup script and how it is working.

  • -a is short for following commands:
    • -r copies the subfolders too
    • -l copies symbolic links
    • -p preserve permissions of the source file
    • -t preserve timestamps of the source file
    • -g preserve group permissions of the source file
    • -o preserve user rights of the source file (root only)
    • -D preserve device files (nur root)
  • -z Use compression (if you are storing your backup to a network attached storage)
  • -c skip based on checksum, not mod-time & size (take more time but is saver)
  • ‘-e ssh’ defines the remote shell
  • –delete delete extraneous files from dest dirs
  • –stats Exports some stats
  • ‘–exclude=foobar’ excludes the mask ‘foobar’

In the target path there is “$(hostname)” included. That is needed if you want to back up more then on system in the same path because it creates a folder named by the hostname. (for example “claw-desktop”)

Logs are exported to /var/log/ with the date year-month-day: “backup$(date +%Y%m%d)”


I am running this script as cronjob (crontab) as root and for target i use a samba mountpoint.

If you have any question or suggestions feel free to contact me.

rsync -aovpzc -e ssh –delete –stats /etc /media/ftp/RAID5_0/.backup/$(hostname) >>/var/log/backup$(date +%Y%m%d)
rsync -aovpzc -e ssh –delete –stats /etc /media/ftp/RAID5_0/.backup/$(hostname) >>/var/log/backup$(date +%Y%m%d)