sábado, 22 de febrero de 2014

Como recuperar fotos de una SD estropeada


Por en 8:51

Imagen de una SD estropeada


Hay algo que nos preocupa mucho a los que usamos nuestros  móviles para hacer fotos, o bien tenemos cámaras digitales con tarjeta de memoria.

Las tarjetas SD y microSD algunas veces, y sin ninguna explicación dejan de funcionar.

En ellas conservamos muchos recuerdos en forma de fotografías, que o bien no hemos tenido tiempo en descargar a nuestros ordenadores, o bien se nos ha olvidado.

En el caso de los teléfonos móviles, existen aplicaciones que hacen automáticamente copia de seguridad de nuestras fotos en la nube, como pueden ser Dropbox o Google +, pero claro, tenemos que tenerlas instaladas y configuradas.

Si no hemos instalado ninguna de estas aplicaciones y además no hemos hecho copia de seguridad, aun nos queda una alternativa para no perder esos recuerdos.

Voy a explicaros como recuperar vuestras imágenes desde Windows y Linux.

Recuperación de fotos desde Windows

La mayor parte de aplicaciones que vais a encontrar son de pago o bien solo sirven para recuperar fotos borradas por error.

Si tu tarjeta está dañada y Windows no la reconoce, te recomiendo que uses esta aplicación:

Zero Assumption Recovery, la cual podrás descargar desde su página web (la primera de las tres que aparecen).

1º Una vez instalado y ejecutado, seleccionamos la primera opción (Image Free Recovery)

Pantalla 1 ZAR


2º Ahora tenemos que seleccionar nuestra unidad de tarjeta de memoria, la distinguiréis porque pone SD/MMC Reader

Pantalla ZAR 2



3º Una vez seleccionada pulsamos sobre NEXT

Pantalla ZAR 3

Ahora estará haciendo la comprobación de la tarjeta y buscando los archivos recuperables, puede durar bastante rato hasta que termine, así que paciencia.

Una vez terminado, pulsamos sobre la carpeta ROOT para seleccionar todos los archivos y damos de nuevo a NEXT

Pantalla ZAR4


Nos pedirá una carpeta donde guardar los archivos, como el programa no deja crearla directamente, tendremos que poner el nombre de carpeta que queremos crear (1) para que nos pregunte si estamos de acuerdo con crearla. y pulsar sobre Start copying the select files (2)

Pantalla ZAR 5

Esperamos a que copie todos los archivos a la carpeta seleccionada, y con esto tendremos recuperadas parte de las imágenes perdidas.

Pantalla ZAR 6

Este es el resultado

Resultado de la recuperación de archivos

Como podéis ver, los archivos no conservan su nombre, pero si su extensión. Hemos recuperado un total de  1923 elementos de esta tarjeta dañada.



Recuperación de fotos desde Linux.

Para el sistema operativo del pinguino, vamos a utilizar el terminal, abrimos la aplicación terminal y seguimos estos pasos:

1º Creamos una carpeta donde vamos a almacenar nuestros archivos recuperados.

mkdir recuperacion   

Esto nos creará un directorio en nuestra carpeta de usuario.

2º Instalamos la aplicación testdisk

Si usas ubuntu (u otra distribución basada en Debian)

sudo apt-get install testdisk   

Si usas Fedora

yum install *testdisk*   

Con este comando, instalaremos la aplicación testdisk, necesaria para crear una imagen de nuestra tarjeta dañada con la que trabajar

3º Buscamos el nombre del dispositivo para crear una imagen de la tarjeta

sudo fdisk -l   

Veremos una pantalla como esta, apuntad el nombre que os señalo:

Apuntar el nombre del dispositivo de tarjeta de memoria

En mi caso el nombre de mi dispositivo es mmcblk0, pero puede ser diferente.

4º Creamos una imagen de la tarjeta de memoria, para trabajar sobre la imagen sin modificar la tarjeta

dd if=/dev/mmcblk0 of=sd.img bs=512   

Muy importante, donde pongo mmcblk0, tenéis que poner el nombre de vuestro dispositivo, que  apuntamos en el paso anterior.

Este paso puede tardar un rato, y nos generará un archivo, de nombre sd.img con el tamaño de nuestra tarjeta de memoria, así que será necesario tener espacio libre en nuestro disco duro.

5º Vamos a recuperar los archivos, ejecutamos el siguiente comando.

photorec sd.img  

Y encontraremos una pantalla como esta:

Pantalla Photorec 1

Pulsamos intro, para continuar

Pantalla Photorec 2

Volvemos a pulsar intro para seleccionar la partición.

Pantalla Photorec 3

Seleccionamos el tipo de sistema de archivos, para nuestras tarjetas de memoria casi siempre estarán en formato FAT/NTFS/HFS+, asi que seleccionamos Other y pulsamos sobre intro.

Pantalla Photorec 4

