wanderings/content/posts/partitions-backup.md

1.7 KiB

+++ title = "disks backup" date = 2020-09-16 tags = ["admin"] +++ Backing up a whole disk is always quite sensible ; you rarely have the occasion to test if your backup really works. Besides, the logical architecture of a disk and its partitions can be quite sophisticated, with numerous different options, that vary much between operating systems. Here we will describe how to backup and restore a disk with some primary partitions. We will assume it is a bootable disk with a Master Boot Record at the very beginning of it (MBR is limited to 446 bytes by conception). Note that most recent machines boot in UEFI mode, which is not covered here.

Backup a bootable disk

Let's say your disk is called sdX.

Backup Master Boot Record

The MBR is a portion of bootable binary code. Do not try to read it with any text editor ! They may slightly modify it, rendering it unbootable.

$ dd if=/dev/sdX of=path/to/disk_backup.mbr bs=446 count=1

Backup partition table

$ sfdisk -d /dev/sdX > path/to/disk_backup.partition_table.txt

Backup useful partitions

For each partition (numbered Y) :

$ dd if=/dev/sdXY of=path/to/partition_backup.dd status=progress

Compressed variant :

$ dd if=/dev/sdXY status=progress | gzip > path/to/partition_backup.dd.gz

Restore a backed up disk into sdX

Edit path/to/disk_backup.partition_table.txt to reflect the partitions you will actually restore. Then :

$ dd if=path/to/disk_backup.mbr of=/dev/sdX
$ sfdisk /dev/sdX < path/to/disk_backup.partition_table.txt

You might have to eject and re-plug the disk to see the added partitions. Then for each of those :

$ zcat if=arch_zero_pY.dd.gz | dd of=/dev/sdXY

And finally restore MBR :

$ dd if=path/to/disk_backup.mbr of=/dev/sdX bs=446 count=1