How do I convert a Linux disk image into a sparse file?
Posted
by
endolith
on Super User
See other posts from Super User
or by endolith
Published on 2010-07-31T03:58:39Z
Indexed on
2011/02/18
7:27 UTC
Read the original article
Hit count: 560
I have a bunch of disk images, made with ddrescue, on an EXT partition, and I want to reduce their size without losing data, while still being mountable.
How can I fill the empty space in the image's filesystem with zeros, and then convert the file into a sparse file so this empty space is not actually stored on disk?
For example:
> du -s --si --apparent-size Jimage.image
120G Jimage.image
> du -s --si Jimage.image
121G Jimage.image
This actually only has 50G of real data on it, though, so the second measurement should be much smaller.
This supposedly will fill empty space with zeros:
cat /dev/zero > zero.file
rm zero.file
But if sparse files are handled transparently, it might actually create a sparse file without writing anything to the virtual disk, ironically preventing me from turning the virtual disk image into a sparse file itself. :) Does it?
Note: For some reason, sudo dd if=/dev/zero of=./zero.file
works when cat
does not on a mounted disk image.
© Super User or respective owner