使用 rsync 创建完整的操作系统备份/克隆是否足够?

使用 rsync 创建完整的操作系统备份/克隆是否足够?

将用于rsync复制整个文件系统,例如做

rsync -avxHAX --progress / /dev/[backup disk]

按照建议这里,导致完全的重复的Linux系统?即,所有系统和安全设置、网络配置(代理、VPN)、用户/组策略等是否都会被忠实地复制,或者除了文件系统之外的东西(引导加载程序、分区表)之外,还有什么东西rsync会丢失吗?

如果源磁盘是 LUKS 加密的(例子),即做

cryptsetup luksOpen /dev/[source disk] && rsync -avxHAX --progress / /dev/[backup disk]

答案1

不,它根本不起作用。

您应该将其发送到已安装的文件系统,所以/dev/[backup disk]不是像/mnt/[backup disk]/执行完之后那样mount /dev/[backup disk] /mnt/[backup disk]

此外,如果您有多个“真实”文件系统(ext4、btrfs、zfs...),您也会错过这些。如果你跑步mount | grep \/dev\/sd,在大多数情况下你可以看到你拥有的所有东西。
(也有例外:当前未挂载的文件系统、不是 /dev/sd 的文件系统X设备, ...)

编辑:我没有回答第二个问题。这里有同样的问题,同样的修复也适用。
但是:如果目标文件系统不使用加密,所有内容都将被解密保存

答案2

实际上你可以用 来做到这一点rsync。但为什么还要手动进行呢?

要制作操作系统的完整副本,最好的工具是Timeshift(它由 Debian 及其后代提供,可能还有其他公司提供)。它将创建完整备份恢复所需的所有内容的完整副本。在幕后,它将Timeshift使用rsync,但它已经知道完整复制所需的操作系统的所有部分。

答案3

我认为你在问两个不同的问题。

rsync 会复制文件系统吗?是的,它会。它还可用于在文件系统之间进行转换(例如,您可以将 ext3 文件系统复制到 ext4 分区)。文件系统需要相互支持功能:将 ext4 复制到 fat 会丢失很多功能。您确实需要挂载文件系统;我假设你知道该怎么做。您通常还可以获取 Live CD 来安装文件系统,然后按 Control-Alt-T 打开命令提示符。

我对 LUKS 不熟悉;我希望如果您可以挂载文件系统以便可以读取文件,那么它将复制。

您原来的问题还询问了克隆。您使用 rsync 制作的副本几乎肯定不会启动。您还需要执行几个步骤。

如果分区已更改,则需要修改 /etc/fstab。如果您现有的系统使用 UUID 来标识分区,您将需要修改 fstab。如果需要,您可以将其改回旧的非 UUID 样式;这使得克隆更容易,但不建议这样做。

更新添加:最近的 debian 内核更改(2022 年中的某个时间)不再支持 fstab 中引导设备的非 UUID 指定。您必须提供 UUID 才能使分区可引导。

然后您需要添加启动代码。您将需要使用 chroot 来修改目标系统。最常见的是安装 grub2。我发现的最好的例子在这里:Ubuntu 社区有关 grub2 的帮助

由于链接会四处移动,我将无偿复制一些示例:

这是安装 grub 的一种方法

sudo mount /dev/sdXY /mnt # Example: sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt/boot /dev/sdX # Example: sudo grub-install --boot-directory=/mnt/boot /dev/sda

并更新 grub 中的图像目录:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
sudo update-grub

答案4

单独使用 rsync 是无法完成的。您应该首先对整个系统进行备份。我个人使用 rsync 包装器(蝴蝶备份) 去做这个。这是一个例子:

$ bb backup --computer mypc --destination /backup --data System --type Unix

然后你应该安装一台新机器并进行如下恢复:

$ bb restore --catalog /backup --last --computer mypc

通过这种方式,您可以将必要的文件(passwd 等)带到新系统,而无需触及特殊文件,例如/dev

相关内容