Imagem do disco rígido compactada muito grande

20

Acabei de criar uma imagem de uma inicialização dupla instalada recentemente (Ubuntu e Windows) usando este comando (que venho usando há um tempo para imagens menores):

dd if=/dev/sda | gzip > /mnt/drive.img.gz

Nesta unidade, menos de 60G de 500G são usados. No entanto, esse arquivo de imagem agora tem 409G de tamanho.

Como é isso? O gzip não deveria compactar todos esses zeros? Como eu disse, é um sistema recém-instalado. Não poderia ser tão confuso.

Agora eu não esperava que o arquivo fosse 60G, mas 400G me parece muito grande.

chris137
fonte
13
... o que zera?
Lightness Races com Monica

Respostas:

29

Como é isso? O gzip não deveria compactar todos esses zeros?

Sim, se fossem zeros .

O espaço em disco não utilizado não significa que ele contém zeros; significa que não é utilizado e pode conter qualquer coisa .

Existem programas que limpam o espaço em disco não utilizado para zerar. Eu sugiro que você os use antes de fazer a imagem do disco. (Não me lembro de nada de improviso; no Linux, eu usava apenas dd if=/dev/zero bs=1048576 of=somefilepara criar arquivos contendo apenas zeros, preenchendo cada sistema de arquivos; depois removê-los antes de criar a imagem. Além disso, prefiro o xzcontrário gzip.)

Animal Nominal
fonte
Ah, obrigado, eu nem pensei sobre o que estava nessa unidade antes de instalá-la! Eu acho que é mais rápido descompactar essa imagem agora e torná-la menor (para a qual parece haver soluções também). Também vou considerar o uso do xz. Obrigado!
chris137
12
Escrever 400 G de zeros toda vez que você deseja criar um clone não parece uma boa ideia em um SSD. A outra solução (usando um programa de clonagem compatível com o sistema de arquivos) parece melhor.
Federico Poloni
4
@FedericoPoloni: Não, mas a imagem gerada é uma imagem perfeita de disco bruto . Os utilitários de clonagem de disco usam vários formatos; portanto, você precisa do utilitário para restaurar a imagem. Não conheço (mas também não verifiquei se) alguma que possa realmente gerar uma imagem bruta ao substituir blocos não utilizados na imagem por zeros; isso seria realmente útil. O uso ddno Linux é o mais simples e fácil de corrigir o problema de tamanho de imagem bruta e, como único, é bom mesmo em um SSD.
Animal Nominal
11
@FedericoPoloni: Sim, as imagens compactadas gzip e xz podem ser montadas usando o nbdkit . (Não estou realmente preocupado com os formatos, se eles estão abertos e são suportados por mais de um utilitário; estou preocupado apenas com os utilitários se manterem sem manutenção e com erros em novos sistemas. Eu ficaria feliz em usar o SquashFS em vez de xz ou gzip, por exemplo.)
Nominal Animal
3
@Gilles O espaço aparado, quando lido, não garante zeros. Alguns controladores dão isso, outros não.
Deviantfan # 30/16
14

Para backups de partições individuais, você pode usar o partclone .

O Partclone lê o sistema de arquivos para ver onde os arquivos estão armazenados e faz backup apenas das partes da partição.

Pelle
fonte
3
Além disso, o Clonezilla é uma excelente interface gráfica para fazer isso.
Federico Poloni
O partimage é uma excelente ferramenta e já está em muitas distribuições Linux / CDs ao vivo.
Criggie
Outra ferramenta nesse sentido é fsarchiver.
Iwillnotexist Idonotexist