Trinity Rescue Kit - Ntfsundeleteall: Recuperar archivos borrados en NTFS | Algo de Linux

viernes, 10 de octubre de 2008

Trinity Rescue Kit - Ntfsundeleteall: Recuperar archivos borrados en NTFS

Cuando eliminamos un archivo, realmente no se borra, sino que su contenido se mantiene físicamente en el medio y el espacio ocupado por el archivo se marca como disponible para escribir.
Así, el próximo archivo que solicite espacio en disco, puede sobrescribir el contenido del archivo eliminado.

Cuando queramos recuperar datos borrados, es muy importante asegurarse que ninguna aplicación escriba en el disco o la partición donde se encontraba el archivo eliminado ya que cualquier archivo nuevo, por pequeño que sea, puede sobrescribir el archivo eliminado.

Ntfsundeleteall (script incluido en TRK) es un "envoltorio" de la aplicación ntfsundelete (incluida en el paquete ntfsprogs), una aplicación gratuita que nos permite recuperar archivos eliminados.

Lo que hace este script es buscar todos los ficheros borrados en un volumen ntfs e intenta recuperarlos. Ésto se consigue buscando en la Master File Table y viendo qué ficheros están aún disponibles en disco o parcialmente sobreescritos.

ntfsundeleteall recupera nuestros ficheros con el nombre de fichero original.

Sintaxis:


ntfsundeleteall dispositivo lugaralmacenamiento [porcentaje mínimo] --force

Donde:
  • dispositivo es la partición de la que queremos recuperar datos.
  • lugaralmacenamiento es el directorio donde almacenar los archivos recuperados.
  • porcentaje mínimo nos permite indicar que queremos recuperar los ficheros en base al porcentaje de recuperabilidad indicado.
  • --force lo que hace es omitir la comprobación de que el sistema de ficheros del que queremos recuperar datos es ntfs. Esta opción podemos utilizarla si pensamos que nuestro sistema de ficheros está tan dañado que ni siquiera la aplicación reconoce el tipo de sistema de ficheros.
Veamos cómo se utiliza el script:

Si tenemos, por ejemplo, un volumen ntfs en /dev/sda1 en el que hemos borrado archivos y los queremos recuperar, lo primero que debemos hacer es asegurarnos de que este volumen no se encuentra montado.

Después, preparamos un lugar donde podamos almacenar los archivos recuperados, como por ejemplo, un disco usb externo /dev/sdb1 y lo montamos, por ejemplo en /mnt0. Y, si queremos ser un poco organizados, creamos un directorio al que llamaremos recuperados, en el que almacenaremos los ficheros recuperados.

Una cuestión importante: Los ficheros recuperados nunca deben ser almacenados en la misma partición de donde los estamos recuperando, porque corremos el riesgo de sobreescribir otros ficheros que aún no han sido recuperados.

Siguiendo con el ejemplo, podemos hacer:

# ntfsundeleteall /dev/sda1 /mnt0/recuperados

Ésto recuperará todos los ficheros que encuentre, incluso si sólo el 1% del fichero es recuperable.
Como probablemente no nos interese recuperar este tipo de ficheros, porque posiblemente estén corruptos, podemos añadir un parámetro con el que indicamos el porcentaje que esperamos que el fichero sea recuperable.

Si por ejemplo, queremos recuperar los archivos que tengan un 100% de recuperabilidad, ejecutaremos el comando de la siguiente manera:

# ntfsundeleteall /dev/sda1 /mnt0/recuperados 100

Cuando el programa termine, en el directorio /mnt0/recuperados encontraremos los ficheros recuperados.