I usually use rsync to do backups, with a command like this:

rsync -avxz -e "ssh" --exclude ".gvfs" --numeric-ids / /media/Backup/slash/

How can I convert the arguments I use with rysnc to rdiff-backup?

OK, I made myself a "shopping list".

rsync flags: avxz = rlptgoDvxz
rdiff-backup flags (not complete): --preserve-numerical-ids  --exclude-other-filesystems --include-symbolic-links  --include-special-files

Shopping list:
   rsync flag                  rsync explanation                      rdiff flag?
   -r, --recursive             recurse into directories
X  -l, --links                 copy symlinks as symlinks   # done by --include-symbolic-links (I hope)
   -p, --perms                 preserve permissions
   -t, --times                 preserve modification times
   -g, --group                 preserve group
   -o, --owner                 preserve owner (super-user only)
X      --devices               preserve device files (super-user only)   # Hopefully taken care of by --include-special-files
X      --specials              preserve special files   # Hopefully taken care of by --include-special-files
X  -x, --one-file-system       don't cross filesystem boundaries   # Done by --exclude-other-filesystems
X      --numeric-ids           don't map uid/gid values by user/group name   #Done by --preserve-numerical-ids

So, what is left is how to preserve Permissions, Ownership, Groups, Modified times, and be recursive. I'm not sure if rdiff-backup already does this, since this is a backup, I need to be sure everything is taken care of, not just think everything is taken care of.

I've tried it a few times, but I haven't stumbled on the formula yet: I used

rdiff-backup -v5 --preserve-numerical-ids  --include-symbolic-links  --include-special-files --exclude-other-filesystems  "root@2001:470:e89d:9ab6:21b:24ff:fe75:5822::/" /media/Backup/rdiff/bjorn-laptop/one_ext4/

to backup and

rdiff-backup -r now -v5 --preserve-numerical-ids --force /media/Backup/rdiff/bjorn-laptop/one_ext4/ "root@2001:470:e89d:9ab6:21b:24ff:fe75:5822::/media/2f52fa73-b3a6-46ef-8e1b-e82d983b0b7f_/"

to restore. After that, I tried modifying /etc/fstab on the restore with the new UUID and updating grub (with the new UUID) but I got errors about /dev, /sys, & /proc not being there. How can I use rdiff-backup so I only have to restore the backup, change /etc/fstab (on the restore) and update/install grub?

2 Answers 2


There is a good example how to use rdiff to back up the root partition: http://manual.aptosid.com/en/sys-admin-rdiff-en.htm

Personally I use the following syntax to back up:

rdiff-backup --exclude-sockets --exclude '/media/*/*' --exclude '/mnt/*' --exclude '/proc/*' --exclude '/sys/*' --exclude '/tmp/*' / {backup-dest-dir}

And the following syntax to restore: rdiff-backup -r now {backup-dest-dir} {restore-dir}

You have to run rdiff-backup as root to remain permissions, ownership, groups, modified times, etc. I can ensure rdiff-backup takes care of all your requirements.

Used it today to restore the root partition after a failed upgrade from Ubuntu 8.04.4 --> 10.04.4 --> 12.04 (dev).


I think you are being bit by this bug:


Assuming your target disk is mounted at /mnt/foo You probably just need to do

mkdir /mnt/foo/dev /mnt/foo/sys /mnt/foo/proc 

There's also a patch for this bug at http://thread.gmane.org/gmane.comp.sysutils.backup.rdiff-backup.general/6452, but it will try to list remote filesystems.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.