gzip - reindirizzamento o piping?


10

Eseguirò il backup di un disco di grandi dimensioni (750 GB) su un disco USB esterno utilizzando dd.
Dovrei usare il reindirizzamento o il piping? Qual è più efficiente? O c'è una differenza?

Inoltre, qual è la dimensione del blocco migliore? USB è probabilmente il collo di bottiglia qui.

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

Grazie.


2
Vorrei provare a eseguire il backup dei file system, non delle immagini del disco non elaborate. E per ottimizzare i parametri, dovrai eseguire il benchmark.

ddè arcaico (per fortuna qualsiasi altro strumento elimina bs=e count=, come ddrescue), e nel tuo caso praticamente inutile. Basta inserirlo in gzip -c </dev/sda >disk.img.gz& gzip -cd disk.img.gz >/dev/sda.

O fallo con rsync. Costruisci semplicemente il comando con i parametri e ti farà tutto nel modo più efficiente che pensa.
Vakufo,

Nel secondo comando del secondo elenco, cosa dd if=.../disk.img.gz |dovrebbe fare la parte? Per quanto ho capito, gzip -dc(= zcat) non se ne cura stdinquando c'è un argomento file.
sr_

Non credo che Linux possa riprodurre in modo affidabile installazioni di Windows semplicemente copiando la struttura dei file. Quindi, la necessità di una copia bit-saggia come dd. ddrescuesembra più robusto che semplice dd. Useresti GNU ddrescueo dd_rescue? Che cos'è un buon Live CD da scaricare?
Mc

Risposte:


3

Il piping comporta un ulteriore processo e un'altra copia di destinazione dell'utente, quindi dovrebbe essere più efficiente utilizzare il reindirizzamento.

Ma suppongo che al giorno d'oggi il sistema di cache hardware e software non dovrebbe fare alcuna differenza. Forse puoi ottenere risultati migliori usando bs=4ko bs=64k, dato che è il limite della pipe sotto Linux. Vedi questa domanda per maggiori dettagli sui diversi parametri bs .


9

Non è necessario utilizzare ddo eseguire il piping.

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

Una volta ho fatto un benchmark e ho scoperto di usarlo ddpiù lentamente rispetto cata una copia semplice tra dischi diversi. Mi aspetterei che la pipa rendesse ogni soluzione ddancora più lenta in questo caso.


Questo è un esempio dell'uso del reindirizzamento.
psusi,

@psusi Gah! Volevo scrivere "dd o piping". Grazie.
Gilles 'SO-smetti di essere malvagio'

C'è un modo per combinare pvin questi comandi?
Yaron,

2
@Yaron Certo: sostituire gzipda pv | gzipe gzip -dpergzip -d | gv
Gilles 'stop SO-essere malvagio'

0

Più semplice:

gzip -c /dev/sda > disk.img.gz
gzip -dc /mnt/sdb1/backups/disk.img.gz > /dev/sda 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.