ddrescue

che meraviglia il mondo GNU/Linux !!
ho alcuni vecchi cd rom masterizzati, di circa 15-20 anni fa, e ora alcuni presentano errori di I/O (input output): cioè hanno dei settori illegibili, a causa del deterioramento dovuto all’ età.

Questo a seconda delle marche: i TDK CD-R74 sono ancora perfetti, i peggiori di tutti sono i Sony CDQ-74CN, insieme ai Verbatim DataLifePLus e i “famosi” TraxdataTXG974 GOLD.

L’ unica soluzione per tentare di recuperare tutto (o quasi) è il potentissimo strumento ddrescue: su Debian si trova nel pacchetto gddrescue in cui la “g” sta per GNU.

ddrescue lavora su praticamente tutte le memorie di massa.
in particolare, per fare una immagine di un CDROM possiamo indicare la dimensione di blocco:

ddrescue -b 2048 /dev/cdrom cdimage logfile

Il programma è in grado di svolgere un ottimo lavoro in maniera automatica, ma se ci sono errori nel file di output, è possibile istruirlo a fare ulteriori “passate”, in maniera differenziale, cioè operando solo sui settori danneggiati, e non sull’ intero disco !
Si veda il manuale per le opzioni.

Le opzioni più usate sono -d e -r[n]: la prima usa un accesso diretto al disco, la seconda esegue n tentativi prima di uscire (n=-1 fa infiniti tentativi).

# per leggere prima i dati "buoni": (2048 è la dimensione standard dei blocchi)
ddrescue -b 2048 /dev/cdrom cdimage logfile

# per provare i blocchi danneggiati (3 retries)
ddrescue -b 2048 -d -r 3 -v /dev/sr0 dvd.iso rescue.log

# per provare con una direzione inversa di lettura -R
ddrescue -b 2048 -d -R -r 3 -v /dev/sr0 dvd.iso rescue.log

In questo momento sto facendo fare una seconda passata con -r5 su un CD che presentava circa 3900kB di errori, e dopo 16.80 minuti sono diminuiti a circa 2500kB.
Spero di arrivare a 0 errori !

isoinfo

http://windows.fyicenter.com/599_isoinfo-l_-List_of_Files_and_Their_Locations.html
https://www.herongyang.com/CD-DVD/Data-CD-ISO-9660-isoinfo-File-List.html

Con il comando isoinfo -l -i xyz.iso si ottiene un output come ls -l di bash, con alcune precisazioni: ad esempio per un output come il seguente

C:\>\local\cdrtools\isoinfo dev=0,0,0 -l | more

Directory listing of /
d--------- 0 0 0     2048      0 1900 [   19 02] . 
d--------- 0 0 0     2048      0 1900 [   19 02] .. 
d--------- 0 0 0     2048 Mar 12 2007 [   20 02] ATI 
---------- 0 0 0       27 Oct 14 2004 [28995 00] AUTORUN.INF;1
d--------- 0 0 0     2048 Mar 12 2007 [   21 02] BP
---------- 0 0 0     2411 Oct 18 2006 [28996 00] DELL.CSS;1 
d--------- 0 0 0     2048 Mar 12 2007 [   22 02] DRIVER 
---------- 0 0 0  3558406 Dec 20 2006 [28998 00] EMEACD_.PDF;1 
d--------- 0 0 0     2048 Mar 12 2007 [   25 02] EN 
d--------- 0 0 0     2048 Mar 12 2007 [   26 02] FR 
d--------- 0 0 0     8192 Mar 12 2007 [   28 02] GRAPHICS
d--------- 0 0 0     2048 Mar 12 2007 [   36 02] HE 
d--------- 0 0 0     2048 Mar 12 2007 [   37 02] IT 
---------- 0 0 0    76431 Jun  2 1980 [30736 00] MONITOR.EXE;1 
---------- 0 0 0     2439 Dec 18 2006 [30774 00] MONITOR.HTM;1
d--------- 0 0 0     2048 Mar 12 2007 [   40 02] NVIDIA 
---------- 0 0 0  4228202 Aug 28 2006 [30776 00] QSGE228.PDF;1 
---------- 0 0 0     1733 Dec 11 2006 [32841 00] README.TXT;1 

Directory listing of /ATI/
d--------- 0 0 0     2048      0 1900 [   20 02] . 
d--------- 0 0 0     2048      0 1900 [   19 02] .. 
---------- 0 0 0 23198334 Dec 20 2004 [   78 00] WXP_W2K.EXE;1 

Directory listing of /BP/
d--------- 0 0 0     2048      0 1900 [   21 02] . 
d--------- 0 0 0     2048      0 1900 [   19 02] .. 
---------- 0 0 0    66265 Jan  4 2007 [11406 00] ABOUT.HTM;1 
---------- 0 0 0   109495 Dec 14 2006 [11439 00] APPENDX.HTM;1 
---------- 0 0 0      903 Jul 31 2000 [11493 00] BULLET.GIF;1 
---------- 0 0 0     2411 Oct 18 2006 [11494 00] DELL.CSS;1 
---------- 0 0 0     4735 Oct 25 2006 [11496 00] DESKTOP.HTM;1 
---------- 0 0 0     6819 Nov 14 2006 [11499 00] INDEX.HTM;1 

troviamo

  • la colonna dei permessi: la prima posizione ci dice se la entry è una directory o meno
  • poi 3 colonne di ‘0’
  • poi troviamo la dimensione in bytes
  • poi la data
  • quindi la posizione del settore in blocchi (per i supporti ottici un blocco è pari a 2048 bytes), per verificare si usa isoinfo -d -i /dev/sr0 oppure (isoinfo -d -i xyz.iso)

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.