How to clone or copy your harddisk over the network: Difference between revisions
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
#netcat <ip van server> 2222 | gzip -cd | dd of=/dev/sda | #netcat <ip van server> 2222 | gzip -cd | dd of=/dev/sda | ||
op deze manier halen we een throughput van 14,1 MB/s, 160 GB in 11543 seconden (3,2 uur) | |||
==Methode 2 (niet getest!)== | ==Methode 2 (niet getest!)== |
Revision as of 06:50, 13 August 2008
Methode 1 (getest!)
Op de bron/zender:
#dd if=/dev/sda | gzip -c | netcat -l -q 0 -p 2222
Op het ontvanger/doel:
#netcat <ip van server> 2222 | gzip -cd | dd of=/dev/sda
op deze manier halen we een throughput van 14,1 MB/s, 160 GB in 11543 seconden (3,2 uur)
Methode 2 (niet getest!)
How do I use netcat to copy hard disk image?
Our sample setup
HostA // 192.168.1.1
sda NETWORK sdb
HostB // 192.168.1.2
Your task is copy HostA /dev/sda to HostB's /dev/sdb using netcat command. First login as root user Command to type on hostB (receiving end ~ write image mode)
You need to open port on hostB using netcat, enter :
# netcat -p 2222 -l |bzip2 -d | dd of=/dev/sdb
Where,
* -p 2222 : Specifies the source port nc should use, subject to privilege restrictions and availability. Make sure port 2222 is not used by another process. * -l : Used to specify that nc should listen for an incoming connection rather than initiate a connection to a remote host. * bzip2 -d : Compresses image using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding. This will speed up network transfer ( -d : force decompression mode) * dd of=/dev/sda : /dev/sda is your hard disk. You can also specify partition such as /dev/sda1
Command to type on hostA (send data over a network ~ read image mode)
Now all you have to do is start copying image. Again login as root and enter:
# bzip2 -c /dev/sda | netcat hostA 2222
OR use IP address:
# bzip2 -c /dev/sda | netcat 192.168.1.1 2222
This process takes its own time. A note about latest netcat version 1.84-10 and above
If you are using latest nc / netcat version above syntax will generate an error. It is an error to use -l option in conjunction with the -p, -s, or -z options. Additionally, any timeouts specified with the -w option are ignored. So use nc command as follows.
On hostA, enter:
# nc -l 2222 > /dev/sdb
On hostB, enter:
# nc hostA 2222< /dev/sda
OR
# nc 192.168.1.1 2222< /dev/sda
Using a second machine (hostB), connect to the listening nc process at 2222 (hostA), feeding it the file (/dev/sda)which is to be transferred. You can use bzip2 as follows. On hostA, enter:
# nc -l 2222 | bzip2 -d > /dev/sdb
On hostB, enter:
# bzip2 -c /dev/sda | nc 192.168.1.1 2222