Ahora le decimos al programa donde queremos guardar las fotos recuperadas, para eso seleccionamos la carpeta recuperación, que creamos en el primer paso del tutorial.

Pantalla Photorec 5

Ya solo tenemos que pulsar la tecla C, para que empiece la recuperación, y veremos la siguiente pantalla:

Pantalla Photorec 6

Aquí podemos ver como la recuperación está funcionando, y está recuperando un montón de fotos y archivos de todo tipo. Tendremos que esperar un rato, cuanto mayor sea la tarjeta, más tiempo tardará. Cuando termine veremos la siguiente pantalla

Pantalla Photorec 7

Nos indica que se han recuperado 3805 archivos (en este caso), ya solo tenemos que ir a la carpeta que creamos en el primer paso, y ahí tendremos varias subcarpetas, donde están los archivos recuperados.

Imagen del resultado de la recuperación en linux

Los archivos no mantendrán su nombre original, así que tendremos que ir carpeta por carpeta buscando los que nos interesen.

Conclusiones


Como podéis ver, en ambos sistemas operativos hemos conseguido recuperar datos, pero el resultado de Linux ha sido superior en número de archivo y en la calidad de los mismos (algunos de los archivos recuperados en Windows presentan problemas de corte de imagen).

Las dos opciones son gratuitas. Para Windows existen multitud de programas de pago para recuperar datos, son más sencillos y en algunos casos con mejores resultados que la versión gratuita.

Este sistema es válido para todo tipo de tarjetas de memoria, USB de memoria y también para discos duros externos o internos.

Dedicatoria: Gracias +SONIA M por tu tarjeta dañada y sobre todo por la idea para esta entrada del blog.
Fuente para la recuperación vía Linux: DesdeLinux

Post relacionados:

Copias de Seguridad

Juan Pedro Municio

Aprendiz de todo, maestro de nada en el mundo de la tecnología. Siempre buscando nuevas cosas que aprender para poder explicar a los demás como funcionan y como sacarles partido.

