我有一个 500GB 的硬盘,里面有多个 NTFS 分区。我想创建一个包含所有分区的磁盘映像。我的最终目标是稍后安装该驱动器并扫描它以恢复可能的文件。
我想知道是否有一种磁盘映像文件格式,允许通过仅存储非空扇区来“压缩”磁盘映像(它将小于驱动器的实际大小)。我只知道 ISO 文件格式,但据我所知,这是磁盘的原始副本。我可以稍后压缩该映像(例如:使用 gz 压缩),但这会使映像不可用(不可安装),除非先完全解压缩实际映像。
我之所以问这个问题,是因为驱动器的已用空间只有大约 80GB。如果我使用工具(例如:HxD)打开磁盘,我会发现几乎所有超过某个点的扇区(约 65%)都包含空字节(这些扇区是空的)。
编辑:我在 Windows 10 上。
答案1
一些成像程序做具有自己的格式,这些格式在格式级别而不是文件系统级别上是稀疏的。VM 软件使用的常见映像格式(VHD、VHDX、Qcow2)几乎总是支持保留部分数据,作为“动态增长磁盘映像”功能的一部分。
相同的格式通常可用于对物理驱动器进行映像处理并将其还原,而无需使用虚拟机。(例如,Microsoft 分发了 Disk2Vhd,用于将物理磁盘映像为 VHD(X) 映像,然后可以使用各种工具将其还原到另一个物理磁盘上。)
但是你明确要求可安装图像。可安装的内容在很大程度上取决于操作系统:例如,Windows 可以本机安装 VHD(X) 图像但不能安装原始dd
图像,而 Linux 则相反,其“循环设备”系统仅支持原始图像。
(不确定 macOS 的功能,但它也有自己的 .dmg 格式。)
因此,对于当前的操作系统版本(并避免使用第三方工具),一个不错的选择是:
- 对于 Windows 7 或更高版本 – 使用 Microsoft Disk2Vhd 创建 VHDX 映像。
- 对于 Linux 来说,一般来说,使用
dd
或cp
或创建文件系统稀疏的“原始”映像ddrescue
,如 Kamil 的帖子中所述。请注意,如果您失败并挂载它,您可以使用fstrim
(是的,与 SSD 使用的相同的 fstrim)将非稀疏图像变成稀疏图像。 - 对于 Linux,在对 NTFS 分区进行映像时,您还可以使用
ntfsclone
它来智能地跳过 NTFS 认为“空闲”的所有区域,即使它们恰好包含剩余的非零数据,从而使映像比可能dd
生成的映像更稀疏。(这也是 CloneZilla 用于创建 NTFS 映像的方法。)
答案2
答案3
所有可靠的备份产品都可以创建仅包含已使用扇区的磁盘映像,但不会公开备份文件的格式。
您可以在文章中找到此类产品及其评论的列表 最佳免费驱动器克隆软件。
产品克隆兹拉是开源的,因此可以从源代码中推断出它的格式(但重点是什么)。