This is part-1 of "Nightly clonezilla backup imaging for ubuntu server".
This tutorial explains how to create customized clonezilla iso image.
Clonezilla is an open source disk cloning tool, I assume you already know enough about clonezilla.
If you startup your system with this result iso file, you will get an compressed harddisk backup image in the target partition you want.
This can be used as a snapshot, so you can restore your server if there is any problem.
Unlike the other method, this does not require any key input , when everything is finished, it will be rebooted automatically.
To make this, you will need,
- Clonezilla iso image (http://clonezilla.org/downloads.php)
Stable releases 1.2.12-67 is used in this tutorial
- ISO Master (http://www.littlesvr.ca/isomaster/)
This is for edit ISO file. you can install in on Ubuntu Software Center.
- Two files : isolinux.cfg, mystartup.
will be created in this tutorial
1. Prepare clonezilla live ISO file.
http://clonezilla.org/downloads.php
2. Install ISO master.
Find and click install in Ubuntu Software Center.
or just type "sudo apt-get install isomaster" in terminal.
3. Define source and target partition.
yananet@server:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 35G 6.0G 27G 19% /
udev 1000M 4.0K 1000M 1% /dev
tmpfs 403M 1.1M 402M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1007M 332K 1007M 1% /run/shm
/dev/sda1 459G 367G 69G 85% /media/MEDIA1
/dev/sdb3 193G 79G 105G 44% /media/EXT1
My home server has 3 partitions.
Ubuntu server 12.04, lubuntu-desktop, all server daemons are installed in /dev/sdb1.
What I want to do is to make clone image of this partition, and save this on /dev/sda1.
- src_part=sdb1
- tgt_part=sda1
The actual size of image file is about 3~4G.
The backup image will be stored in /clone of sda1
4. Create mystartup script.
After clonezilla is started, this script will be excuted.
Most important part of this script is following.
ocs-sr -q2 -j2 -z1p -p command saveparts "$_filename" "$src_part"
ocs-sr is one of Clonezilla's command which enables you to save or restore a partition or whole disk.
All of option is explained here.
Make sure that you need to modify your own src_part and tgt_part.
This is based on /opt/drb1/samples/custom-ocs in clonezilla live.
#!/bin/bash
# Author: Steven Shiau <steven _at_ nchc org tw>
# License: GPL
# Ref: http://sourceforge.net/forum/forum.php?thread_id=1759263&forum_id=394751
# followings are essential for initial startup
DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/opt/drbl/}"
. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions
. $DRBL_SCRIPT_PATH/conf/drbl-ocs.conf
. $DRBL_SCRIPT_PATH/sbin/ocs-functions
[ -e /etc/ocs/ocs-live.conf ] && . /etc/ocs/ocs-live.conf
ask_and_load_lang_set en_US.UTF-8
# From here, you can write your own scripts.
# functions
decide_sda_or_hda() {
# define your source and target parition
src_part=sdb1
tgt_part=sda1
}
action_backup() {
mkdir -p $ocsroot
part_fs="$(LANG=C ocs-get-part-info /dev/$tgt_part filesystem)"
case "$part_fs" in
ntfs) ntfs-3g /dev/$tgt_part $ocsroot
RETV=$? ;;
*) mount /dev/$tgt_part $ocsroot
RETV=$? ;;
esac
if [ "$RETV" -eq 0 ]; then
# define target directory name
_now=$(date +"%m_%d_%Y")
_filename="/clone/img_$_now"
# If you want to run it in batch mode, add option "-b" in the ocs-sr command
# For more options about ocs-sr, run "ocs-sr -h"
# or http://allthatnetwork.blogspot.jp/2012/10/clonezilla-ocs-sr-options.html
ocs-sr -q2 -j2 -z1p -p command saveparts "$_filename" "$src_part"
else
[ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
echo "Fail to mount /dev/$tgt_part as $ocsroot!"
echo "Program terminated!"
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
fi
umount $ocsroot &>/dev/null
}
##################
###### MAIN ######
##################
# Find the device and partition
decide_sda_or_hda
# Start backup
action_backup
# Force restart (no key input required for restart)
reboot -f
5. Extract and modify isolinux.cfg file
the syntax of isolinux.cfg is very simular with grup configration.
This setup creates new menu entry in clonezilla live, and runs mystartup script you just created before.
First, extract isolinux.cfg file from clonezilla live iso file.
ISO master can do this or Ubuntu Archive Manager also can do this easily.
isolinux.cfg is under /isolinux.
Second, open it with a text editor, find following block.
This is the default boot option of clonezilla live.
label Clonezilla live
MENU DEFAULT
# MENU HIDE
MENU LABEL Clonezilla live (Default settings, VGA 800x600)
# MENU PASSWD
kernel /live/vmlinuz
append initrd=/live/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" vga=788 ip=frommedia nosplash
TEXT HELP
* Clonezilla live version: 1.2.12-67-i686-pae. (C) 2003-2012, NCHC, Taiwan
* Disclaimer: Clonezilla comes with ABSOLUTELY NO WARRANTY
ENDTEXT
Comment out "MENU DEFAULT".
MENU DEFAULT
Finally, add your new boot option as following.
label Clonezilla customize
MENU DEFAULT
# MENU HIDE
MENU LABEL Clonezilla customize (Default settings, VGA 800x600)
# MENU PASSWD
kernel /live/vmlinuz
append initrd=/live/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="/live/image/live/mystartup" ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="yes" ocs_lang="en_US.UTF-8" vga=788 ip=frommedia nosplash
TEXT HELP
* Clonezilla live version: 1.2.12-67-i686-pae. (C) 2003-2012, NCHC, Taiwan
* Disclaimer: Clonezilla comes with ABSOLUTELY NO WARRANTY
ENDTEXT
Find full isolinux.cfg in here.
If you correctly create this file, clonezilla will show you following menu at the begin of boot up process.
6. Create new clonezilla ISO image
Open clonezilla ISO file with ISO master.
Copy myscript to /live
Delete the original and copy isolinux.cfg to /isolinux
Save ISO file as new name.
That's it!
You may use this ISO file to make CD or bootable USB or whatever you want.
This ISO file will make snapshot of your server automatically.
In my next post, I will explain how to backup your server in specific night time by using grup2 and crontab.