DDRESCUE - Come ti recupero i dati da un cdrom!

Mer, 20/10/2004 - 22:36

DDRESCUE - Come ti recupero i dati da un cdrom!

Inviato da fabiog367 1 commento

DDRESCUE e' un programma utile per il recupero dei dati dai supporti cdr e cdrw (e non solo).
E' gia' presente in Debian testing (Sarge) e unstable (Sid).

Basta dare il solito comando:

#apt-get install ddrescue

Oppure puo' essere scaricato da qui:
http://www.garloff.de/kurt/linux/ddrescue/

Si tratta grosso modo del comando dd, usato spesso per copiare cdrom, floppy e anche partizioni.

Per esempio, se vogliamo salvare l'immagine di un cdrom dati su harddisk con dd dobbiamo dare il seguente comando:

# dd if=/dev/cdrom of=sarge_01.iso
entrati 1325120+0 record
usciti 1325120+0 record
678461440 bytes transferred in 136,508787 seconds (4970094 bytes/sec)

Il nostro comando ddrescue si comporta piu' o meno allo stesso modo, con qualche differenza: quando trova errori sul disco tenta di estrarre i dati quanto piu' possibile.
Ovviamente richiede un certo tempo...

Diamo il comando:

$ dd_rescue /dev/cdrom immagine.iso

Dove "/dev/cdrom" e' la fonte
"immagine.iso" e' la destinazione

Apparira' sul video quanto segue:

....
dd_rescue: (warning): /dev/cdrom (349345.5k): Input/output error!
dd_rescue: (info): ipos:    349346.0k, opos:    349346.0k, xferd:    349346.0k
                *  errs:  11772, errxfer:      5886.0k, succxfer:    343460.0k
             +curr.rate:        0kB/s, avg.rate:       44kB/s, avg.load:  0.1%
dd_rescue: (warning): /dev/cdrom (349346.0k): Input/output error!
dd_rescue: (info): ipos:    349346.5k, opos:    349346.5k, xferd:    349346.5k
                *  errs:  11773, errxfer:      5886.5k, succxfer:    343460.0k
             +curr.rate:        0kB/s, avg.rate:       44kB/s, avg.load:  0.1%
dd_rescue: (warning): /dev/cdrom (349346.5k): Input/output error!
dd_rescue: (info): ipos:    349347.0k, opos:    349347.0k, xferd:    349347.0k
                *  errs:  11774, errxfer:      5887.0k, succxfer:    343460.0k
             +curr.rate:        0kB/s, avg.rate:       44kB/s, avg.load:  0.1%
dd_rescue: (warning): /dev/cdrom (349347.0k): Input/output error!
dd_rescue: (info): ipos:    349347.5k, opos:    349347.5k, xferd:    349347.5k
                *  errs:  11775, errxfer:      5887.5k, succxfer:    343460.0k
             +curr.rate:        0kB/s, avg.rate:       44kB/s, avg.load:  0.1%
dd_rescue: (warning): /dev/cdrom (349347.5k): Input/output error!
...

..e se la procedura avra' successo..

dd_rescue: (info): /dev/cdrom (349348.0k): EOF
Summary for /dev/cdrom -> immagine.iso:
dd_rescue: (info): ipos:    349348.0k, opos:    349348.0k, xferd:    349348.0k
                  errs:  11776, errxfer:      5888.0k, succxfer:    343460.0k
             +curr.rate:       30kB/s, avg.rate:       44kB/s, avg.load:  0.1%
 

Ovvio che nei settore irreparabilmente danneggiati non si avra' l'assoluta certezza...
Ma e' sempre meglio che niente :-P

Ora possiamo decidere se masterizzare l'immagine iso su un nuovo cdrom...

#cdrecord -v dev=0,4,0 speed=4 -eject -data immagine.iso

..oppure...montare l'immagine come un normale filesystem ed avere accesso ai dati in lettura:

#mkdir /mnt/loopcd
#mount -t iso9660 -o ro,loop=/dev/loop0 immagine.iso /mnt/loopcd

in /mnt/loopcd avremo il contenuto del nostro cdrom Smile

man dd_rescue e dd_rescue -h possono dare ulteriori suggerimenti.

Buon recupero a tutti Smile
Fabio