copying 'holey' files ...

Fabian Keil freebsd-listen at
Mon Nov 3 09:12:22 PST 2008

"Marc G. Fournier" <scrappy at> wrote:

> I have a disk img for qemu that is 4G, but disk usage is only 650M ... due to 
> how the image is created, it will grow to 4G, but only uses as much as it needs 
> ... but, if I run a simple 'cp' on the file, it goes from:
> image: debian.img
> file format: raw
> virtual size: 4.0G (4294967296 bytes)
> disk size: 652M
> to:
> image: dtc.img
> file format: raw
> virtual size: 4.0G (4294967296 bytes)
> disk size: 4.0G
> Is there a way of moving things around such that it *maintains* the holes, 
> instead of fills them in?

Quoting dd(1):

| conv=value[,value ...]
|          Where value is one of the symbols from the following list.
|          sparse   If one or more output blocks would consist solely of
|                   NUL bytes, try to seek the output file by the required
|                   space instead of filling them with NULs, resulting in a
|                   sparse file.

I haven't actually tested it with qemu images, though.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url :

More information about the freebsd-questions mailing list