我通常使用 rsync 进行备份,命令如下:
rsync -avxz -e "ssh" --exclude ".gvfs" --numeric-ids / /media/Backup/slash/
我如何将 rysnc 使用的参数转换为 rdiff-backup?
更新:
好的,我给自己列了一份“购物清单”。
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
因此,剩下的就是如何保留权限、所有权、组、修改时间并进行递归。我不确定 rdiff-backup 是否已经这样做了,因为这是一个备份,我需要当然一切都得到了照顾,不仅仅是思考一切都已安排妥当。
我尝试过几次,但还没有找到配方:我用过
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/
备份和
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_/"
恢复。之后,我尝试使用新的 UUID 修改恢复中的 /etc/fstab 并更新 grub(使用新的 UUID),但我收到有关 /dev、/sys 和 /proc 不存在的错误。我如何使用 rdiff-backup,以便我只需恢复备份、更改 /etc/fstab(在恢复时)并更新/安装 grub?
答案1
有一个很好的例子说明如何使用 rdiff 备份根分区: http://manual.aptosid.com/en/sys-admin-rdiff-en.htm
我个人使用以下语法来备份:
rdiff-backup --exclude-sockets --exclude '/media/*/*' --exclude '/mnt/*' --exclude '/proc/*' --exclude '/sys/*' --exclude '/tmp/*' / {backup-dest-dir}
使用以下语法进行恢复:
rdiff-backup -r now {backup-dest-dir} {restore-dir}
您必须以 root 身份运行 rdiff-backup 才能保留权限、所有权、组、修改时间等。我可以确保 rdiff-backup 满足您的所有要求。
今天在从 Ubuntu 8.04.4 --> 10.04.4 --> 12.04 (dev) 升级失败后使用它来恢复根分区。
答案2
我觉得你被这个错误困扰了:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=397413
假设你的目标磁盘安装在/mnt/foo
你可能只需要做
mkdir /mnt/foo/dev /mnt/foo/sys /mnt/foo/proc
还有一个针对此错误的补丁,网址为http://thread.gmane.org/gmane.comp.sysutils.backup.rdiff-backup.general/6452,但它会尝试列出远程文件系统。