![在任何 Linux 发行版上恢复系统的 Rsync 备份](https://linux22.com/image/218819/%E5%9C%A8%E4%BB%BB%E4%BD%95%20Linux%20%E5%8F%91%E8%A1%8C%E7%89%88%E4%B8%8A%E6%81%A2%E5%A4%8D%E7%B3%BB%E7%BB%9F%E7%9A%84%20Rsync%20%E5%A4%87%E4%BB%BD.png)
我使用以下别名将 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。
我意识到这可能不是最好的方法,但我遇到了一些问题,需要重新安装以查看是否可以解决这些问题。
我看到了以下文章,将来可能会尝试它们,因为它们看起来更容易
所以我的问题是,我目前拥有的备份有什么建议?据我所知,恢复根目录看起来很麻烦。除非有人知道一种相当简单的方法,否则我想我只会恢复主目录。我正在寻找一种在任何 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 {} +