ls
e du
não se contradizem. (Eles usam as mesmas chamadas de sistema).
ls -s
lista o tamanho em blocos (de 1 kilobyte [*] por padrão).
1048576000 * 1024 = 1073741824000
[*] tosse, kibibyte.
Depois de criar uma nova VM em uma imagem não processada usando virt-install
, tentei verificar se a imagem era um arquivo esparso, mas não consegui determinar usando o comando ls
.
ls -ls myvm.img
1048576000 -rw------- 1 root root 1073741824000 Nov 4 15:49 myvm.img
A partir daqui, parece ser uma imagem de 1 TB com apenas cerca de 1 GB de espaço alocado. No entanto, se eu usar o sinalizador -h, obtenho isto:
ls -lsh myvm.img
1001G -rw------- 1 root root 1000G Nov 4 15:49 myvm.img
Da mesma forma, o comando du
mostra:
du -h myvm.img
1001G myvm.img
E isso:
qemu-img info myvm.img
file format: raw
virtual size: 1.0T
disk size: 1.0T
Se eu tentar fazer o backup da imagem, ela tentará copiar todo o 1 TB:
tar -Scf myvm.tar myvm.img
Então, o que está acontecendo aqui? Parece haver alguma indicação, baseada no primeiro comando, de que é um arquivo esparso, mas não parece ser. Isso é uma esquisitice do XFS?
Tags kvm xfs sparse-files