无需克隆整个映像即可备份 Windows 分区的文件和 MBR

无需克隆整个映像即可备份 Windows 分区的文件和 MBR

我有一台预装了 Windows 的新电脑。我将重新对硬盘进行分区,保留原始 Windows 安装(在现在较小的分区上)和双启动 Linux。我将安装程序并将用户数据保存在单独的分区上。如下所示:

  • sda1-Windows(仅限操作系统)
  • sda2——Windows 应用程序
  • sda3——Linux
  • sda4-用户数据文件(不可执行)

前提是,如果 Windows 感染了病毒,我可以将 sda1 恢复到其初始状态并擦除 sda2。

我希望对 sda1 上的 Windows 安装进行快照。我可以dd if=/dev/sda1 of=/home/me/sda1.img并且我相信这足以备份文件以及 MBR,并且反向操作dd可以正确地将我恢复到初始(可启动)状态。

但是,sda1 可能很大(例如 200GB),其中只有一小部分用于原始安装。所以也许我可以

mount /dev/sda1 /windows
tar -cf /home/me/windows.tar /windows
dd if=/dev/sda1 bs=512 count=1 /home/me/windows_mbr.img

为了恢复它,我想我应该擦除并重新格式化 sda1,然后反转dd并解压 tar。

这能正确地将 Windows 恢复到其原始(可启动)状态吗?

这与双启动兼容吗(例如 grub)?

如果没有,我还需要做什么?

答案1

不会——它会破坏 NTFS 保存的有关该文件的几乎所有元数据。最重要的是,它会丢失文件权限 (ACL),但它也会错误处理重新解析点(不仅仅是符号链接)、备用流(类似于 xattrs)等。

(想象一下将您的 Linux 系统复制到 FAT32 驱动器。一些文件由 root 拥有,其他文件由特殊帐户拥有;一些是可执行文件,甚至是 setuid;FAT32 将丢失所有这些信息。)

如果你想在 Linux 内部进行文件级备份,请使用wimcapturewimlib(这相当于官方 DISM 映像工具(Windows 自带的)并确保将其指向原始磁盘设备,以便它可以使用 libntfs-3g 将大部分元数据读入 WIM 格式的存档中:

wimcapture /dev/sda1 windows.wim
wimapply windows.wim /dev/sda1

我无法 100% 保证这一定有效 – 您可能会从实际中获得更好的结果dism /capture-image,您可以从任何 Windows 安装程序 USB 记忆棒运行它。

dism /capture-image /imagefile:D:\windows.wim /capturedir:C:\
dism /apply-image /imagefile:D:\windows.wim /applydir:C:\

不过,还有一种更简单的方法,就是制作一个块级备份并仅跳过未分配的区域 - 这可以使用 ntfsclone 完成:

ntfsclone -o windows.img /dev/sda1

这将创建一个稀疏文件,它只占用与数据相同的空间,尽管从外观上看它要大得多。您可以将其存档,但请确保使用tar --sparse。不需要特殊工具来恢复此映像,只需将其cpdd返回到分区即可。

由于 ntfsclone 在块级别复制数据,因此保证它可以与任何 Windows 版本一起使用;它只需要了解 NTFS“分配位图”(不会改变)。

最后,关于 MBR 还有两点:

首先,备份 MBR 的“启动代码”部分没什么用。它包含非常通用代码,Windows(bootsect.exe)和 Linux(ms-sys)上都有工具可以根据需要编写新的启动代码。(除非您已经用 GRUB 覆盖了它,在这种情况下您只需使用 grub-install 即可。)

您备份的唯一有用部分是分区表。但您应该使用“sfdisk”来备份分区表,而不是制作原始扇区副本。

sfdisk --dump /dev/sda > partitions.txt
sfdisk /dev/sda < partitions.txt

二、新的 Windows 电脑不使用MBR 用于引导过程。在基于 UEFI 的 PC 上,整个引导加载程序位于“EFI 系统分区”中,分区表不再位于扇区 0 - 它位于扇区 1-64。(使用 sfdisk 将正确捕获 MBR 和 UEFI/GPT 分区表格式。)

答案2

您只需要一个可以复制正在使用的块的优质成像软件。

partclone是我选择的成像工具。它基于 Linux,例如可在 Ubuntu 的存储库中找到。它还内置于几何模型的完整版本。

对于 Windows 上的文件级备份,我使用Veeam 代理。它基于 Windows 的影子复制机制。它可以使用恢复媒体恢复无法启动的系统,但它必须针对特定系统构建 - 没有通用的恢复媒体映像。

您在方案中必须考虑的一件事是,已安装的程序在 Windows 注册表中拥有其条目,这些条目在恢复时会丢失。

答案3

最好使用面向 Windows 的工具来备份 Windows 分区,这些工具最好安装在 Windows 中并从 Windows 启动。

有几种这样的实用程序,我最喜欢的是 AOMEI Backupper 免费软件

此类软件会备份整个分区,但只备份使用到的扇区,备份数据还可以压缩,因此备份文件更小。

如果 Windows 分区的大小发生变化,该工具可以恢复到不同大小的分区。

还可以生成启动媒体,以应对 Windows 无法启动的情况(例如受到严重病毒攻击后)。

相关内容