所以我有一个带有 Linux 系统的 U 盘,计划如下:
我想在 U 盘上安装一个备份程序,将系统备份到服务器上。服务器安装了另一个 USB 记忆棒(型号和尺寸完全相同),数据将写入其中。
如果 USB 记忆棒 A 丢失,我希望能够回家并从服务器中取出 USB 记忆棒 B 并开始使用它,就像什么都没发生一样。
我有这个 rsync 命令行:
rsync -avPAHXxz --numeric-ids --exclude='/dev' --exclude='/sys' --exclude='/efi' --exclude='/proc' --exclude='/run' --exclude='/mnt' --exclude='/tmp' --exclude='/home/*/.cache' --exclude='/root/.cache' --delete -e 'sudo -u user ssh' -- / root@server:backups/rootfs
我有一个类似的目录/efi
。
当计划备份然后从服务器恢复它时,这非常有效。但我想知道当我的目标是让备份本身成为最终可用的系统时,它是否仍然是一个强大的解决方案。
额外问题:新系统上分区的 UUID 不同,这意味着在我可以使用 USB 记忆棒之前,BI 必须进入并更改 UUID。我确信我可以使用 bash 脚本来做到这一点,所以这不是问题。但是还有其他类似的事情我应该注意吗?在系统可以工作之前需要交换一些其他特定于实例的数据?
答案1
使用存档模式并排除临时目录,如 run、sys、tmp、run、proc 等。您将在此链接上找到更多内容。访问:https://wiki.archlinux.org/title/rsync#As_a_backup_utility
对于你的奖金问题,我有很好的解决方案,使用 dd :
备份: dd if=/dev/sda | gzip -9 > 备份.img.gz
恢复:zcat backup.img.gz | dd=/dev/sda
但此时系统不应该运行,否则会出现问题。就像您可以为此目的启动实时发行版一样。