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/sda1 $ cat size
2097152
hostdev@box /sys/class/block/sda $ cat sda2/start
2099200
hostdev@box /sys/class/block/sda $ cat sda2/size
62914560
hostdev@box /sys/class/block/sda $ cat sda3/start
65013760
hostdev@box /sys/class/block/sda $ cat sda3/size
520923740
Now create the same 3 partitions at the same starting point and with the same size using fdisk:
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x8e7672df.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-585524838, default 2048): 2048
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-585524838, default 585524838): 2097152
Created a new partition 1 of type 'Linux' and of size 1023 MiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2):
First sector (2097153-585524838, default 2099200): 2099200
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-585524838, default 585524838): 62914560
Created a new partition 2 of type 'Linux' and of size 29 GiB.
Command (m for help): n
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (3,4, default 3): 65013760
Value out of range.
Partition number (3,4, default 3):
First sector (2097153-585524838, default 62916608): 65013760
Last sector, +/-sectors or +/-size{K,M,G,T,P} (65013760-585524838, default 585524838): 520923740
Created a new partition 3 of type 'Linux' and of size 217.4 GiB.
restore, partition, linux, mint, ubuntu, debian, machinehere, fdisk, dev, sda, info, sys, quot, hostdev, partitions, util, contain, dos, disklabel, disk, identifier, df, primary, extended, container, select, default, sector, sectors, mib, gib,