He estado experimentando un poco con ddrescue, y creo que tiene posibilidades interesantes para hacer imágenes ISO. De momento, voy a poner un par de casos en los que es útil.
CASO 1: Volcando discos en general
El comando a utilizar:
Código: Seleccionar todo
ddrescue -b 2048 -d /dev/cdrom fichero.iso fichero.map
Con este comando leeremos una ISO desde el lector -optico (/dev/cdrom), con tamaño de bloque de 2048 bytes (el habitual para un CD o DVD, -b 2048), leyendo mediante acceso directo (-b, así evitamos que Linux haga reintentos) y generaremos dos ficheros: fichero.iso que contiene la imagen ISO y un fichero de mapa (fichero.map) que contiene... cosas interesantes.
El fichero de mapa contiene un mapa de los sectores que no se han leído y los que se han leído erróneamente. Esto nos puede permitir interrumpir y continuar el proceso en cualquier momento, y podría permitirnos (pendiente de averiguar cómo) saber qué ficheros tienen datos erróneos.
Ventajas: En el caso de discos con muchos sectores erróneos, se puede cortar el volcado con Ctrl+C y luego seguir donde lo dejó repitiendo exactamente la misma orden. Esto es útil en discos como los de FX Interactive que pueden contener hasta 20000 (sí, ahí dice veinte mil) bloques erróneos, ya que te permite interrumpir la operación, apagar el ordenador y continuar en otro momento. Creo que es el único programa que permite hacerlo (también puedes hacerlo con dd, pero dd se interrumpe cuando encuentra datos erróneos).
El proceso habrá terminado cuando ddrescue vuelva a la línea de comandos por causas naturales. En ese momento, la pantalla debería mostrar non-trimmed = 0k, non-scraped = 0k (ya no le queda nada pendiente de leer). Si esto no está a 0 es que otra cosa ha ido mal, como que ya no le queda espacio en disco para grabar los datos. Rescued indica cuánto se ha leído correctamente, errors cuantos bloques de errores se han encontrado y errsize el tamaño total de lo que no se ha podido leer.
Limitaciones:
- Desgraciadamente, ddrescue solo lee la primera pista del disco. En discos con múltiples pistas (p.ej.: ISO + audio) tendrás que hacer algún tipo de "arreglo", como volcar el audio por separado para crear un conjunto BIN/CUE.
- No estoy seguro de que pueda volcar imágenes de discos en modo 2 (usan 2352 bytes por sector), o leer bloques de 2352 bytes para leer también los subcódigos. Si usamos -b 2352, los bloques de 2352 bytes leídos contendrán datos de dos sectores de 2048 bytes.
Notas:
- Esto genera una imagen ISO bastante normalita sin sectores erróneos. Todos los ficheros serán legibles/extraíbles, aunque sus contenidos estén corruptos.
- Si los sectores erróneos son debidos a algún tipo de protección, es muy probable que la protección "salte" (spoiler: eso no pasa con los discos de FX / Dinamic).
- Un posible siguiente paso (si los sectores son debidos a una protección) podría ser extraer los ficheros ahora legibles, copiar algún tipo de crack y regenerar una ISO que se instale con el crack ya puesto.