我有一台预装了 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 内部进行文件级备份,请使用wimcapture
wimlib(这相当于官方 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
。不需要特殊工具来恢复此映像,只需将其cp
或dd
返回到分区即可。
由于 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
答案3
最好使用面向 Windows 的工具来备份 Windows 分区,这些工具最好安装在 Windows 中并从 Windows 启动。
有几种这样的实用程序,我最喜欢的是 AOMEI Backupper 免费软件。
此类软件会备份整个分区,但只备份使用到的扇区,备份数据还可以压缩,因此备份文件更小。
如果 Windows 分区的大小发生变化,该工具可以恢复到不同大小的分区。
还可以生成启动媒体,以应对 Windows 无法启动的情况(例如受到严重病毒攻击后)。