是否可以ddrescue
通过该选项将驱动器从较大的磁盘克隆到较小的磁盘--sparse
?
这次讨论概述了使用克隆驱动器的步骤ddrescue
以及使用相同大小的重要性,但我很好奇是否有办法ddrescue
以某种方式诱使此功能,而不必依赖更强大的工具,例如True Image.
答案1
简短的一般性回答:不。
该--sparse
选项将稀疏文件(图像)写入支持此功能的文件系统中。从维基百科:
稀疏文件是一种计算机文件,当文件本身大部分为空时,它会尝试更有效地利用文件系统空间。这是通过将代表空块的简要信息(元数据)写入磁盘而不是构成块的实际“空”空间来实现的,从而占用较少的磁盘空间。仅当块包含“真实”(非空)数据时,才会将完整块大小作为实际大小写入磁盘。
读取稀疏文件时,文件系统会在运行时透明地将表示空块的元数据转换为用零字节填充的“真实”块。应用程序不知道此转换。
我经常使用稀疏文件作为图像,主要是dd
。确实,你可以节省一些空间,并且可以为此进行优化(请参阅我对另一个问题的回答;请注意,如果您使用是ddrescue
因为您怀疑驱动器有故障,或者您进行取证或数据恢复,那么您不应该以这种方式“优化”它)。稀疏映像可能足够小,甚至可以保存在相当小的分区上,但这不是克隆;这只是以一种巧妙的方式保存一个大文件。
磁盘文件系统中的稀疏文件可能是存储数据的正确方法,因为您可以挂载底层分区并使用它们(至少在 Linux 中,Windows 似乎不那么智能;一些有用的工具:kpartx
,mount -o offset=…
)。但文件或保存它的磁盘都无法在 BIOS/UEFI 中替换源驱动器 - 我的意思是您无法从它启动并运行源驱动器上的操作系统(除非使用虚拟化,我猜)。要启动,您需要真正将一个设备克隆到另一个设备。在这种情况下,没有能够理解稀疏文件的文件系统层,因此您需要目标驱动器至少与源驱动器一样大。(令人惊讶的是,即使是更大的驱动器也可能会导致一些麻烦:辅助 GUID 分区表应该位于最后;简单克隆到更大的驱动器会将其置于错误的位置。)
简而言之:如果您需要克隆才能用另一个磁盘替换一个磁盘并从后者启动或使用 Windows,那么“稀疏文件”概念对您没有帮助。另一方面,如果您想将数据、元数据、分区表、MBR 全部存档在一起,那么创建稀疏文件是一种可行的方法。如果您计划稍后间接克隆到足够大的磁盘,稀疏文件作为临时存储也是一个好主意。
为了将所有数据放入一个较小的磁盘来替换源磁盘,您需要一个能够理解分区和文件系统并能够缩小它们的工具。(因此严格来说,这不会克隆也不ddrescue
是这样的工具。
ddrescue
有两种情况dd
可以成功将数据复制到较小的磁盘:
- 源磁盘末尾有未分区的空间,因此所有分区都适合目标。
- 某些分区(如果有的话,与启动过程无关)不适合,但您无论如何都打算将它们从目标驱动器中丢弃(从分区表中删除)。
这两种情况都与稀疏文件无关。