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........
Use fdisk on your USB drive to create a bootable NTFS partition (in my case /dev/sdb):
sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)........
grub> root (hd0,0)
root (hd0,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
setup (hd0)
But if you do:
root (hd1,0)
setup (hd1)
it does work, I think hd0/sda had a GPT partition that was not removed properly (what I did was just dd bs=512 count=1 the partition table from another drive since the partition table should be identical).
Checking if "/boot/grub/........