One key advantage of the server version is that it allows for multicasting, which the live version does not. Multicasting basically allows many computers to be cloned simultaneously and in the same amount of time it would take cloning a single computer. Multicasting allows the user to restore a large groups of computers across the network in a matter of minutes. As an example, let say that you have 40 new computers that just arrived and you need to have them all up and running by tomorrow. Clonezilla can get the job done in 10 minutes! and I am not talking about 10 minutes per computer, I am talking about 10 minutes for the whole batch! Restoring a 5 GB compressed image on 40 computers at once in 10 minutes; Sounds incredible? I could not believe it myself until I tried it. On the other hand, the Clonezilla live CD communicates with each computer individually, making the restoration time dependent on the amount of computers being restored. Another advantage of the server edition is the fact that you can have your own cloning station ready to save or restore any computer at any given time and to provide a storage location for all your images.
Software & Hardware Requirements
A PC with ample Hard drive space and RAM (my own guesses are at least 40gb and 512mb to 1gb RAM or more) At LEAST two network cards. You can use more to segment the bandwidth, but at least two are necessary.
Setup the Linux Server
Install the GNU/Linux distribution and configure all network cards. In the following, we use "eth0" to connect the Internet, while eth1, eth2, eth3 are for DRBL environment(set the network card's IP addresses to be private IPs (i.e. 192.168.x.x, the following example, we set eth1:192.168.101.254, eth2:192.168.102.254, eth3:192.168.103.254...); Please remember this principle, private IP (e.g. 192.168.x.x) is used for DRBL environment.
The Client has a PXE network interface card
Set the client's BIOS to boot from "LAN" or "network".
Take one of the Asus motherboards for example, in this manual file.
Enter BIOS Setting Choose Boot option in that select OnBoard LAN, there is a subfuncton "OnBoard LAN BOOT ROM", normally it's disabled, you have to enable it.
Usually you have to reboot it now, make the function re-read by BIOS.
After rebooting, enter BIOS setting again, this time make it LAN boot as the 1st boot device.
That's it. Let client boot and enjoy DRBL!!!
DRBL Server Requirements
A server that provides DHCP, TFTP, NFS and NIS services. The clients extract their configurations from the DHCP service on the servers and download the bootable kernel from the TFTP service. During the booting procedure, the client mounts the "DRBL Client Template" as its root directory and then "pivot-root" to its own "DRBL Client" using NFS. NIS are used to manage the user information.
DRBL Client Requirements
Each computer on an DRBL network has its own configuration files (/etc, /root and /var) on the server. All of the configuration files are readable and writable.
DRBL Client Template Requirements
A basic debian system that is used for booting and sharing common files (/bin, /sbin, /usr and lib). It is created using the command "debootstrap" and using "chroot" command to install other needed packages.
Because the server and the clients are "NOT" sharing the same debian system, the physical computers are not needed to be the same.
Note!!! It is not recommended to turn on the system update automatically. Since If newer packages are installed in the server automatically, without running "/opt/drbl/sbin/drblpush -i", the programs for client might not be compatible with that newer in server. If you want to turn on system update automatically, remember to follow the above step to update the files in client automatically.
Prepare Ubuntu
Clonezilla SE works by providing a boo-table environment for clients though the network. For this purpose a DHCP server will have to be installed. You will have to make sure that none of the computers in your organization are set to boot from network as first boot device, otherwise they might boot to Clonezilla instead of their own operating system. There is a way around this: A file can be created with all MAC addresses of the computers to be cloned. This will prevent the server from booting unwanted machines. However, from experience I have found that it is easier to just boot the desired machines from network manually and once booted into Clonezilla the cloning process can be started from the server with the click of a button.
1) Enable “Universe” and “Multiverse” repositories under: System -> Administration -> Software Sources.
2) Open your sources list file to add the Clonezilla repository issuing the following command at your shell prompt:
sudo gedit /etc/apt/sources.list
3) Add the following line at the bottom of the file and save it.
deb http://drbl.sourceforge.net/drbl-core drbl stable
4) Download the GPG Key for the new clonezilla source repository by issuing the following command at your shell prompt:
wget http://drbl.sourceforge.net/GPG-KEY-DRBL
5) Add the key with the following command:
6) Make sure operating system is fully updated by issuing the following command at your shell prompt:
Setup Ubuntu’s Network Configuration
1) Uninstall Network Manager by issuing the following command at the shell prompt (This is optional, it is done because network manager sometimes does not like the virtual interface created for Clonezilla. I had no problems with network manager in Ubuntu 10.04)
sudo apt-get remove network-manager
2) Type the following command at a terminal screen to open your network interfaces configuration file:
sudo gedit \etc\network\interfaces
Edit the file to look as the one displayed below; you can copy – paste this information to your interfaces file. As you can see on the configuration below we have two interfaces, eth0 and eth0:0. Eth0 is your main network card’s IP configuration; we are going to use this to connect to the web, etc. eth0:0 is a “virtual” interface which we will use for Clonezilla. Just remember to match eth0′s IP configuration with that of your local network and to make eth0:0 IP a totally different subnet from that of eth0, look at the example down below. etho is 192.168.1.200 and eth0:0 is 192.168.99.200 is eth0:0, so they don’t conflict. Also, Clonezilla’s virtual interface, eth0:0 must use a “class C” IP address (e.g. 192.168.x.x) otherwise muticasting effectiveness will be greatly reduced.
#Loopback
auto lo
iface lo inet loopback
#Network Interface, this should match your network
auto eth0
iface eth0 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
#Virtual Interface for Conezilla, make sure you use a "class C" IP (192.168.x.x)
auto eth0:0
iface eth0:0 inet static
address 192.168.99.200
netmask 255.255.255.0
Install DRBL
1) To install DRBL (which comes with Clonezilla in one package) issue the following command:
sudo apt-get install drbl
This is all you have to do. You do not need to install any dependencies, since it all comes in one package.
Setup DRBL
To start the DRBL setup, issue the following command:
sudo /opt/drbl/sbin/drblsrv -i
Clonezilla (DRBL) setup will begin. Answer everything as you see it below. Do not worry if you make a mistake, you can always start the set-up again issuing the same previous command.
The first question basically asks you if you want to install other Linux images, answer “N“
Do you want to install the network installation boot images so that you can let the client computer install some GNU/Linux distributions (Debian, Ubuntu, RedHat Linux, Fedora Core, Mandriva, CentOS and OpenSuSE…) via a network connection? !!NOTE!! This will download a lot of files (Typically > 100 MB) so it might take a few minutes. If the client computer has a hard drive that you may install GNU/Linux onto, put a Y here. If you answer “no” here, you can run “drbl-netinstall” to install them later. |
[y/N] N |
Next question asks if you would like to use a serial console instead of a GUI, so choose “N“
Do you want to use the serial console output on the client computer(s)?
If you do NOT know what to pick, say “N” here, otherwise the client computer(s) may show NOTHING on the screen! |
[y/N] N |
Next question asks about the type architecture used in your CPU. Since practically all of today’s PCs are i586, choose ”1“.
Which CPU architecture kernel do you want to assign for the DRBL client computer(s)?
0 -> i386 CPU architecture
1 -> i586 CPU architecture
2 -> Use the same architecture as this DRBL serverNote! Note Note! Note! Note! Note! Note!
NOTE!!! If the client computer(s) is not the same architecture as this server, please pick “0″ or “1″, otherwise your client computer(s) will NOT be able to boot.
If you use wrong architecture type kernel, the glibc and openssl package might use i686 or i386 while the kernel might use i686, i586, or i386, which might be not suitable for all your computer(s). |
[2] 1 |
Select “N” in the next question. You do not want DRBL to upgrade your operating system. Next, DRBL will begin downloading and installing all its dependencies.
Do you want to upgrade the operating system? |
[y/N] N |
After DRBL finishes downloading and installing all its dependencies, we are done installing DRBL. Next we will be configuring Clonezilla.
Configure Clonezilla
Enter the following command at your shell prompt to start configuring Clonezilla:
sudo /opt/drbl/sbin/drblpush -i
Again, do not worry about making a mistake you can always issue the same command to start over.
At the first question just press “enter” to leave the default name.
Please enter DNS domain (such as drbl.sf.net): |
[DRBL.name] |
At the second question again just press “enter” to leave the default nis/yp domain name.
Please enter NIS/YP domain name: |
[penguinzilla] |
At the third question again just press “enter” to leave the default server name.
Please enter the client hostname prefix:
This prefix is used to automatically create hostname for clients. If you want to overwrite some or all automatically created hostnames, press Ctrl-C to quit this program now, edit /opt/drbl/conf/client-ip-hostname, then run this program again. |
[servername] |
The fourth question asks to choose which card to use to go to the internet, previously we chose eth0 as our connection to the web and eth0:0 as our virtual interface for Clonezilla, so enter “eth0“
eth0: IP address 192.168.1.200, netmask 255.255.255.0
eth0:0: IP address 192.168.99.200, netmask 255.255.255.0
Configured ethernet card(s) found in your system: eth0 eth0:0
– - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - -
The public IP address of this server is NOT found.
Which ethernet port in this server is for public Internet accsess, not for DRBL connection?
Available ethernet ports in this server:
eth0 (192.168.1.200), eth0:0 (192.168.99.200), |
[eth0] eth0 |
If you get a message telling you that your Clonezilla IP (eth0:0) is on a class A or B network, make sure you change it to a “Class C” (e.g. 192.168.x.x) and start Clonezilla’s configuration over, otherwise multicasting’s effectiveness will be greatly reduced.
Next question asks if you want to collect MAC addresses of computers to be cloned; this is done so that only computers that are going to be cloned get assigned an IP from DRBL. I find this time consuming and unnecessary, since it is easier to turn DRBL off once you are done cloning so that it does not conflict with your network’s DHCP server. DRBL is very easy to turn on and off with a simple short-cut on your server’s desktop. So we are going to choose “N“.
(…summary…) Now we can collect the MAC address of clients!
Do you want to collect them? |
[y/N] N |
Since we chose not to collect mac addresses we will choose “N” in the next question.
Do you want to let the DHCP service in DRBL server offer same IP address to the client every time when client boots (If you want this function, you have to collect the MAC addresses of clients, and save them in file(s) (as in the previous procedure)). This is for the clients connected to DRBL server’s ethernet network interface eth0:0 ? |
[y/N] N |
Next question asks what will be the starting IP number assigned to client computers; you can leave it at “1” since no other computers should be using the Clonezilla subnet.
What is the initial number do you want to use in the last set of digits in the IP (i.e. the initial value of d in the IP address a.b.c.d) for DRBL clients connected to this ethernet port eth0:0. |
[1] 1 |
Next question asks how many computers do you want to clone at a time; you can set this to whatever you want as long as it is not ridiculously high, for this example we are going to leave it at “12” computers.
How many DRBL clients (PC for students) connected to DRBL server’s ethernet network interface eth0:0 ?
Please enter the number: |
[12] 12 |
Do you accept what we did in the previous question? Select “Y” (self explanatory).
The final number in the last set of digits in the client’s IP address is “12″. We will set the IP address for the clients connected to DRBL server’s ethernet network interface eth0:0 as: 192.168.99.1 – 192.168.99.12 Accept ? |
[Y/n] Y |
Next, Clonezilla will show you how your network configuration will look like; this is just information so press “enter“.
The Layout for your DRBL environment:
******************************************************NIC NIC IP Clients
+———————————————————————————+
| DRBL SERVER |
| |
| +– [eth0] 10.0.2.100 +- to WAN
| |
| +– [eth0:0] 192.168.99.200 +- to clients group 0:0 [12 clients, IPs 192.168.99.1 - 12]
| |
+———————————————————————————+
******************************************************
Total clients: 12
****************************************************** |
Press Enter to continue… |
There are four modes available from DRBL version 1.6.3 or later:
1) Full DRBL
2) Full Clonezilla
3) DRBL SSI (Single System Image)
4) Clonezilla Box.
| Full DRBL | Full Clonezilla | DRBL SSI | Clonezilla Box |
/etc, /var of clients | NFS-based | NFS-based | tmpfs-based | tmpfs-based |
modified files in /etc and /var of client after reboot | kept | kept | gone | gone |
extra space in server per client | ~ 50 MB | ~ 50 MB | 0 | 0 |
max client no per ethernet card in server | 253 | 253 | 253 | 253 |
Clonezilla will then ask you if you want to have the option of booting computer to Linux using the network, we are just setting the server for cloning so choose option “2“.
In the system, there are 3 modes for diskless linux services:
[0] Full DRBL mode, every client has its own NFS based /etc and /var.
[1] DRBL SSI (Single system image) mode, every client uses tmpfs based /etc and /var. In this mode, the loading and necessary disk space of server will be lighter. NOTE! (a) The client machine memory is recommended at least 256 MB. (b) The setting and config files of client will not be saved to the DRBL server! They are just used once and will vanish after the machine shutdowns! Besides, if you modify any file in the template client (located in /tftpboot/nodes), you have to run /opt/drbl/sbin/drbl-gen-ssi-files to create the template tarball in /tftpboot/node_root/drbl_ssi/. (c) If you want to provide some file to overwrite the setting in the template tarball when client boots, check /tftpboot/node_root/drbl_ssi/clients/00_README for more details.
[2] I do NOT want to provide diskless Linux service to client.
Which mode do you prefer?
[0] 2 |
Choose Clonezilla box mode, option “1“. This way the whole cloning operation will be lighter on the server.
In the system, there are 4 modes available for clonezilla:
[0] Full Clonezilla mode, every client has its own NFS based /etc and /var.
[1] Clonezilla box mode, every client uses tmpfs based /etc and /var. In this mode, the loading and necessary disk space of server will be lighter than that in Full Clonezilla mode. Note! In Clonezilla box mode, the setting and config files of client will not be saved to the DRBL server! They just use once and will vanish after the machine shutdowns!
[2] I do NOT want clonezilla.
[3] Use Clonezilla live as the OS (Operating System) of clients (Testing).
Which mode do you prefer? |
[0] 1 |
Next question asks what will be the default directory where you want to store your images. To me the default “/home/partimag” is not intuitive, so I change it to “/clonezilla” so it can be easily accessible in the file-system. But this is up to you; just remember that if you decide to change it make sure you create the new folder manually, since the setup will not do it for you.
The CPU arch for clients when running Clonezilla job: i486
——————————————————
When using clonezilla, which directory in this server you want to store the saved image (Please use absolute path, and do NOT assign it under /mnt/, /media/ or /tmp/)? |
[/home/partimag] /clonezilla |
Unless you want to be annoyed with a password prompt every time you want to clone a computer or you are a security freak, choose “N” in the next question.
Do you want to set the pxelinux password for clients so that when client boots, a password must be entered to startup (For better security) |
[y/N] N |
Choose “N” at the next question as well, you do not need a boot prompt for clients
Do you want to set the boot prompt for clients? |
[y/N] N |
I recommend you choose “Y” in the next question; graphic backgrounds look friendlier.
Do you want to use graphic background for PXE menu when client boots?
Note! If you use graphical PXELinux menu, however client fails to boot, you can switch to text mode by running “/opt/drbl/sbin/switch-pxe-bg-mode -m text”. |
[y/N] Y |
Choose “N” in the next question (self explanatory).
Do you want to use DRBL server as a NAT server? If not, your DRBL client will not be able the internet. |
[y/N] Y |
Choose “Y” of course to finish.
We are now ready to deploy the files to the system!
Warning! If you go on your firewall rules will be overwritten during setup… |
[Y/n] Y |
Start Clonezilla Server
Now that we have finished configuring Clonezilla we need to start our server to get it ready for cloning. Type the following at the command prompt:
At the first screen Choose “Select all the clients“.
At the second Screen Choose “clonezilla-start“.
At the third screen I recommend using “Beginner mode” for now. However, if the cloning process gets stuck when trying to clone your clients, you will have to restart the server later on and choose “Expert Mode”, since it gives you more options you can tweak to make it work.
In the fourth screen choose “select-in-client“. This gives you to option to choose whether to restore or save the image during Clonezilla’s booting process in the client itself.
Leave the two last options as they are and click “ok” and we are done!
Create desktop shortcuts to start and stop Clonezilla (Optional)
I highly recommend you create shortcuts on your server’s desktop to “start”, “start using multicasting” and “stop” clonezilla server. This will make it a lot easier, since, sometimes you might want to clone a group of computers at the same time using multicasting. This way you can do it by the click of a button instead of having to reconfigure the server. Also, multicasting is picky and it does not always work on all computers. In case multicasting does not work for you, you can always go back to regular Clonezilla operating mode just by clicking on a shortcut, etc. Stopping the Clonezilla is also convenient when you need to restart, or to disable the DRBL so it does not interfere with other DHCP servers on the network.
“Start Clonezilla” Shortcut
Right click on your desktop and select “Create Document” -> “Empty File”. Paste the following information inside the file and save it with the name “Start-Clonezilla.sh”.
#!/bin/bashecho "Clonezilla Starting"
'/etc/init.d/dhcp3-server' start
/opt/drbl/sbin/drbl-ocs -b -l en_US -y1 -p choose select_in_client
Right-click on your newly created shortcut; select “Properties” and click on the “Permissions” tab and check “Enable executing file as a program“.
“Start Clonezilla Using Multicasting” Shortcut
Right click on you desktop and select “Create Document” -> “Empty File”. Paste the following information inside the file and save it with the name “Start-Clonezilla-Multicasting.sh”.
#!/bin/bashecho "Clonezilla Starting"'/etc/init.d/dhcp3-server' start
/opt/drbl/sbin/drbl-ocs -b -g auto -e1 auto -e2 -x -j2 -p reboot --clients-to-wait 8
--max-time-to-wait 250 -l en_US.UTF-8 startdisk multicast_restore CLIENT-NAME sda
Substitute “CLIENT NAME” with the name of the image you wish to use for cloning your clients. Right-click on your newly created shortcut, select “Properties” and click on the “Permissions” tab and check “Enable executing file as a program“.
“Stop Clonezilla” Shortcut
Right click on your desktop and select “Create Document” -> “Empty File”. Paste the following information inside the file and save it with the name “Stop-Clonezilla.sh”.
#!/bin/bash echo "Clonezilla Stopping"
/opt/drbl/sbin/clean-dhcpd-lease
'/etc/init.d/dhcp3-server' stop
/opt/drbl/sbin/drbl-ocs stop
Right-click on your newly created shortcut, select “Properties” and click on the “Permissions” tab and check “Enable executing file as a program“.
To reserve an IP address in DHCP use
host <hostname> {
hardware ethernet <MAC address>;
fixed-address 192.168.0.3;
}