FSArchiver can extract an archive to a partition which is smaller that the original one as long as there is enough space to store the data. It can also restore the data on a different file-system, so it can use it when you want to convert your file-system: you can backup an ext3 file-system, and restore it as a reiserfs.
FSArchiver is working at the file level. It can make an archive of filesystems (ext3, ext4, reiserfs, xfs, ntfs, ...) that the running kernel can mount with a read-write support. It will preserve all the standard file attributes (permissions, timestamps, symbolic-links, hard-links, extended-attributes, ...), as long as the kernel has support for it enabled. It can also be used to archive and extract ntfs filesystems.
OpenSuSe user can install FSArchiver using "1-click" installer - here
Fedora user can install FSArchiver using yum: yum install fsarchiver
Here is how to use FSArchiver to backup a partition of your disk partition. Let's consider you want to take backup of on /dev/sda8 and you want to back it up to a file on /mnt/backup. You can run this command from terminal:
# fsarchiver savefs -v -a /mnt/backup/nikesh.fsa /dev/sda8
Here is how to restore a filesystem from an archive when there is only one filesystem in that archive:
# fsarchiver restfs /mnt/backup/nikesh.fsa id=7,dest=/dev/sda8