在任何 Linux 发行版上恢复系统的 Rsync 备份

在任何 Linux 发行版上恢复系统的 Rsync 备份

我使用以下别名将 Ubuntu 22.04 LTS 上的根目录备份到外部闪存驱动器

alias backup='sudo rsync -aAXHS --info=progress2 --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*", "/USBDrive", "/lost+found"} / /USBDrive && notify-send -t 10000 "Backup complete"'

我的 USB 驱动器上的文件系统是 ext4。

我意识到这可能不是最好的方法,但我遇到了一些问题,需要重新安装以查看是否可以解决这些问题。

我看到了以下文章,将来可能会尝试它们,因为它们看起来更容易

复制整个根目录(/)以将操作系统转移到新计算机?

根文件系统的备份与恢复(Ubuntu 20.04)

所以我的问题是,我目前拥有的备份有什么建议?据我所知,恢复根目录看起来很麻烦。除非有人知道一种相当简单的方法,否则我想我只会恢复主目录。我正在寻找一种在任何 Linux 发行版上备份和恢复主目录的方法(最好不需要安装其他任何东西:这是使用 rsync 命令的动机)。在同一台计算机上重新安装相同的操作系统后,是否真的像在 rsync 命令中反转源和目标一样简单进行恢复,如果我要转移到没有相同父版本的新发行版(例如 Debian 与拱Linux?我还有克隆到主目录的 git 存储库。我不确定这是否有什么区别,以及这是否是存储库的正常做法。我还不确定如果在 Ubuntu 22.04 LTS 上恢复,是否会保留备份中使用 apt 软件包管理器安装的软件包。

更新:

roaima 的答案在安装目标磁盘后使用实时磁盘对我有用。这没有保留使用 apt 包管理器安装的包,但我期望如此。因此,您必须从 git 存储库重建程序。如果迁移到具有不同父级的另一个操作系统,例如。 Arch Linux,根目录树是不同的,所以我不确定你是否恢复的不仅仅是主目录。

答案1

备份命令丢失--numeric-ids,但由于您只是在本地复制,因此可能并不重要。

要恢复备份,请交换源参数和目标参数。--dry-run测试时记住该选项。

您可以选择仅恢复您的主目录。复制完成后,确保所有者和组正确(您安装了新操作系统,因此我们不应假设目标用户的 uid 和 gid 与备份中的相同)

find /home/whoever -user 12345 -exec chown newuser {} +
find /home/whoever -group 12345 -exec chgrp newgroup {} +

相关内容