Probablemente alguna vez has escuchado hablar de personas que han logrado recuperar archivos después de haber sido borrados (y no hablo de archivos que solamente estaban en la papelera). Si te interesa saber cómo es posible hacer esto, sigue leyendo.
¿Cómo funcionan los discos duros?
Antes de explicar por qué es posible recuperar un archivo es necesario comprender cómo funciona un disco duro. A diferencia de los discos de estado sólido o SSD, los discos duros o HDD almacenan la información en estado físico. Un HDD está compuesto de uno o varios discos con una o dos caras en las que es posible almacenar información. Cada una de estas caras está dividida en millones de pequeños segmentos magnéticos. Estos segmentos tienen una capacidad predefinida. Si queremos almacenar un bit encendido (1), en uno de estos segmentos será magnetizado por una cabeza de lectura/escritura; en cambio, si queremos almacenar un bit apagado (0), esta misma cabeza desmagnetizará el segmento correspondiente.
No basta con almacenar información en un disco duro, si no tenemos un control sobre en dónde se almacena esta información entre tantos millones de segmentos, si quisiéramos localizar un archivo sería como buscar una aguja en un pajar. Para mantener control, los sistemas operativos cuentan con una herramienta llamada sistema de archivos, la cual funciona como una tabla o mapa que mantiene la información de qué archivos hay en el sistema y en qué direcciones de memoria (o segmentos) están localizados.
¿Cómo elimina archivos el sistema operativo?
Cuando eliminamos un archivo, como podrás suponer, generalmente no es borrado inmediatamente. Imagina que que quieres deshacerte de un archivo de 15 Gigabytes, el tiempo que le tomaría al sistema operativo mover la cabeza de lectura/escritura a lo largo del disco duro hasta “limpiar” cada uno de los sectores que lo componen sería considerablemente alto. Para hacer este proceso más rápido, el SO solamente borra la entrada de este archivo del sistema de archivos. Si no existen entradas en el sistema de archivos indicado que un bloque está ocupado, la próxima vez que almacenes algo en tu HDD, el sistema operativo podría sobrescribir aquellos en los que originalmente estaba tu archivo de 15 Gigabytes.
Recuperar archivos eliminados
Ya comprendimos que el sistema operativos puede optar por solo eliminar la entrada de un archivo en el sistema de archivos en lugar de realmente “limpiarlo” del sistema. El proceso para recuperar estos archivos es muy simple, simplemente usamos herramientas que nos permitan localizar archivos cuyas entradas fueron eliminadas del sistema de archivos. La mayoría de estas herramientas hacen uso de los logs del sistema de archivos para saber qué archivos se han eliminado recientemente y de qué direcciones de memoria.
Recuperar archivos en Linux
En Linux es posible recuperar archivos desde la terminal sin instalar ningún programa adicional usando debugfs. Foremost es otra herramienta muy útil para recuperar archivos; para instalarla desde Ubuntu:
sudo apt-get install foremost
Para instalarla desde CentOS/RHEL 7:
rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install foremost
Desde Debian:
aptitude install foremost
Otra alternativa muy práctica para Linux es Testdisk. Para instalarla desde Ubuntu y derivados:
sudo apt install testdisk
Recuperar archivos en Windows
Recuva es, probablemente, la alternativa más popular para recuperar archivos en Windows gracias a su interfaz de usuario atractiva e intuitiva. Puedes descargar Recuva desde aquí.
¿Cómo prevenir la recuperación de archivos?
Una vez que el sistema operativo ha sobrescrito algo en los sectores con archivos marcados como eliminados, es casi imposible recuperarlos. Generalmente no tenemos control de las direcciones de memoria en las que el sistema operativo almacena todos los archivos, así que si queremos eliminar permanentemente los archivos de nuestro día a día sería muy complicado de hacer. La alternativa es utilizar un triturador de archivos (file shredder) el cual se encarga de, además de eliminar la entrada en el sistema de archivos, de “limpiar” los sectores en los que estaba un archivo.
Algunos trituradores de archivos también incluyen una opción para desmagnetizar todos los sectores inutilizados del disco duro, de ese modo también prevenimos que sea posible recuperar los archivos que no eliminamos con el triturador de archivos.
Si utilizas Linux existen varias alternativas para hacer imposible recuperar archivos; entre ellas tenemos los comandos dd, shred, wipe y scrub.
Si usas Windows puedes descargar FileShredder desde aquí.