Here is an easy way to restore things if you have the starting point and size of each partition using fdisk:
In this example we pretend that /dev/sda was wiped out, but the running system still has the info in /sys/class/block/sda
Go into each partition and record the "start" and "size"
hostdev@box /sys/class/block/sda/sda1 $ cat start
2048
hostdev@box /sys/class/block/sda/sd........