Saturday, September 3, 2011

Ghosting The Linux Machine

This is a handy guide to ghosting one Linux box to another (or simply making a full backup of a desktop/server).
You might have a small office where you customise one desktop just how you like it and need to roll this out to N other PC's or simply want a backup of a server or desktop to another machine or even to an image file.
The main tool here is netcat which is extremely powerful and has a multitude of other great uses that won't be covered here.
Target Machine:
** Boot to linux rescue mode with networking (CentOS/RHEL works fine)
Initiate netcat to listen on port 30 - # nc -l -p | dd of=/dev/sda (assuming the hard drive is sda and not hda):
# nc -l -p 30 | dd of=/dev/sda
Source Machine:
Dump the contents of the disk to the target PC - #dd if=/dev/sda | nc
# dd if=/dev/sda | nc 30
Then to check that traffic is flowing, on the source go to another terminal (ALT/F2) and dump the tcp data on the NIC (assuming it's eth0):
tcpdump -tnli eth0 port 30
If you just want a backup image you could change the above output on the taget to:
# nc -l -p 30 | dd of=mybackup.img
That's it. Naturally the target PC/disk cannot be smaller than the source:) I hope this saves someone a lot of time