arquivo (vdi) aumenta (em dobro) tamanho após a divisão e, em seguida, operação do gato

1

Eu dividi um arquivo vdi com 7 gigabytes e juntei-me ao comando cat. O arquivo funciona normalmente no VBox, mas recebe 14 gigabytes depois de ser reinserido. A operação exata foi:

$ split -- bytes=2000M file.vdi /locationX/prefix

movido para outra máquina ...

$ cat prefix* > /locationY/file.vdi

e depois o tamanho é dobrado.

O que aconteceu?

    
por Leandros López 06.03.2015 / 01:35

1 resposta

1

file.vdi é, com toda probabilidade, um arquivo esparso . Isso é muito comum em imagens de disco de máquinas virtuais: partes que nunca foram gravadas são deixadas como furos no arquivo que não consomem espaço. Você pode confirmar verificando se o tamanho do arquivo original corresponde ao uso do disco:

ls -l file.vdi; du file.dvi

Espero que ls -l relate 14 GB (tamanho real do arquivo), mas du reportará 7 GB (disco uage), o que significa que cerca de metade da imagem nunca foi gravada.

Arquivos esparsos são uma forma bruta de compactação executada pelo sistema. Os buracos no arquivo são definidos como contendo um monte de bytes nulos, e é isso que os aplicativos vêem se lerem dos buracos. Portanto, split (ou cat ou cp ou dd ou tar ou qualquer outra coisa) leu muitos bytes nulos que ocupam espaço na saída.

Se você deseja economizar espaço no destino, é possível torna o arquivo esparso novamente . Isso só economizará espaço e não melhorará o desempenho.

    
por 06.03.2015 / 02:03