Differences between revisions 6 and 7
Revision 6 as of 2016-05-09 13:38:20
Size: 4058
Editor: Kurgan
Comment:
Revision 7 as of 2016-05-09 13:54:32
Size: 4205
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 23: Line 23:
 * '''Cancellazione''' di un hard disk con degli zeri (e conto del tempo rimanente):
 {{{
dcfldd pattern=00 of=/dev/sdc bs=1M sizeprobe=of
}}}

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:

  • Copia da /dev/sda a /dev/sdz e contemporaneamente anche a un file su un disco montato, con generazione dell' hashlog e dell'errorlog, scegliendo come algoritmo di hashing sha512 e creando solo un hash per l'intera immagine
    dcfldd if=/dev/sda of=/dev/sdz of=/mnt/destination_file.dd hashlog=/mnt/hash.txt errlog=/mnt/error.txt hash=sha512 
  • Come sopra, in piu` si fa guessing del tempo rimanente tenendo conto della dimensione del disco di partenza (sizeprobe)
    dcfldd if=/dev/sda of=/dev/sdz of=/mnt/destination_file.dd hashlog=/mnt/hash.txt errlog=/mnt/error.txt hash=sha512  sizeprobe=if
  • Come sopra, in piu` si fa un hash a parte per ogni blocco di 1 GByte di dati (va a finire nell' hashlog) oltre all'hash totale.
    dcfldd if=/dev/sda of=/dev/sdz of=/mnt/destination_file.dd hashlog=/mnt/hash.txt errlog=/mnt/error.txt hash=sha512  sizeprobe=if hashwindow=1G
  • Cancellazione di un hard disk con degli zeri (e conto del tempo rimanente):

    dcfldd pattern=00 of=/dev/sdc bs=1M sizeprobe=of

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

  • USB3 e ESATA (3 Gbit) funzionano piu` o meno alla stessa velocita`, che e` quella del disco oppure quella della CPU se si vuole fare hashing.
  • A seconda delle prestazioni dei dischi la velocita` varia da 80 a 300 Mbyte/secondo. Questi sono alcuni esempi su Core i7 senza hashing (CPU scarica tranne che nel caso dell' SSD)
    • da un SSD in SATA a /dev/null: 280 Mbyte/secondo ovvero 16,5 Gbyte/minuto
    • da un HDD 5400 RPM 2,5 pollici in ESATA (3Gbit) o USB3 a /dev/null: circa 100 Mbyte/secondo ovvero 5,8 Gbyte/minuto
    • da un HDD 7200 RPM 3,5 pollici in ESATA (3Gbit) o USB3 a /dev/null: da 4 a 7 Gbyte/minuto a seconda del modello del disco (stessa interfaccia ESATA, stesso PC)
  • USB2 e` limitato a circa 40 MByte/secondo, quindi 2,3 GBytes al minuto.

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