Sparse files
Create sparse file
truncate -s 10G ./file
Copy locally
cp from to
Show real size
ls
Show real size and logical file size:
ls -lhs file
du
Show real file size:
du -sh file
Copy over network
rsync
rsync -aS file user@host:/dir
Reclaim space on ext4 image
Mount old image as loopback device:
mount old.raw /mnt/old
Get size of the file:
ls -l old.raw
Create second sparse image file with the same size:
truncate -s <size> new.raw
Format it with ext4 file system:
mkfs.ext4 new.raw
Mount new image as loopback device:
mount new.raw /mnt/new
Synchronize entire disk:
rsync -aSAXv /mnt/old/ /mnt/new
Unmount disks:
umount /mnt/old
umount /mnt/new