Damaged Hard DiskIT

From CGSecurity
Jump to navigation Jump to search

En.png English De.png Deutsch Es.png Español Fr.png Français It.png Italiano Ru.png Русский


I settori danneggiati sono la forma più comune di danno fisico al disco rigido. Sono i primi segni di un crash del disco non appena si deteriora nel tempo. Un settore danneggiato è un settore sul disco che non può essere scritto o letto (errori di lettura) a causa di danni fisici o incongruenze di controllo di parità bit sul disco (errore CRC = Cyclic Redundancy Check ). Per recuperare i vostri dati, il metodo migliore è quello di copiare i dati dell'unità di un altro hard disk prima di tentare di recuperarlo. Il nuovo disco deve essere almeno della stessa dimensione (controllare il numero di settori LBA) o maggiore. Se più grande, non è un problema perché il numero di testine per cilindro e settori pro capite sarà lo stesso se entrambi i dischi usano la modalità LBA . Windows potrebbe avere qualche problema nel trattare con settori danneggiati su un HD danneggiato, per cui la soluzione migliore è quella di utilizzare un sistema operativo Linux per copiare i dati su un altro disco rigido.
È inoltre possibile utilizzare TestDisk per analizzare i settori copiati da un disco rigido danneggiato su un drive sano.

Avvio da Knoppix, un LiveCD Linux

