Restaurar archivos borrados en un sistema de archivos FAT32



Algunas reflexiones.

Con el surguimiento de los dispositivos de almacenamiento de datos con acceso al bus USB (Universal Serial Bus)  conocidas como USB flash drive, o en chilango, simplemente memorias USB, transportar varios Giga-Bytes de archivos se ha vuleto algo muy sencillo... pero también peligroso. Me explico:

Hace no mucho tiempo, eran comunes los discos (o diskettes) de 3.5 pulgadas (con capacidad de1.44 Mega-Bytes). Cuando bajó el costo de los dispositivos lectores-grabadores se popularización el CDROM, en el cual se podían almacenar hasta 600 Mega-Bytes. Tan solo unos años después suguió la tecnología del DVD con sus 4.7 Giga-Bytes de capacidad. La característica de estos dos medios de almacenamiento, el CDROM y el DVD, es que era necesario hacer algunos pasos previos para poder almacenar la información: crear una imagen con un sistema de archivos especial (ISO 9660) y después realizar el proceso de gradabo, lo que en chilango denominamos "quemar". Además del proceso de quemar era evidente que en la mayoría de los casos, la información almacenada quedaba de forma permanente en el disco, y aún cuando el disco fuera RW, es decir re-escribible, era necesario crear de nuevo la imagen y volverlo a quemar. El proceso anterior nos obligaba a poner un poco de atención a los archivos que almacenabamos y a tener cierta confianza a que una vez almacenados los archivos estaría persistentes durante algunos años.

Las memorias USB revolucionaron la forma de almacenar y transportar grandes cantidades de información. Ahora es común tener en el llavero una memoria capaz de almacenar varios Giga-Bytes de información, pero lo importante no solo es la gran capacidad de almacenamiento si no la facilidad del almacenamiento. Ahora solo basta encontrar en la computadora una ranura USB libre, insertar la memoria, identificar el nombre asignado por el sistema operativo a la unidad, seleccionar los archivos y "arrastrarlos" a la unidad, expulsar o desmontar la unidad y finalmente sacar la memoria de la ranura. ¿Fácil no?. Muchos de mis lectores quizá estarán pensando: "y eso ¿qué tiene de extraordinario?", quizá no les sorprende porque han crecido con esta tecnología y creen que eso de los disco de 3.5 pulgadas es de la era de las cavernas. Una característica no menos importante de las memorias USB es que ni están constituidas por mecanismos ni necesitan un lector con mecanismos, lo cual la hace más duraderas.

El caso es que la facilidad puede ser causante de errores y en algunos casos, errores graves. Lean lo que escribo a continuación y quizá estarán de acuerdo conmigo.


De nuevo: a todos nos puede pasar...

Hace poco publiqué una de las formas de restaurar archivos borrados de un sistema de archivos ext3, no estaría mal que lo leyeras primero. Lo que ahora voy a describir aquí es mucho más sencillo, debido a que el sistemas de archivos FAT (File Allocation Table) son mucho más sencillos que los sistemas extendidos. En todo curso de sistemas operativos se deberían de explicar su funcionamiento.

Consideren el siguiente caso, y ya saben, cualquier parecido con la realidad, es mera coincidencia: cuento con una memoria USB KINGSTON de 8 Giga-Bytes, en ella he estado almacenado archivos de mi trabajo, música, fotografías, videos, etc. Una amiguita cree (bueno, le he hecho creer) que me gusta la música de banda, me dice emocionada que le han pasado el "sensacional" video de la arrolladora y me pide que la guarde en mi USB. Resignado inserto mi memoria en su computadora y veo lo siguiente:

kitty@mi-compu:/media/KINGSTON$ ls
Musica  FotosNavidad_2011  Programas  Tesis Videos

leo el nombre de los archivos y directorios que tiene mi memoria y trato de recordar qué es lo que tengo guardado. Presionado por la mirada insistente e impaciente de mi amiguita, verifico el espacio libre que tengo en mi memoria USB:

