是否存在仅存储已填充(非空)扇区的磁盘映像文件格式?

是否存在仅存储已填充(非空)扇区的磁盘映像文件格式?

我有一个 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 来说,一般来说,使用ddcp或创建文件系统稀疏的“原始”映像ddrescue,如 Kamil 的帖子中所述。请注意,如果您失败并挂载它,您可以使用fstrim(是的,与 SSD 使用的相同的 fstrim)将非稀疏图像变成稀疏图像。
  • 对于 Linux,在对 NTFS 分区进行映像时,您还可以使用ntfsclone它来智能地跳过 NTFS 认为“空闲”的所有区域,即使它们恰好包含剩余的非零数据,从而使映像比可能dd生成的映像更稀疏。(这也是 CloneZilla 用于创建 NTFS 映像的方法。)

答案2

将原始图像保存为稀疏文件将自动利用用零填充的扇区。Linux 中的一些可能性:

  • dd conv=sparse(头脑
  • ddrescue -S
  • cp --sparse=always

我不了解 Windows 工具。我知道 NTFS 支持稀疏文件,因此一般概念也应该适用于 Windows。


如果首先用零覆盖空白处。我所说的“空白空间”是指根据您要存储的文件系统未分配给任何文件或元数据的扇区。但由于您的目标是扫描可能的文件恢复,因此您不应覆盖任何内容。本段适用于对仅克隆/存储未删除数据感兴趣的用户。

答案3

所有可靠的备份产品都可以创建仅包含已使用扇区的磁盘映像,但不会公开备份文件的格式。

您可以在文章中找到此类产品及其评论的列表 最佳免费驱动器克隆软件

产品克隆兹拉是开源的,因此可以从源代码中推断出它的格式(但重点是什么)。

相关内容