我正在返回 Linux 并运行 Kubuntu 21.10,现在我已经按照我喜欢的方式配置了系统,我想对系统进行正确的完整备份。这是我用来在单独的驱动器上创建备份的命令:
sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} "/media/backuppath/"
这是我要备份的驱动器的分区:
/dev/sda1 fat32 /boot/efi (primary)
/dev/sda2 extended
/dev/sda5 ext4 /
我是 rsync 新手,因此了解此备份命令是否会处理恢复精确系统备份的所有事项会很有帮助:系统设置、安装的程序等。更重要的是,如果时机到了吗?
答案1
从最重要的最后一个问题开始。
为了恢复备份,您需要运行什么将取决于……您将在其上启动的系统……因为在最坏的情况下,(您的完整备份实际上有用的情况)您备份的系统刚刚损坏。
既然您获得了另一个磁盘,那么让它可引导怎么样,以便在最坏的情况下,您可以从它启动系统并恢复另一个磁盘。另一个直接的好处是您将避免恢复正在运行的系统......这总是导致不可预测的结果。
在这种情况下,您显然希望避免备份 fstab 和引导加载程序配置文件以及引导加载程序本身。 => 将它们的路径添加到排除列表中。
您还需要 rsync 的 --del 功能。
您还需要在严格控制最小运行进程数的情况下进行备份(和恢复)。 (我总是在单用户模式下将完整的 rsync 备份放在控制台下。)
您还更喜欢将目标安装在 /mnt 子目录上,并且更喜欢 rsync 到 /mnt/whatever 而不是 /media/whatever。
我的系统有 4 个分区 root、boot、var 和 home。作为我运行的示例:
if mount -L "${DEST_SYS}_ROOT"
then
if mount -L "${DEST_SYS}_VAR" "/mnt/${DEST_SYS}_ROOT/var"
then
if mount -L "${DEST_SYS}_BOOT" "/mnt/${DEST_SYS}_ROOT/boot"
then
if mount -L "${DEST_SYS}_HOME" "/mnt/${DEST_SYS}_ROOT/home"
then
rsync -aXH --info=progress2 --del --exclude={"/boot/boot.${BOOT_EXCL}","/boot/map.${BOOT_EXCL}","/dev/*","/media/*","/mnt/*","/proc/*","/root/MySys/Conf/fstab","/root/MySys/Conf/lilo.conf","/root/MySys/Conf/issue","/run/*","/sys/*","/tmp/*","lost+found"} / "/mnt/${DEST_SYS}_ROOT"
然后,回到我开始的地方,您启动什么命令来恢复备份?完全相同的一个,从备份系统启动。
注意:当然,如果您的系统严重损坏,导致 fstab 或引导加载程序损坏,您可能需要手动修复它们。