qcow2 tamanho real

2

Estou um pouco confuso com o tamanho real dos arquivos qcow2.

ls -alh VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 VMs/ubuntu-mini.qcow2
du -h VMs/ubuntu-mini.qcow2
2,7G    VMs/ubuntu-mini.qcow2

Eu queria copiar esse arquivo para uma partição diferente (ext4). Parece que este comando copiou realmente 21G não apenas 2,7G que eu esperava. E agora, em novo local, esses dois comandos (du e ls) mostram o mesmo tamanho - 21G.

du -h /media/HDD0/VMs/ubuntu-mini.qcow2
21G     /media/HDD0/VMs/ubuntu-mini.qcow2
ls -alh /media/HDD0/VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 /media/HDD0/VMs/ubuntu-mini.qcow2

Qual é a maneira correta de copiar arquivos qcow2? Há switch no comando "cp" que faz com que copie apenas 2,7G?

    
por dePablo 04.04.2018 / 14:12

1 resposta

2

O arquivo é escasso , o que significa que contém "buracos" que, quando são lidos, retornam zeros.

Esse é um recurso que economiza espaço real no disco rígido quando arquivos grandes, na maioria zeros, são armazenados. ls retornará o tamanho aparente do arquivo, mas du mostrará o tamanho aparente do arquivo menos o tamanho dos furos no arquivo (que é quanto espaço o arquivo realmente usa no disco).

Quando você copia o arquivo, cp não preservará o tamanho do arquivo, e os furos serão preenchidos por zeros.

No Linux, você pode usar o sinal --sparse=auto ou --sparse=always com cp ao copiar o arquivo para preservar a dispersão, já que os buracos são suficientemente grandes. Em alguns sistemas BSD (pelo menos no OpenBSD), cp tenta copiar arquivos esparsos corretamente por padrão.

Você também pode usar rsync com a opção --sparse ( -S ) para copiar o arquivo.

Observe que, mesmo que os furos sejam preenchidos por zeros (parcial ou completamente), o arquivo resultante será funcionalmente equivalente ao arquivo original, mas usará mais espaço em disco real.

Veja também: Um arquivo que era originalmente esparso e depois expandido pode ser tornado esparso novamente?

    
por 04.04.2018 / 14:20