DCFLDD

Dcfldd e` un utilissimo tool per fare imaging dei dischi. Supporta molte funzionalita` utili quali per esempio l'hashing con diversi algoritmi della intera immagine e anche di spezzoni di essa, e l'output contemporaneo su piu` dispositivi o files, in modo da fare enne copie assieme (semplicemente indicando of=xxxx piu` di una volta). Un limite e` che usa sempre e comunque un solo core della CPU, e questo puo` mettere la CPU in crisi quando si fa hashing e i dischi sono veloci.

Alcuni esempi di uso di dcfldd:

Mettere R/O i device

Prima di combinare casini, e` meglio essere doppiamente sicuri mettendo in r/o i device originali. Per farlo, si puo` usare il comando

blockdev --setro /dev/sdX

Avendo cura di farlo sia per il device di base che per le partizioni.

Per esempio:

blockdev --setro /dev/sdd
blockdev --setro /dev/sdd1

Il comando per tornare a scrivere e`

blockdev --setrw /dev/sdX

Test di velocita` e i loro risultati

time dcfldd if=/dev/sda of=/media/kurgan/secondario/test.dd hashlog=/media/kurgan/secondario/hash.txt hash=sha512  sizeprobe=if

Questo fra un SSD (in lettura) e un disco meccanico (in scrittura) tutti e due SATA3 ha fatto 99 Mbyte al secondo ovvero 5,8 Gbyte al minuto su un Core I7, senza mai mandare a tappo la cpu, compreso il tempo di hashing. Togliere l'hashing riduce il carico di CPU, ma tanto il collo di bottiglia sono i dischi e non la CPU. Questo test ha girato a 0.8 Gbit al secondo, ben sotto la velocita` del SATA3 (6 Gbit) ma sopra quella dell' USB2 (480 Mbit).

time dcfldd if=/dev/sda of=/dev/null hashlog=/media/kurgan/secondario/hash.txt hash=sha512  sizeprobe=if

Questo fra un SSD e /dev/null, stesse condizioni di prima. Porta la CPU a tappo per calcolare l'hash. La porta a tappo comunque anche senza calcolare l'hash. Tempo impiegato 30 minuti. Velocita` reale 16,5 GByte / minuto ovvero 284 Mbyte/secondo ovvero 2,27 GBit/secondo, ancora lontano dai 6 Gbit del sata3.

time dcfldd if=/dev/sda of=/dev/null hashlog=/media/kurgan/secondario/hash.txt hash=sha512  hashwindow=1G sizeprobe=if

Questo test e` come il precedente ma usa la hash window, quindi calcola di fatto due hash assieme, uno per la window e uno per il totale. Il tempo totale e` passato da 30 a 60 minuti. L'hashing prende molto tempo anche su una CPU veloce.

Riducendo la hash window a 1M, quindi mille volte piu` piccola, comunque il processo dura sempre 60 minuti, segno che il problema e` nel fatto di fare due hash contemporeaneamente, e non nella piccola dimensione della hash window e del risultante elevato numero di righe dell'hashlog (ragionevole peraltro).

Qualche conclusione di massima sulle prestazioni

Forensics/Dcfldd (last edited 2016-05-09 15:46:05 by Kurgan)