如何在执行 dist 升级之前创建磁盘的完整备份以回退?

如何在执行 dist 升级之前创建磁盘的完整备份以回退?

我正在准备一个dist-upgrade.在执行此操作之前,我想对整个磁盘进行备份,以便即使升级失败我也可以回退到备份。我有两块SSD,/dev/nvme0n1一块是生产的,有500G,另/dev/nvme0n2一块用作备份,有1T,是空的。

首先,我打开gnome-disk-utility整个文件并将其格式化/dev/nvme0n2ext4.然后我打开GUI,向“要备份的文件夹”deja-dup添加一个条目,选择作为目标。我选择了一个加密密码,然后运行了该工具。我运行它并开始工作。花费的时间比我预期的要长得多。当我回到家时,事情还没有结束。整个过程大概持续了10个小时左右。//dev/nvme0n2

完成后,我得到了一大堆未备份的文件列表。其中许多文件要么是缺乏权限的文件,要么是在备份运行时被修改的临时文件。由于/boot/efi是被排除的文件夹之一,我可能无法从备份启动。

我意识到,为了进行完整的备份,我可能必须从实时 USB 启动并从那里运行备​​份实用程序,以便在运行时源磁盘中的文件不会被修改。是否有命令行工具可以将/或整个磁盘复制到另一个磁盘?我不想再等半天才意识到我一开始就没有做得好。获得原始磁盘的完整副本后,GRUB如果我的主磁盘在升级失败后无法启动,是否会自动回退到该副本?如果没有,我应该如何配置它以便可以从启动菜单启动到辅助驱动器?/dev/nvme0n1是 LUKS 加密的。

答案1

正如您所说:实时 USB(例如 systemrescuecd)是最佳选择。

假设从实时 USB 启动时,设备名称仍然相同,我会执行以下操作(过去已经做过)。

mount /dev/nvme0n2 /mnt
dd if=/dev/nvme0n1 of=/mnt/original.img bs=4096

由于这会创建整个磁盘的逐字副本,因此无论是否加密都无关紧要。如果您的机器有非常糟糕的 CPU,您可以通过将行更改dd为来获得一些性能:

dd if=/dev/nvme0n1 bs=4096 | gzip > /mnt/original.img.gz 

相关内容