Sometimes I want to take an image of an entire disk and back it up to disk on another host which resides on the same network. While one could setup ssh, rsync, or some other mechanism to accomplish this, sometimes it is just easier to pipe
nc so that you don’t have to spend a lot of time configuring network settings. So, here’s a simple and quick way to go about backing up an entire disk image to another machine on the same network. On the receiving host, you’ll want to start up
nc with the following command.
nc -l 9876 | dd of=/path/to/img
This will get the machine listening for connections on port 9876 and piping everything to
dd and into the destination image file. Once you have that running, you will need to boot the source machine into either a live environment off optical media or off a different hard disk than the one you’re trying to backup. In this example, I am backing up
/dev/sda on the source machine. So, now that the destination machine is listening, we can start up
dd on the source machine and pipe the output to
dd if=/dev/sda | nc destinationip 9876
That’s pretty much all there is to it. Be sure that no other machines send traffic to the destination machine on the port you’ve chosen (9876 in this example).
Once you have backed up the entire image of the drive, you can then use kpartx to make the partitions available for mounting. Running the following command will list the available partitions from the drive image.
This should give you output something like the following.
loop0p1: 0 305172 /dev/loop0 63 loop0p2: 0 40965750 /dev/loop0 305235 loop0p3: 0 210322980 /dev/loop0 41270985 loop0p4: 0 33559722 /dev/loop0 251594028
To make them available, run
kpart -a. You should then have the mappings available in