If you have a partition, say /dev/hda1, (or any other block device) then you can create a backup image of it using:
Code:
bzip2 < /dev/hda1 > hda1bak.bz2
You can then restore the image from backup using:
Code:
bunzip2 < hda1bak.bz2 > /dev/hda1
Make sure that /dev/hda1 isn't mounted for either of these operations. You can restore onto any partition of exactly the same size and geometry. Obviously, if you don't have enough space to make the image, it won't work.
Edit: This works for any block device, provided that the device isn't in use when you try this. An NTFS partition contains all of its data inside the partition, so this will work. It's not optimal, though; it will sit and read sectors of empty space for example. You can also use the dd command to make this more efficient, by reading block sizes equal to the cache size on the disk.