Andy Smith <andy@xxxxxxxxxxxxxx> writes: > It's a disk image for a virtual machine that belongs to someone else > and I don't have a say in how they choose to lay out their data > inside of it. If they want to take what appears to them to be a > plain block device and put a partition table on it, or write their > own invented fs directly on it, in this case I have no latitude to > prohibit that. If it's a VM then IIRC, it should still be presented to the VM as if it were using 512 byte sectors, no matter what size the storage in the host system uses. Did you try just booting the VM or did you decide to use kpartx to verify the image from the host first? > Since I don't generally know what is on the disk image as mentioned, > I can't really do this. Empty space isn't too much of an issue since > I generally actually use something that does a block-based sync > without copying matching chunks, so an empty source chunk will match > with an empty destination chunk and be skipped. But I re-did it with > plain dd just to be sure it wasn't a tooling issue. It sounds like you are assuming that the empty space contains all zeros and so will be de-duplicated with other space that contains all zeros. Instead it often tends to contain old data that isn't going to match something else, and so will be sent, even though it isn't needed.