We will save all the partitions entries (both primary and logicial ones which appear in the extended partition). In this example, we’ll be assuming that hda (the first IDE hard disk) is to be backed up.

First, we will save the MBR with DD (GNU convert and copy)

cd /root mkdir partition-backup cd partition-backup dd if=/dev/hda of=backup-hda.mbr count=1 bs=512

It will produce a very small, but very important file: 512 bytes of data. Now, we will save entries of the extended partitions:

sfdisk -d /dev/hda > backup-hda.sf

sfdisk is a tool provided with the util-linux package.

IMPORTANT: You should now put these files somewhere safe – copy them to a floppy disk (and take a copy of it!), or burn them onto a CD. Keep these files safe. Do not leave them on your hard drive – if there is a problem with the drive, you may not be able to access these files, and while your partition images won’t be wortheless, it will certainly be a lot harder to restore your data.

Restoring partition entries from the backup

Be careful, restoring is a dangerous action – it can destroy data! First, we will restore the Master Boot Record:

dd if=backup-hda.mbr of=/dev/hda

Then, here is how to restore extended partitions entries:

sfdisk /dev/hda < backup-hda.sf

To finish, you will have to reboot your computer.

Using Partclone with an ext4-formatted partition

Without compression

To backup without compression:

$ partclone.ext4 -c -s /dev/sda1 -o ~/image_sda1.pcl

To restore it:

$ partclone.ext4 -r -s ~/image_sda1.pcl -o /dev/sda1

With compression

This time, backup with compression:

$ partclone.ext4 -c -s /dev/sda1 | gzip -c > ~/image_sda1.pcl.gz

Note: For maximum compression use “gzip -c9”

Restore it:

zcat ~/image_sda1.pcl.gz | partclone.ext4 -r -o /dev/sda1

Whole system can be on a thumbdrive with clonezilla….

Then for SWAP:

swapoff

mkswapfs /dev/sda5

swaponn

Restore:

swapoff /dev/sda5

dd if=backup.mbr of=/dev/sda

sfdisk /dev/sda<backup.sf

zcat sda1.partclone.img.gz|partclone.ext4 -r -o /dev/sda1
5 Troubleshooting

It is possible that you see this message during the restore:

Failed to install grub

and that the system will not boot afterwards:

Grub
error 2

(I’ve had this with Ubuntu systems.)

The solution is to boot into a rescue system (e.g. Knoppix or the Ubuntu Live-CD) and install GRUB from the rescue system.

Once Knoppix or the Ubuntu Live system has started, open a terminal and become root:

Knoppix:

su

Ubuntu:

sudo su

In this example, I have one big partition (/dev/sda1) that also contains the /boot directory (the Boot column is marked with a star).

I will now mount that partition to the /mnt directory:

mount /dev/sda1 /mnt
mount -o bind /dev /mnt/dev
mount -o bind -t proc /proc /mnt/proc

(If you have a separate /boot partition, e.g. /dev/sda2, you’d mount it to /mnt/boot after you have mounted /dev/sda1 to /mnt.)

Now we install GRUB as follows:

chroot /mnt grub-install –no-floppy “(hd0)”

This will give you the following error:

root@Knoppix:~# chroot /mnt grub-install –no-floppy “(hd0)”

You shouldn’t call /sbin/grub-install. Please call /usr/sbin/grub-install instead!

/dev/sda1 does not have any corresponding BIOS drive.
root@Knoppix:~#

To overcome the error, run

chroot /mnt grub-install –no-floppy “(hd0)” –root-directory=/ –recheck

root@Knoppix:~# chroot /mnt grub-install –no-floppy “(hd0)” –root-directory=/ –recheck

You shouldn’t call /sbin/grub-install. Please call /usr/sbin/grub-install instead!

Probing devices to guess BIOS drives. This may take a long time.
Installing GRUB to (hd0) as (hd0)…
Installation finished. No error reported.
This is the contents of the device map //boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install’.

(hd0) /dev/sda
root@Knoppix:~#

That’s it – now reboot…

reboot

… and don’t forget to remove the Knoppix or Ubuntu CD from the CD drive. If everything goes well, the GRUB error should be gone, and the system should boot without any problems.