I've used partimage before with good results:
I would like to take image of a remote machine so that i could use it to restore in case the server crashes.
Thanx in advance.
63,000 bugs in the code, 63,000 bugs,
ya get 1 whacked with a service pack,
now there's 63,005 bugs in the code!!
First of all, since you said remote, I am going on the premise that you don't have access to the physical hardware. You can take an image remotely if you have root SSH access to the server you are wanting to 'image'. The tool to use is called dd. For detailed help, you can type in dd --help at a command prompt.
To make an image you would SSH or telnet (I suggest never using telnet) and type the appropriate dd command.
dd if=/dev/hdx of=/dev/hdy
dd if=/dev/hdx of=/path/to/image
dd if=/dev/hdx | gzip > /path/to/image.gz
The first example will acctually 'clone' the first HD to a second HD. The second will take an image of the HD and create a file (image) you can use to restore the HD. The third example will do the same as the second but also compress the file to take up less space.
Now, the restore process is a little more tricky. As with any restore process, it is gonna require someone who is onsite with the machine you are restoring to do some work. If you cloned the HD to another one in the machine, it is a simple swap of drives and you are going. If however you took route/option 2 or 3 from about you either ship a HD with the restored image and have the person onsite install it, you have the person onsite install a mini-os install enough to get you on the machine and a second HD to restore the image to (will require the person onsite to switch drives once this is complete), you have the onsite person boot from a restore CD/DVD and set up remote access for you to be able to restore the HD from the backup file you created in example 2 or 3.
dd if=/path/to/image of=/dev/hdx
gzip -dc /path/to/image.gz | dd of=/dev/hdx
These comands will restore an image taken by steps 2 or 3 above.
Hope this helps.