Tamanho da imagem do clone do disco rígido

0

Eu criei um backup de imagem para HDDA (partição) do HostA e salvo no HostB

ssh -c blowfish user@ip-or-hostname "dd if=/dev/sda1 | gzip -1 -" | dd of=sda1.gz conv=sync,noerror

O tamanho do disco rígido é de 200 GB e a imagem criada é de cerca de 45 GB.

O tamanho da imagem está correto em comparação com o tamanho da unidade? Ele comprime nessa quantidade cerca de 77% de compactação?

Minha IDEA é:

Eu quero formatar a unidade que é o LVM2_member agora e criá-la novamente como ext3, então restaurarei a imagem criada para que eu possa acessar os dados que estou procurando.

Obrigado!

    
por Zaher 22.05.2015 / 17:49

1 resposta

1

A compressibilidade de uma imagem de disco depende muito do tipo de dados armazenados, de quanto é usado ou de que nunca foi usado (sem ser explicitamente apagado durante toda a vida dessa unidade).

Em suma, é impossível dizer. 77% é completamente plausível, assim como 0% (um disco cheio de vídeos / oggs) e 99% (um disco vazio, recentemente apagado com zeros).

Agora, alguns comentários sobre seu comando:

ssh -c blowfish user@ip-or-hostname "dd if=/dev/sda1 | gzip -1 -" |
  dd of=sda1.gz conv=sync,noerror

O conv=sync,noerror destina-se à leitura do disco. dd é um aplicativo burro, ele apenas faz leituras de tamanho fixo a partir de um arquivo de origem e grava tamanho fixo em um destino.

Se o disco estiver falhando e um setor estiver falhando, uma leitura de tamanho fixo de 512 bytes poderá falhar e não retornar nada. Se dd escrevesse 0 bytes na saída para esse setor, isso significaria um destino corrompido, pois os dados seriam alterados. O que você deseja, em vez disso, é gerar 512 bytes de zeros no destino para substituir o setor com falha. Essa é a parte conv=sync .

Além disso, você não quer que ele pare no primeiro erro = > conv=noerror .

Agora, isso é útil apenas para o dd que está lendo o dispositivo de bloco, o lado esquerdo dd

Seu lado direito dd está lendo de um cano alimentado pelo processo ssh. Novamente, dd lê 512 bytes de cada vez desse pipe. E se ssh não gravar sua saída em blocos de tamanho que não seja múltiplo de 512? Em seguida, dd poderia acabar lendo 512 blocos incompletos desse pipe e, por causa de conv=sync , preenchê-los com zeros , corrompendo o arquivo compactado.

O que você quer aqui é:

ssh -c blowfish user@ip-or-hostname "dd if=/dev/sda1 conv=sync,noerror |
  gzip -1" > sda1.gz

Ou use lzop em vez de gzip , que é muito mais rápido, mesmo que a compactação não seja tão boa e, pelo menos, seja capaz de gravar em seu rodapé tamanhos não compactados maiores que 4 GB.

    
por 22.05.2015 / 22:29