Il comando dd di linux è estremamente potente e versatile, per, ad esempio, clonare interi hard disk o singole partizioni. L’unica pecca è che durante una copia di un hard disk, che può richiedere molto tempo, il comando non ci restituisce a video nessuna informazione sull’andamento della copia, ecco come risolvere il problema.
Ipotizziamo che stiamo clonando il disco /dev/sdv su un file di immagine con il seguente comando:
sudo dd if=/dev/sdc of=~/Immagine.img
per vedere a che punto passa il comando, apriamo un’altra finestra del terminale e andiamo a recuperare il “segnal process” di dd, con questo comando
pgrep -l '^dd$'
ora mandiamo un segnale a dd con il seguente comando:
sudo kill -USR1 xxxxx
dove “xxxxx” è il segnal process restituito da pgrep dal comando precedente, con questa operazione, dd interromperà per un istante il suo lavoro di copia, stamperà a video lo stato di avanzamento, e riprenderà la copia. Le informazioni saranno visualizzate sul terminale dove dd stava operando e quindi non appena sotto la chiamata a kill…
Possiamo ripetere il comando kill quante volte vogliamo, o in alternativa, possiamo pianificare che venga eseguito ad un intervallo prestabilito, con il seguente comando:
watch -n 30 kill -USR1 xxxxx
dove, anche in questo caso, “xxxxx” è il segnal process restituito da pgrep precedentemente, ed il numero dopo il parametro “n” indica l’intervallo in secondi
(Possiamo ovviamente interrompere watch con un bel CTRL+C)
Enjoy your dd usage!