30 comentarios:

  1. gracias, me salvaste las fotos de las vacaciones!!!!!!!! Ernesto

    ResponderEliminar
  2. Me alegro mucho de que te haya servido Ernesto.

    Un saludo

    ResponderEliminar
  3. Hola. Tengo un problema: en el paso 4º al teclear el comando me dice acceso denegado y no me hace la copia de los archivos. Tendría alguna solución. Gracias

    ResponderEliminar
    Respuestas
    1. ¿Desde la versión de linux o la de windows?. Si es la de Linux, fíjate bien en el paso 3º y copia bien el nombre de la tarjeta, si lo pones mal no te funcionará. Si aun así sigue sin funcionarte, prueba poniendo SUDO delante del comando.
      Suerte, espero que te funcione.

      Eliminar
  4. Perfecto!! tengo ubuntu 14.04 y añadiendo sudo delante del comando me ha funcionado!!
    Muchas gracias!!

    ResponderEliminar
    Respuestas
    1. Me alegro mucho. Modificaré la entrada por si le sucede a alguien más. Gracias por tu comentario.

      Eliminar
  5. Muchas gracias!! Un post muuuuy útil y fácil de seguir. :)

    ResponderEliminar
    Respuestas
    1. Me alegro mucho de que te haya sido de utilidad. Gracias por tu comentario. Un saludo.

      Eliminar
  6. Sos un crack loco!! Me salvaste
    Muchas gracias por tomarte el tiempo de hacer algo tan útil y de forma tan didáctica.

    Saludos!

    ResponderEliminar
    Respuestas
    1. Me alegro de haberte ayudado. Un saludo y muchas gracias por leer Munilabs.

      Eliminar
  7. Hola! Hice todos los pasos con Ubuntu 14.04 y en principio era todo correcto. Lo que pasa es que cuando se genera el archivo sd.img no se crea con el tamaño que tenía la tarjeta. No se recupera ningún archivo.
    ¿Puede haber alguna alternativa? Estoy desesperda!

    Gracias Un saludo!

    ResponderEliminar
    Respuestas
    1. Antes de introducir el comando del paso 4 pon SUDO. Te pedirá la password del root y te creará el archivo. Si aún así no lo consigues, comprueba que el nombre que pones para identificar el dispositivo es correcto. Realiza el paso 3 y fijate bien.
      Si aun así no lo consigues, prueba la opción con Windows.
      Suerte y a por ello.

      Eliminar
  8. Muchas gracias, me a sido de mucha ayuda la parte de linux, pude recuperar las fotos que no se porque la cámara no las pilla después de hacerlas meter la tarjeta en el ordenador y volver a introducir en la cámara. muchas gracias

    ResponderEliminar
  9. Buenas y perdon por mi ignorancia, en el paso 2 de linux indicas q se instale testdisk de dnd lo obtengo si no tengo conexion a internet?

    ResponderEliminar
    Respuestas
    1. Es mejor si puedes conectarte a internet (aunque sea conectando el móvil a tu equipo) para instalarlo.

      Sino puedes bajarlo desde aquí

      http://www.cgsecurity.org/wiki/TestDisk

      Saludos

      Eliminar
  10. hola Juan, en windows me sale que no hay dispositivos compatibles con Image Recovery Mode... crees que haya alguna esperanza de que pueda valer en linux? no tengo linux y la instalada es larga, pero haría lo que sea para recuperar mis fotos de las vacaciones...Gracias por tu ayuda

    ResponderEliminar
    Respuestas
    1. Con Linux tienes más posibildades de acceder a una tarjeta dañada que con windows. Busca algún amigo que tenga linux instalado o instálo. Distribuciones como Ubuntu son muy amigables y seguro que no te arrepientes. Mucha suerte y ojalá obtengas resultados.

      Eliminar
  11. Hola Juan, le instalé ubuntu en una máquina virtual MVWare, y probé tus pasos con una tarjeta buena que tengo y si la reconoce, desafortunadamente mi tarjeta dañada no aparece, probé también con lsblk pero nada; tal vez se te ocurre algo mas que pueda hacer? no quiero perder mis fotos del paseo D: se me dañó por estar escuchando música mientras regresaba del paseo. Gracias por tu tiempo

    ResponderEliminar
    Respuestas
    1. Hola Michele. VMWare es una maquina virtual, y los accesos al hardware los hace desde la capa de Windows para luego darle control al sistema virtual.
      Intenta, aunque sea, instalar un ubuntu, ya sea en una partición (puedes hacer dual boot con tu windows y ubuntu) o otro disco duro.
      Siempre el acceso nativo de linux va a ser más exhaustivo que si usas la máquina virtual.
      Si aun haciendo esto no te la reconoce, puede ser problema físico (sobre tensión del chip, problemas de contactos de la tarjeta, etc), en ese caso vamos a tener mucho más difícil la recuperación.
      Mucha suerte, espero que lo consigas.

      Eliminar
  12. MUCHAS GRACIAS, EXCELENTE POST, MUY CONFIABLE. EXITOS

    ResponderEliminar
    Respuestas
    1. Muchas gracias Consultor Uno. Si he conseguido recuperar los recuerdos o datos importantes de alguien me doy por más que satisfecho. Pronto migraré este blog a una plataforma más actual para seguir intentando echar una mano a la gente.

      Eliminar
  13. Muy buen post, eficiente y bueno. Además una magnifica oferta del software libre.
    Encantado con tus explicaciones y a seguir ilustrando.

    ResponderEliminar
    Respuestas
    1. Muchas gracias. Me alegro de que te sirva de ayuda. En breve habrá muchos cambios en Munilabs para seguir aprendiendo todos juntos.

      Eliminar
  14. ¿Qué significa que luego de hacer el procedimiento correctamente, dice haber recuperado, pero en la carpeta no aparece nada?-

    ResponderEliminar
  15. No dije nada... lo qe hizo fue recuperarlas en directorios nombrados de esta manera: recup_dir.1, recup_dir.2 .. en lugar de guardarlas dentro de la carpeta definidad...
    Gracias.
    Saludos.

    ResponderEliminar
    Respuestas
    1. Me alegro de que te haya funcionado ¿Que procedimiento usaste?

      Eliminar
  16. Gracias.. Me funcionó perfecto en linux..

    Saludos..

    ResponderEliminar
  17. Hola Juan Pedro:

    Funcionó todo en Linux.

    Un comentario añadido por si a alguien le pasa lo mismo que a mi. Ayer en la cámara me apareció el mensaje de que la tarjeta estaba dañada y debía formatearla. Lo hice a bajo nivel (es una opción de la cámara y la uso por defecto), la tarjeta se vació y pude seguir usándola. Hoy se me ocurrió que a lo mejor podía recuperar las fotos previas, ya que suelen quedar en la tarjeta hasta que se sobreescriben. He seguido tu procedimiento pero solo me han aparecido las nuevas. Mi duda es si ha sido culpa mía por el formateo a bajo nivel y si, si no lo hubiera hecho de esa manera, hubiera conseguido recuperar más fotos. Pero bueno... contento porque si me vuelve a pasar tengo ya la solución.

    Muchas gracias Juan Pedro y un saludo.

    ResponderEliminar
    Respuestas
    1. Hola Erelea.

      Cuando haces un formateo de bajo nivel sobreescribes la tarjeta completamente. Eso evita poder recuperar fotos antiguas. Si el formateo hubiese sido simple seguramente habrías podido recuperar mucho más. Un formateo simple solo indica en la tabla de partición que el espacio está disponible, pero no sobreescribe.
      Me alegro de que te funcionara no obstante.

      Un saludo y gracias por tu comentario que puede ayudar a otras personas.

      Un saludo

      Eliminar