我有一个运行 Debian 8 的 xen VPS,它必须离线,所以我使用 rsync 像这样备份它。
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder
然后,我将该备份文件夹放入 tar.gz 并将其移至本地机器。
我现在有一个在线的 KVM VPS,也运行 Debian 8,我需要将其恢复到该状态。如何恢复该备份?我还需要做其他什么来确保它启动吗?可以通过 SSH/SCP 完成吗?
答案1
您漏掉了一个可能至关重要的参数rsync
:--hard-links
。这取决于发行版,我猜现在与过去有所不同,但系统目录和/或文件(比用户文件更容易)很容易成为其他文件的硬链接。例如,在 Archlinux 上,最近/usr/X11R6/bin
有一个硬链接/usr/bin
。目前,我无法为您提供今天的具体示例。您可以研究一下。
您可能还会因为将重要信息放入 而丢失信息tar.gz
。它会存储 ACL 吗?它会存储硬链接吗?
您还错过了--sparse
,但那仅仅只是一个不便而已。
要恢复它,我会启动一张 Live CD,或者 VPS 提供商提供的某种救援环境。然后,您只需将数据解压到根分区,chroot 到其中(使用绑定安装和/proc
),然后运行类似/dev
/sys
grub-install /dev/sda
这些选项可能因您的设置而异。
编辑:由于您可能有权访问原始 VPS,因此您可以执行以下操作:
pv /dev/vda | gzip --fast | ssh [email protected] "cat - > imagefile.gz"
然后在新主机上的救援环境中执行反向操作:
pv imagefile.gz | ssh [email protected] "gunzip - > /dev/sda"