I find that cpio is great for doing a "live" system backup.
For example: To backup my Fedora system, I would boot into FC5 and save a backup image onto another hard drive partition ...
Code:
(cd /; find . -xdev | cpio -voc > /mnt/backup/linux.cpio.gz)
Now the restore operation kind of assumes that your system has been hosed. Therefore, you need to do the restore from a livecd or another system which is still working.
For example: To restore my FC5 to /dev/sda1 ...
Code:
mkfs.ext3 /dev/sda1
mkdir /mnt/mudd
mount /dev/sda1 /mnt/mudd
(cd /mnt/mudd; cpio -vicdm < /mnt/backup/linux.cpio.gz)
I also find partimage to work very nicely for system backup/restore.