分区的 df 大小与具有稀疏标志的 dd-ed 图像不匹配

分区的 df 大小与具有稀疏标志的 dd-ed 图像不匹配

分区的大小接近 2Gb,实际使用的大小为 1.5Gb,我正在尝试使用启用标志来制作该分区的dd映像conv=sparse

生成的图像dd大小为1.8Gb。

du显示分区实际使用大小为1.5Gb。

最让我困惑的是,当天早些时候,当我dd编辑分区时,显示的是du.然后我在分区中做了一些更改,然后再次运行dd。这次出现了不匹配。

是什么原因造成的呢?我猜虽然内存是空闲的,但它不是空/零,所以dd稀疏算法不起作用?

答案1

你的猜测是正确的。dd没有文件系统使用的概念,它只是复制数据(或不复制,如果conv=sparse设置了并且整个块为零)。

也可能有一个 100% 完整的文件系统,但还有一个很小的 ​​dd 稀疏映像。假设您的文件全是零。

可用空间和故意归零但已使用的空间之间存在差异,但dd没有这方面的概念。因此conv=sparse应谨慎使用,尤其是在恢复时。

当使用 恢复稀疏图像时conv=sparse,目标设备必须完全清零,否则旧的非零数据将保留在应该为零的位置。结果是文件系统损坏。

相关内容