分区的大小接近 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
,目标设备必须完全清零,否则旧的非零数据将保留在应该为零的位置。结果是文件系统损坏。