Para recuperar ficheros con ddrescue, primero deberemos instalarlo con apt-get install gddrescue (equipos basados en debian) una vez instalado, procederemos a utilizarlo del siguiente modo.
#Recuperamos el usb que tenemos como sdb en fichero /tmp/imagenrecuperada.img ddrescue -d -r3 /dev/sdb /tmp/imagenrecuperada.img /mnt/test.logfile
Con la opción -d le decimos a ddrescue que acceda directamente al dispositivo y no utilice la cache del kernel, con -r 3 que intente hasta 3 veces si hay algun sector defectuoso que no lo lee a la primera. Esta opción se podria quitar.
Si todo sale ok nos saldra lo siguiente, donde nos indica el tamaño de la imagen recuperada etc.
Ahora ya tenemos una imagen del disco que al montarlo en el sistema de ficheros , podremos acceder a los ficheros sin problemas. Para ello deberemos «montar» la imagen en una carpeta.
Primero obtendremos de donde empieza la particion que queremos montar, para ello pondremos fdisk -l -u imagenrecuperada.img y obtendremos que cantidad es cada sector 512 y que nuestra imagen empieza en el sector 63, con lo que le tendremos que decir al comando mount que nuestro offset real es de 32256.
El comando para montarlo en carpeta(que abremos creado previamente ) es
mount -o loop,offset=32256 -t vfat /tmp/imagenrecuperada.img /tmp/ficherosarecuperar/
la opcion de loop es para cuando montamos ficheros en vez de dispositivos, el offset para indicar donde empieza nuestra particion y -t vfat para decirle que tipo de sistema de fichero es.
Hay una alternativa a este tipo de montaje que lo hace más sencillo, aquí podeis verlo (es la segunda manera de hacerlo) Montar imagenes en el sistema de ficheros
Ahora ya podemos recuperar todos nuestros ficheros. Suerte y a por ellos.