kitty@mi-compu:/media/KINGSTON$ df
Filesystem  1K-blocks  Used     Available Use% Mounted on
/dev/hda3   47129028  11772068  32962876  27% /
/dev/hda2   67283028  44792388  19072812  71% /home
/dev/sdf1    7815472   7653696      1776  99% /media/KINGSTON

mi memoria está al 99% de su capacidad, es decir, no será posible almacenar el preciado video que tan efusivamente mi amiguita quiere que yo también posea... de nuevo la disyuntivas de la vida: o le confieso que eso de de la banda a mi... nomas no me interesa, con las consecuencias que eso conlleva; o elimino algo de mi memoria asegurando que nada es más importante que poder apreciar el video que a ella tanto le gusta... ni modo, comenzamos a pensar que podría ser menos doloroso eliminar de la memoria y claro esta que no vas a abrir enfrente de ella ese directorio que dice FotosNavidad_2011, donde hay una foto donde se te cayo la piñata encima y donde tu mamá te insistío que cargaras a los peregrinos y tu hermana te tomó decenas de fotos... NO!!!. Te decides y pones sin pensarlo mucho:

kitty@mi-compu:/media/KINGSTON$ rm -rf FotosNavidad_2011

mientras se borran los más de 4 Giga-Bytes de fotos de esa ocasión, te llegan a la memoria las fotos que te tomaste con la vecina en esa navidad y de inmediato también recuedas que en ese mismo directorio pusiste las fotos de tu viaje a Machu-Picchu!! donde conosiste a una chica francesa y te tomaste muchas fotos con ella, noooooooooooo... y también estaban las fotos de tu viaje a Vallarta!!. Tratas de cancelar el comando, pero es demasiado tarde, todo el directorio se ha eliminado de manera permanente...

La situación anterior
(totalmente hipotética) la he descrito con líneas de comando en un sistema linux, sin embargo, es equivalente a haber seleccionado el directorio a través de un explorador de archivos como el Nautilus de GNOME, y lo hubiera eliminado de manera permanente. Así mismo, es equivalente a haber eliminado de manera permanente el directorio (nóten como evito poner el término carpeta) desde el explorador de Windows. En ambos casos, el sistema operativo nos preguntó si deseabamos eliminarlo de manera permanente, por lo cual NO llevó el directorio a la papelera de reciclaje.




Crear una imagen de respaldo

No puedo suguerir qué explicación darle a la supuesta amiguita después de que tu cara pasó del color blanco al color rojo y de los ruidos extraños que salieron de tu cuerpo; qué explicación dar es algo que debe practicar cada quien. Lo que sí te suguiero que hagas es sacar tu memoria USB de manera inmediata de la computadora.

Como seguramente sabes, la mayoría de los sistemas de archivos re-utilizan los bloques (un bloque es un conjunto de sectores), es decir, cuando el sistema de archivos necesita escribir un nuevo archivo en el dispositivo, buscan bloques libres y los utilizan. Cuando un archivo es "eliminado" por el usuario, el sistema de archivos se limita a romper el enlace o vínculo entre la entrada del archivo (normalmente su nombre) con los bloques que utilizó para almacenarlo, entonces, la información del archivo eliminado sigue en esos bloques hasta que el sistema de archivos los re-utilice o los re-escriba. Por eso es necesario sacar la memoria USB de la computadora.

Una medida inmediata es crear una imagen del dispositivo, es decir, una copia sector a sector del dispositivo a un archivo. La copia se puede hacer con un diskmanager o con el comando dd (disk-dump) de linux.

Al insertar la memoria USB a un sistema con linux el sistema HAL montará automáticamente el dispositvo, para evitar que el sistema de archivos haga algún cambio desmontamos la unidad:

oscar@kroline:~$:umount /media/KINGSTON

#dd if=/dev/sdf1 of=memoriaUSB8G


...ouch, al rato le sigo, voy al cine =)

Photorec