Taille fichiers sur disque du ls sparse

Voir : https://wiki.archlinux.org/index.php/Sparse_file

Sparse, fichiers à trous

Voir du dh “ls -s” fallocate truncate

Notes :

du -sh /var/lib/libvirt/images/dic01-disk0
2,0G /var/lib/libvirt/images/dic01-disk0
ls -lh /var/lib/libvirt/images/dic01-disk0
-rw-r--r-- 1 qemu qemu 120G 20 juin 14:53 /var/lib/libvirt/images/dic01-disk0

$ ls -lsh
total 22G
16K drwx------ 2 root root 16K août 9 10:42 lost+found
7,7G -rw-r--r-- 1 jibe jibe 120G août 9 11:18 VM152-SUPPMSM-V-clone.img
14G -rw-r--r-- 1 jibe jibe 14G févr. 24 09:15 VM152-SUPPMSM-V-clone.qcow2

$ du -h VM152-SUPPMSM-V-clone.*
7,7G VM152-SUPPMSM-V-clone.img
14G VM152-SUPPMSM-V-clone.qcow2

Unsparse

cp --sparse=never VM152-SUPPMSM-V-clone.raw VM152-SUPPMSM-V-clone_copy.raw

Ou

truncate -c -s $(( 1024 * 1024 + 1024 * $(ls -s VM152-SUPPMSM-V-clone.raw |awk '{print $1}') )) VM152-SUPPMSM-V-clone.raw

NOTES

Source : https://softwarebakery.com/shrinking-images-on-linux

fdisk -l myimage.img

Disk myimage.img: 6144 MB, 6144000000 bytes, 12000000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ea37d
Device Boot Start End Blocks Id System
myimage.img1 2048 9181183 4589568 b W95 FAT32

Note two things in the output:

The partition ends on block 9181183 (shown under End)

The block-size is 512 bytes (shown as sectors of 1 * 512)

truncate --size=$[(9181183+1)*512] myimage.img

Autres

rsync

rsync : Voir l'option --sparse

-S, --sparse traite les fichiers à trous efficacement

cp

cp --sparse=always et --sparse=never