![我如何才能将可启动的 Windows 分区(而不是磁盘)克隆到文件中?](https://linux22.com/image/1473998/%E6%88%91%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E5%B0%86%E5%8F%AF%E5%90%AF%E5%8A%A8%E7%9A%84%20Windows%20%E5%88%86%E5%8C%BA%EF%BC%88%E8%80%8C%E4%B8%8D%E6%98%AF%E7%A3%81%E7%9B%98%EF%BC%89%E5%85%8B%E9%9A%86%E5%88%B0%E6%96%87%E4%BB%B6%E4%B8%AD%EF%BC%9F.png)
我有一块大小为 的硬盘1 Tb
。我已创建并安装了windows Xp
大小为 的分区10 Gb
。我想将该分区克隆到另一个磁盘上的文件,以便我可以dd
将该分区克隆到任何新磁盘,从而使其成为10 Gb
分区的完全相同的克隆。
笔记我不想将整个1Tb
磁盘克隆到一个文件中,而只是克隆可启动10Gb
分区。分区是一种GPT
类型。
我正在专门寻找可以通过 启动系统时使用的任何命令live CD
。
欢迎任何建议。
答案1
所以我可以做我想做的事。
我使用gnu parted
并dd
仅复制可启动分区。
我首先使用parted
命令来print
获取驱动器的开始和结束/dev/sda
,然后记下可启动驱动器的开始和结束。例如,结束位置为 7890Mb,只需将其转换为字节并除以 512(这是我正在使用的驱动器的块大小)。假设这个结果是N
。结果将是您将提供给dd
命令的计数。
现在只需使用dd if=/dev/driveWhereBootablePartionExist of=/backup/img.img
上面的 count=N bs=512(或块大小)
这导致分区的完全可启动映像文件等于分区大小。
答案2
您可以使用dd
复制整个分区,如下所示:
dd if=/dev/sda3 of=windows-xp.img
(/dev/sda3
根据需要更改输出文件名。)然后,您可以逆转该过程将其复制回来:
dd if=windows-xp.img of=/dev/sda3 bs=4096
请注意,我已将其添加bs=4096
为一个选项。这会导致输出以 4096 字节的块发送,这在大多数现代磁盘上可能会更快。(不过,这在创建备份时几乎没有影响。)
虽然使用dd
(如您在问题中所述)可以工作,但效率不高。更好的方法是使用名为 的工具ntfsclone
,至少假设分区使用 NTFS。(这是一个 Linux 工具。根据您指定dd
并表示您正在使用实时 CD 的事实,我假设它是 Linux。)要使用 克隆分区ntfsclone
,您可以使用类似下面的方法:
ntfsclone --save-image --output windows-xp.img /dev/sda3
恢复它需要这样的命令:
ntfsclone --restore-image --overwrite /dev/sda3 windows-xp.img
在手册页的末尾有更多使用示例ntfsclone
(输入man ntfsclone
即可阅读)。
的优点ntfsclone
是它使用稀疏文件格式,这意味着它不会备份未使用的扇区。相比之下,dd
复制所有内容,因此如果分区有大量未使用的空间,dd
可能会花费更长时间,并且肯定会占用更多磁盘空间。根据安装 XP 之前的磁盘状态,压缩备份dd
可能没有太大帮助,因为未使用的扇区上可能有旧数据。
无论哪种方式,都需要牢记以下几点:
ntfsclone
和都dd
将备份 Windows 分区中的引导加载程序数据,但不会备份磁盘 MBR 上的引导加载程序数据。您必须单独备份它。(另一方面,您说磁盘是 GPT,而 Windows XP 无法从 GPT 磁盘启动,除非是一些奇特的 Itanium 版本,如果我没记错的话。您是在虚拟化环境中使用它吗?)- 和
dd
ntfsclone
如果您输入了错误的设备文件名,尤其是在恢复映像时,这非常小心! - 您需要有
root
权限才能执行这些命令。根据您的 Live CD 环境,这可能是默认设置,或者您可能需要将其添加sudo
到每个命令的开头。