Se non si dispone di un sistema operativo Linux installato, scaricare il LiveCD di [http://www.knopper.net/knoppix/index-en.html Knoppix LiveCD , un CD avviabile completamente funzionale con su Linux che potrà gira in memoria!

  • Masterizzare il file. Iso su CD
  • Avviare da CD-ROM
  • Al prompt, inserire knoppix lang=us (per lingua US)
  • Si viene automaticamente collegati, come utente 'knoppix' su una console grafica.
  • Lanciare una Konsole/terminal

(Nota:. Knoppix ha una selezione 'Konsole as root' , ma le funzioni di copia / incolla sono disattivate, quindi si raccomanda di usare sempre il metodo descritto di seguito per ottenere l'accesso root) Knoppix è dotato di TestDisk, PhotoRec, dd e dd_rescue. Per l'accesso a dischi rigidi, è necessario eseguirli come root, quindi selezionare la Konsole e digitate sudo -s, quindi premere il tasto Invio.


Nota per gli utenti della versione 4.0.2 di Knoppix CD:
Per usare TestDisk in Knoppix 4.0.2, è necessario risolvere il problema delle librerie mediante:

ln -s /usr/lib/libntfs.so.7 /usr/lib/libntfs.so.5 

Nota per gli utenti della versione 5.1 di Knoppix CD:
Per usare TestDisk in Knoppix 5.1, è necessario risolvere il problema delle librerie mediante:

ln -s /usr/lib/libntfs.so.10.0.0 /usr/lib/libntfs.so.9 

Questi problemi non ci sono per la versione Linux (vedi l'area Download.

Identificazione di un HDD

Linux.png Identificazione di un HDD Linux

Per elenare gli Hdd e partizioni connesse, usare i comandi fdisk or lshw:

Esempio

lshw -C disk
  *-disk
       description: ATA Disk
       product: ST380013A
       vendor: Seagate
       physical id: 0.1.0
       bus info: scsi@0:0.1.0
       logical name: /dev/sda
       version: 3.06
       serial: 3JVA1WTE
       size: 74GiB (80GB)
       capabilities: partitioned partitioned:dos
       configuration: ansiversion=5 signature=00001a7f


fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00001a7f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          91      730926   82  Linux swap / Solaris
/dev/sda2              92        9729    77417235   83  Linux


Sui sistemi linux successivi a 2.6.20 , i driver PATA/IDE, SATA, SCSI, e USB visualizzeranno /dev/sd? ( dove ? e' la lettera del drive). Le versioni precedenti i drive PATA/IDE visualizzeranno /dev/hd? ( dove ? e' la locazione sul bus PATA).


Macosx.png Identificazione di un HDD Mac OS X

Per identificare il disco / num di partizione,

  • Avviare il programma Terminal , che si trova nella cartella /Applications/Utilities .
  • digitare diskutil list

Ci sono due tipi di dispositivi:

  • dispositivi raw /dev/rdisk*, comunicazione diretta con il disco
  • dispositivi buffered /dev/disk*, data trasferimento dati via buffer.

Quando si usa dd o altri programmi di duplicazione, utilizzare sempre raw. In Mac OS X, le partizioni sono etichettate con "slices". Esempio : un volume in formato GPT è di solito s2, cioè rdisk4s2.

Duplicazione dischi

Dopo aver verificato in una shell dei comandi (CLI), o dalla console terminale ( non avviare da SO del disco rigido danneggiato), i nomi dei dispositivi per il disco danneggiato e di quello nuovo per copiare i dati, è possibile iniziare a duplicare i dati.

Il metodo che usa 'dd'

Il programma dd è molto potente e può essere usato per scrivere su file , o da file verso partizioni o volumi. Tuttavia, si consiglia di provare a usare ddrescue o dd_rescue, perche dd non è stata concepito per lavorare con dischi danneggiati e quindi sara lento.

  • Per copiare un disco come root, eseguire:
dd if=/dev/old_disk of=/dev/new_disk conv=noerror,sync

conv=noerror,sync e' usato con dischi danneggiati, dove l'intento è quello di sostituire i blocchi danneggiati con placeholders zero e continuare a copiare.

  • Per copiare il disco in un file d'immagine:
dd if=/dev/old_disk of=image_file conv=noerror

Per utenti in Mac OS X o Ubuntu, ricordarsi sempre di anteporre sudo a dd e aggiungere la password utente per convalidare il comando. Attenzione! Se si copia un disco, la destinazione deve essere anche un disco, non una partizione. Se si copia una partizione, la partizione di destinazione deve essere abbastanza grande. Copiare l'intero disco è consigliato. I dischi devono essere copiati su confini settoriali. La dimensione del settore della maggior parte dei dischi rigidi è attualmente 512 byte, ma l'industria sta iniziando a muoversi (dal 1999) a 4KB (4096 byte) dimensione del settore. Controllare le specifiche del vostro disco.

NB: Le comunità UNIX / Linux impiegano il termine "blocco" per riferirsi ad un settore o gruppo di settori. Per esempio, l'utility Linux fdisk visualizza le informazioni della tabella delle partizioni utilizzando blocchi da 512 byte mentre usa "settori" per descrivere le dimensioni del disco : 63 settori / tracce. Si desidera che la dimensione del blocco per il programma dd sia una potenza di 2 , e multiplo della dimensione del settore del disco.

La dimensione del blocco di default per dd è di 512 byte ( l'operando bs= viene utilizzato per aumentare la dimensione del blocco. Blocchi di dimensioni più grandi aumenteranno notevolmente la velocità della copia fino a un punto , che dipende da molti fattori, ma 256K - 500K sarà abbastanza buona per la maggior parte dei sistemi. Se la dimensione del blocco si conclude con una ``b, ``k, ``m, or ``g, il numero è moltiplicato per 512, 1024 (1K), 1048576 (1M), or 1073741824 (1G) rispettivamente. Per leggere / scrivere il disco utilizzando un blocco di 1Mb (16 x 512 settori di byte), usare uno fra i seguenti comandi :

  • bs=1048576
  • bs=2048b
  • bs=1024K
  • bs=1M


Comandi di esempio: (usa i nomi dei dispositivi per il tuo sistema)

  • Per copiare un disco in un secondo disco con una dimensione di blocco di 256KB , (settori da 512 x 512 byte): sudo dd bs=262144 if=/dev/hda /dev/hdb conv=noerror,sync
  • Per duplicare un intero disco su un altro disco utilizzando una dimensione di blocco da 16KB (settori da 32 x 512 byte) e sostituzione dei blocchi danneggiati con gli zeri: sudo dd bs=16384 if=/dev/rdisk0 of=/diskcopy conv=noerror,sync
  • Per copiare un volume / partizione da un disco ad una partizione su un'altra unità con una dimensione di 256KB di blocco:sudo dd bs=256K if=/dev/rdisk0s2 of=/dev/rdisk1s2 conv=noerror,sync
  • Per copiare un disco o una partizione in un file, se un percorso non è specificato, il file verrà creato nella directory corrente: sudo dd bs=512K if=/dev/rdisk0s2 /home/john/rdisk0s2.dd conv=noerror

'dd_rescue' Kurt Garloff

Se credi ci sono molti settori danneggiati sul disco, è possibile provare a utilizzare 'dd_rescue'(dd_rescue) al posto di dd.

Il metodo migliore: GNU ddrescue di Antonio Diaz

La soluzione migliore - sia più veloce ed efficiente - sembra essere quella di Antonio Diaz 'ddrescue' (ddrescue)

# download ddrescue
wget http://download.savannah.gnu.org/releases/ddrescue/ddrescue-1.8.tar.bz2
# extract the source code
tar xjf ddrescue-1.8.tar.bz2
# compile ddrescue
cd ddrescue-1.8
./configure && make
# first, grab most of the error-free areas in a hurry:
./ddrescue -n /dev/old_disk /dev/new_disk rescued.log
# then try to recover as much of the dicy areas as possible:
./ddrescue -r 1 /dev/old_disk /dev/new_disk rescued.log

La diagnosi precoce di settori danneggiati

Gli HD moderni possono trovare dei propri problemi grazie a SMART Monitoring.

Vai a TestDisk