El día de hoy un compañero de trabajo me comentó que había tenido un problema con la SD de su cámara digital y había perdido todas las fotos. Como lamentablemente pasé por esa experiencia, me ofrecí para recuperar sus archivos de dicha memoria.

SPOILER ALERT: no usar adaptadores micro SD a SD.



Este colega me comentó que al retirar la tarjeta de la cámara e insertarla en su computadora, Windows le ofrecía formatear la tarjeta, cosa que no hizo. Evidentemente el sistema de archivos o el sector de booteo MBR se habían corrompido.

Me imaginé por dónde vendría el problema y al ver la tarjeta se confirmaron mis sospechas: una micro SD con un bendito adaptador a SD. Garantía de fallo asegurada. Esos adaptadores SIEMPRE fallan, son de pésima calidad, no sirven, son desechables.

Pasé por la misma experiencia y en su momento recuperé todas mis fotos de una memoria SD gracias a photorec, una pieza de software libre maravillosa, desarrollada y mantenida por Christophe Grenier.

A partir de ese día dejé de usar tarjetas micro SD con adaptadores y nunca más volví a tener este inconveniente.

Ahora bien, necesitaba instalar PhotoRec en mi estación de trabajo FreeBSD. Sin embargo, lamentablemente hasta el momento no hay un port disponible, por lo que debí compilar testdisk (paquete que provee a PhotoRec) desde sus fuentes.

Para comenzar, descargar los fuentes:

# cd && mkdir packages
# cd packages/
# wget https://www.cgsecurity.org/testdisk-7.1-WIP.tar.bz2

Luego extraer el paquete:

# tar xjvf testdisk-7.1-WIP.tar.bz2
# cd testdisk-7.1-WIP/

PhotoRec incluye por defecto una interfaz gráfica. Como no me interesa utilizarla, configuro el paquete sin soporte para qt:

# ./configure --disable-qt

Esto hace que el proceso de compilación sea instantáneo (en comparación al proceso de compilación de la GUI) y el paquete resultante muy pequeño.

Compilar e instalar:

# make && make install

Luego es necesario (en FreeBSD) reiniciar la sesión para detectar la instalación de PhotoRec.

Ahora es posible recuperar los archivos. Conectar la SD a nuestra computadora y leer el final de dmesg para identificar el nombre de dispositivo asignado a la misma:

# tail /var/log/messages
Dec  6 08:12:19 hal9000 kernel: umass0 on uhub3
Dec  6 08:12:19 hal9000 kernel: umass0: <Generic Mass Storage Device, class 0/0, rev 2.00/1.00, addr 3> on usbus2
Dec  6 08:12:19 hal9000 kernel: umass0:  SCSI over Bulk-Only; quirks = 0xc100
Dec  6 08:12:19 hal9000 kernel: umass0:4:0: Attached to scbus4
Dec  6 08:12:19 hal9000 kernel: da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
Dec  6 08:12:19 hal9000 kernel: da0: <Generic Storage Device 0.00> Removable Direct Access SCSI-2 device
Dec  6 08:12:19 hal9000 kernel: da0: Serial Number 00000000000006
Dec  6 08:12:19 hal9000 kernel: da0: 40.000MB/s transfers
Dec  6 08:12:19 hal9000 kernel: da0: 1876MB (3842048 512 byte sectors)
Dec  6 08:12:19 hal9000 kernel: da0: quirks=0x2<NO_6_BYTE>

El dispositivo se detecta como da0 y la primera (y generalmente única) partición se identifica como da0s1.

Comenzar el proceso de recuperación de archivos:

# photorec /dev/da0s1

Continuar como lo explica el artículo ¿Dude dónde están mis fotos?. El procedimiento es simple, sólo se debe seleccionar el tipo de sistema de archivos "Other" y especificar un directorio en el sistema de archivos local donde almacenar los archivos recuperados.

La tarea demoró unos 15/20 minutos para recuperar unos 2 GB de información.

Otro usuario feliz gracias al software libre.

Referencias


Tal vez pueda interesarte


Compartí este artículo y dejá tu comentario