Ho 200 GB di spazio libero su disco, 16 GB di RAM (di cui ~ 1 GB occupati dal desktop e dal kernel) e 6 GB di swap.
Ho un SSD esterno da 240 GB, con 70 GB utilizzati 1 e il resto libero, di cui ho bisogno per eseguire il backup sul mio disco.
Normalmente, prima vorrei dd if=/dev/sdb of=Desktop/disk.img
il disco e poi comprimerlo, ma fare prima l'immagine non è un'opzione poiché farlo richiederebbe molto più spazio su disco di quello che ho, anche se il passaggio di compressione comporterà la compressione dello spazio libero in modo che il l'archivio finale può facilmente adattarsi al mio disco.
dd
scrive su STDOUT per impostazione predefinita e gzip
può leggere da STDIN, quindi in teoria posso scrivere dd if=/dev/sdb | gzip -9 -
, ma gzip
impiega molto più tempo a leggere i byte di dd
quanti ne possano produrre.
Da man pipe
:
I dati scritti all'estremità di scrittura della pipe vengono bufferizzati dal kernel fino a quando non vengono letti dall'estremità di lettura della pipe.
Visualizzo a |
come un vero pipe - un'applicazione che inserisce i dati e l'altra che estrae i dati dalla coda del pipe il più rapidamente possibile.
Cosa succede quando il programma sul lato sinistro scrive più dati più rapidamente di quanto l'altro lato della pipe possa sperare di elaborarlo? Provocherà un utilizzo estremo della memoria o dello scambio o il kernel tenterà di creare un FIFO su disco, riempiendo così il disco? O fallirà SIGPIPE Broken pipe
se il buffer è troppo grande?
Fondamentalmente, questo si riduce a due domande:
- Quali sono le implicazioni e i risultati di inserire più dati in una pipe di quanti ne vengano letti alla volta?
- Qual è il modo affidabile per comprimere un flusso di dati su disco senza mettere l'intero disco di dati non compresso sul disco?
Nota 1: non posso semplicemente copiare esattamente i primi 70 GB usati e mi aspetto di ottenere un sistema o un filesystem funzionante, a causa della frammentazione e di altre cose che richiedono che il contenuto completo sia intatto.
lzop
invece di gzip
; si comprime molto più velocemente con solo un rapporto di compressione leggermente inferiore. Lo trovo ideale per le immagini del disco in cui la velocità di compressione può essere un vero collo di bottiglia.