Restoring the partition table and a fsarchiver backup from a dead disk to a new one

Solution 1:

It looks like the .grubparts file is from the wrong disk. Your "old" partition list shows a normal MBR-format partition table, but what you restored looks like the "protective MBR" that is normally found on GPT-partitioned disks – it has the special partition of type 0xEE that usually indicates "you shouldn't be looking here, you should be looking at the GPT in sector 1 instead".

(The MBR is in sector 0, while the 'main' GPT occupies sectors 1-33 and the 'backup' GPT is at the end of the disk.)

Also, GPT disks are typically used with UEFI firmware, and the EFI boot process doesn't use the "boot sector" – it is normal for the protective MBR to be accompanied by a completely blank boot code area. (The bootloader for EFI systems is stored as a regular file in a regular partition.)

There are two options:

  • Look for another file that might have the correct partition table.

    (Also, after restoring a partition table using dd, you might need to explicitly tell the kernel to rescan it – otherwise the /dev nodes won't appear on their own. This can be done using partx -u, or partprobe, or by running fdisk and asking it to 'w'rite the partitions it found.)

  • Manually rebuild the partition table from scratch, by creating partitions using the "start" and "end" sector numbers that you conveniently have in the old 'fdisk' output.

    (You don't need to manually create the "extended" partition, just p1 as "primary" and p5 as "logical".)