Switch to using rdiff-backup for backups of / instead of rsync?

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?

Update:
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

There is a good example how to use rdiff to back up the root partition:

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 , but it will try to list remote filesystems.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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

You Might Also Like