dd è un comando UNIX.
c'è per Linux, MacOS, BSD e volendo anche su Windows e fa una cosa semplicissima : legge bit per bit da una sorgente e trascrive in una destinazione.
si esegue così :
dd if=/dev/sda of=/dev/sdb bs=512 status=progress conv=noerror,sync
ti ho spezzettato con i colori !
- dd richiama il comando
- la parte in giallo indica a dd di andare a leggere dal dispositivo chiamato " sda " , che nella nomenclatura linux è il primo disco sata , if sta per input file
- la parte in verde indica a dd dove scrivere ciò che legge dal file id input , sdb in nomenclatura Linux indica il secondo disco sata, of sta per output file, se avessi voluto fare un immagine di backup avrei indicato un file invece che un dispositivo/disco come destinazione
- la parte in viola indica la dimensione dei blocchi da leggere, qua la faccenda potrebbe essere spinosa , se leggi da dischi danneggiati un dd leggerà 512 byte per volta e li traschiverà, è una dimensione abbastanza piccola da poter girare attorno a dei blocchi fisici su disco danneggiati senza fare grossi danni e senza metterci una vita , perchè in genere più scendi di dimensione più la latenza del disco andrà a rallentarti, se i dati sono proprio critici scendi a 1 byte, qua ci sono faide su bbs vecchi di 30 anni su quale sia l'approccio migliore in merito alla dimensione dei blocchi che dd deve gestire , io ho trovato questo approccio come il migliore .
- la parte blu si limita a dirti a che velocità sta andando e quanti " salti" su blocchi non leggibili fa .
- la parte arancio dice di ignorare gli errori e lasciare spazi vuoti e aggiornare il kernel del sistema
dd lo adoro perchè segue a pieno la filosofia Unix vecchia di mezzo secolo: fai una cosa e falla bene, fa che il tuo output diventi l'input di un altro programma .. e diavolo se ci riesce !