I used the program dd for such things in Linux. OS X has it too (terminal software) but I think you would need to mount your MBP-HDD on another Mac (using Firewire maybe?) in order to restore it becuase I don't think there is a way to access the terminal without Mac OS X installed on the harddrive you want to write your data to. (You can also use a Linux Live-CD instead of mounting your disk on another Mac if there are drivers for everything you need (HDD, External HDD, Filesystem on the External HDD, etc)).
Thats what you have to do in the terminal:
Make an "image" oder "snapshot" of your disk:
sudo dd if=/dev/disk0 of=/Volumes/YOUREXTERNALDISK/disk.img
On the Live-CD you would need to figure out how everything is going to be mounted in the Linux System. It would be best to ask someone with Linux-knowledge to do it for you. It is basically this command:
dd if=/mountpoint/disk.img of=/dev/YOURDISK/