正在运行的系统的远程完整系统备份

Mic*_*cka 5 backup

我有一个系统,我想在其中创建完整的系统备份。\n备份应包括系统存储驱动器上的所有系统设置、驱动程序、用户数据等。\n备份应可用于还原系统驱动器特定PC机,更换物理存储设备后,一旦系统驱动器崩溃。

\n

有一种情况,我只有远程 ssh 访问权限来创建备份。为了恢复,我显然必须(并且可以)物理地访问电脑(以更换驱动器等)。\n此外,电脑无法直接访问互联网。我通过互联网连接到跳转主机,并可以从那里通过以太网访问 PC。

\n

通过物理访问,我将通过 ventoy bootstick 启动 PC,启动到 gparted live 系统并使用 dd 将系统分区克隆到一些映像文件。但这不可能通过远程访问实现。

\n

有没有其他选择?\ne.g.:\n是否可以使用备份策略,例如

\n
tar -cvpzf /backup.tar.gz --exclude=/backup.tar.gz --one-file-system\n
Run Code Online (Sandbox Code Playgroud)\n

或\n https://help.ubuntu.com/community/BackupYourSystem/TAR

\n

或者这不适合我的情况?或者这是不可能的或者可能不够完整?

\n

我可以将备份从该 PC 远程移动到 NAS 或跳转主机,然后从那里下载(或直接生成备份到 NAS),因此实际上是如何生成合适的备份,而不是如何制作确保系统崩溃时保留备份文件。而且,如果当前的 48% 太接近 > 50%,我将能够在创建备份之前将已用磁盘空间减少到 30% 以下(这可能会阻止任何将备份存储在驱动器本身上的策略)。

\n

这些是相关的分区:

\n
/dev/sdf1        2048    1050623    1048576  512M EFI-System\n/dev/sdf2     1050624 3705751551 3704700928  1,7T Linux-Dateisystem\n/dev/sdf3  3705751552 3750748159   44996608 21,5G Microsoft Basisdaten\nsdf  \n16,4T root  disk  brw-rw----\n\xe2\x94\x9c\xe2\x94\x80sdf1 vfat                  B687-437E                            /boot/efi                                          \n512M root  disk  brw-rw----\n\xe2\x94\x9c\xe2\x94\x80sdf2 ext4                  56aaa632-d318-4ca9-8094-f803b2237e44 /media/sdf2                                    \n1,7T root  disk  brw-rw----\n\xe2\x94\x94\xe2\x94\x80sdf3 vfat                  30A8-C177                                                                          \n21,5G root  disk  brw-rw----\n/dev/sdf2                       1822227568  817873716   911719948   48% /\n/dev/sdf1                           523244       5360      517884    2% /boot/efi\n
Run Code Online (Sandbox Code Playgroud)\n

Rin*_*ind 6

“司机”是行不通的。这些是内核模块,需要加载。如果不备份整个内核(这意味着整个系统),您就无法复制它们

我建议将此限制为您的个人文件,并为安装后更新创建一个脚本,并将恢复视为安装新安装(即大量“sudo apt install/purge”和“gsettings”或“sed”命令您随后执行以恢复您的首选项)而不是修复旧系统。这意味着如果您想安装新版本的 Ubuntu,这也适用。


我可以添加不同的方法吗...

如果我是你,我就不会使用tarbut rsync。您可以在正在运行的系统上使用 rsync,也可以使用外部目标。像这样的东西:

sudo rsync -ahPHAXx --delete --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} / {user}@{host}:/backup/{date}/ 
Run Code Online (Sandbox Code Playgroud)

(如果您进行增量备份,您可以从该列表中删除 mnt 和媒体(见下文);所有其他都是 tmpfs,因此不适合备份)还有一个额外的好处,即恢复会一个接一个文件,因此无需留意用于磁盘空间。另外,如果需要,您可以恢复一个文件。

如果您想要完整备份并且有空间,您可以通过向目标添加 {date} 来进行多个备份。在目的地上,您可以使用某种逻辑删除较旧的备份(保留 7、14、30 天并删除较旧的备份)

rsync还可以进行增量备份(因此仅复制自上次备份以来的差异),因此这会大大降低带宽使用量。其工作原理是:所有备份都有一个时间戳,您的第一个备份是完整备份,所有其他备份将最新时间戳与当前系统进行比较,然后创建差异备份。好处:你可以告诉 rsync 恢复特定的时间戳(即“让系统像 2 天前的 13:00 一样)。