like mentioned above you can also use dd, and i was just browsing around and noticed partimage
which looks like you can get done what you want with it... and quoted from the page
Partition Image will only copy data from the used portions of the partition. For speed and efficiency, free blocks are not written to the image file. This is unlike the 'dd' command, which also copies empty blocks.
so you can be the judge on which you think will work best for you