gzip - redirecionamento ou canalização?


10

Vou fazer o backup de um disco grande (750 GB) em um disco USB externo usando o dd.
Devo usar redirecionamento ou canalização? Qual é mais eficiente? Ou existe alguma diferença?

Além disso, qual é o melhor tamanho de bloco? É provável que o USB seja o gargalo aqui.

dd if=/dev/sda bs=1M | gzip -c > /mnt/sdb1/backups/disk.img.gz

gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M

vs

dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz

dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M

Obrigado.


2
Eu tentaria fazer backup de sistemas de arquivos, não de imagens de disco não processadas. E para ajustar os parâmetros, você terá que fazer benchmark.

ddé arcaico (qualquer outra ferramenta felizmente acaba com bs=e count=, como ddrescue), e no seu caso também é praticamente inútil. Apenas coloque-o no gzip -c </dev/sda >disk.img.gz& gzip -cd disk.img.gz >/dev/sda.

Ou faça isso com o rsync. Apenas construa o comando com os parâmetros, e você fará tudo da maneira mais eficiente possível.
vakufo

No segundo comando da segunda listagem, o que a dd if=.../disk.img.gz |parte deve fazer? Tanto quanto eu entendo, gzip -dc(= zcat) não se importa com isso stdinquando há um argumento de arquivo.
sr_ 12/12/12

Eu não acho que o Linux possa reproduzir de forma confiável as instalações do Windows simplesmente copiando a estrutura do arquivo. Daí, a necessidade de copiar bit-wise dd. ddrescueparece mais robusto que simples dd. Você usaria o GNU ddrescueou dd_rescue? O que é um bom Live CD para baixar?
22612

Respostas:


3

A tubulação envolve mais um processo e mais uma cópia da terra do usuário; portanto, deve ser mais eficiente usar o redirecionamento.

Mas acho que hoje em dia o sistema de cache de hardware e software não deve fazer nenhuma diferença real. Talvez você possa obter melhores resultados usando bs=4kou bs=64k, já que é o limite do pipe no linux. Veja esta pergunta para obter mais detalhes sobre diferentes parâmetros bs .


9

Você não precisa usar ddnem encanar.

</dev/sda gzip >/mnt/sdb1/backups/disk.img.gz
</mnt/sdb1/backups/disk.img.gz gunzip >/dev/sda

Certa vez, fiz um benchmark e achei ddmais lento do que catuma cópia direta entre diferentes discos. Eu esperaria que o tubo fizesse qualquer solução que envolvesse ddainda mais devagar neste caso.


Esse é um exemplo de uso de redirecionamento.
22412 psusi #

@psusi Gah! Eu pretendia escrever "dd or piping". Obrigado.
Gilles 'SO- stop be evil'

Existe uma maneira de combinar pvesses comandos?
Yaron

2
@Yaron Sure: substituir gzippor pv | gzipe gzip -dporgzip -d | gv
Gilles 'SO- stop be evil'

0

Mais simples:

gzip -c /dev/sda > disk.img.gz
gzip -dc /mnt/sdb1/backups/disk.img.gz > /dev/sda 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.