Table of Contents

Ubuntu - Disk - Restore Partition Table

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.


Record the start and size of each partition

Go into each partition and record the “start” and “size”.

cd /sys/class/block/sda/sda1 
cat start
2048
cat size 
2097152
cd /sys/class/block/sda
cat sda2/start 
2099200
cat sda2/size
62914560
cd /sys/class/block/sda
cat sda3/start 
65013760
cat sda3/size
520923740

Create new partitions

Create the same 3 partitions at the same starting point and with the same size using fdisk:

fdisk

returns:

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.