RHEL: Back-up/Replicate a partition table
Article Number: 62 | Rating: Unrated | Last Updated: Sun, May 27, 2018 8:39 PM
# Tested on RHEL 5, 6 & 7
# Given the importance of disk's partition table, one should consider to make a backup
# in a regular basis in order to be able to restore it in case it will get corrupted,
# modified or deleted by mistake.
# We may still have the data unchanged on the disk but without a correct partition table
# it may be almost impossible to recover it.
# To get a disk's table partition we can use the 'fdisk -l' command:
fdisk -l /dev/sda
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 33 265041 83 Linux
/dev/sda2 34 1958 15462562+ 8e Linux LVM
/dev/sda3 1959 2088 1044225 8e Linux LVM
/dev/sda4 2089 2349 2096482+ 5 Extended
/dev/sda5 2089 2349 2096451 83 Linux
# This output may be stored in a text file. Then we could use this information to
# recreate partitions manually.
# Apart from this method we may use 'sfdisk' command to inject partition table to
# a disk:
# First we get disk's partition table to a text file (-d for "dump"):
sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors
/dev/sda1 : start= 63, size= 530082, Id=83
/dev/sda2 : start= 530145, size= 30925125, Id=8e
/dev/sda3 : start= 31455270, size= 2088450, Id=8e
/dev/sda4 : start= 33543720, size= 4192965, Id= 5
/dev/sda5 : start= 33543783, size= 4192902, Id=83
sfdisk -d /dev/sda > sda_partition_table
# and then, when needed, we could restore the partition table to the disk:
sfdisk /dev/sda < sda_partition_table
# Force option, '-f', may be useful in certain cases where a normal update is not possible
# Tip: We can use 'sfdisk' to replicate a partition table from a disk to another disk with
# the same geometry:
sfdisk -d /dev/sda | sfdisk [-f] /dev/sdb