jueves, 28 de julio de 2016

Recuperar archivos de USB o HDD con Foremost desde Linux



¿Te ha pasado alguna ves que formateas tu USB o por casualidad eliminas un archivo que no querías eliminar y lo necesitas recuperar?

A más uno nos ha pasado esa situación, pero no es algo por lo cual preocuparse hoy en día.

Existen una gran variedad de herramientas para recuperar tus archivos borrados, tanto para windows, linux, mac, incluso los hay en modo gráfico con hermosos botones de recuepración, etc.

Pero en esta ocasión hablaremos sobre Foremost (forensic date recovery) se utiliza desde la línea de comandos con una sintaxis simple y corta pero efectiva.

Muchos podrán decir, pero por qué usar la línea de comandos?Cuando puedo hacerlo con Easy Parted Recovery, o Recuva, o X programa para Windows, incluso podría usarse GParted Magic desde Linux, pues bien aquí algunas:
  1. Los proceso los realiza más eficiente ya que se centra en el proceso en sí.
  2. No requiere recursos de hardware para interfaces gráficas
  3. Permite personalizar el comando, incluso se pueden utilizar más de dos comandos al mismo tiempo
  4. Los procesos pueden ser enviados a segundo plano
  5. Permite agregar opciones de visualizar lo que está ocurriendo en todo momento.
  6. Con un simple Ctrl+c puedes cancelar todo el proceso y jamas te dirá que el programa dejó de funcionar.

Ventajas de este comando:

Desde mi punto de vista son las siguientes:
  1. Viene incluido en los repositorios de las distros GNU/Linux
  2. No necesitas crack o parches para utilizarlo.
  3. Realmente recupera archivos, incluso recupera archivos hasta donde sea posible, por ejemplo si el archivo fue sobreescrito hasta la mitad, también recupera dicha mitad.
  4. Solo instalas y ya está listo para utilizarlo.
  5. Lo puedes usar en un Live CD.
  6. La instalación pesa ~89k.

Instalación

Yo realizaré todo el proceso usando Fedora. La instalación es casi lo mismo, claro tomando en cuenta la forma de instalar en cada distro Linux.

Primero Instalaremos Foremost Abre la terminal de Linux y tecleaamos:
# Fedora
sudo dnf -y install foremost
# Ubuntu
sudo apt-get -y install foremost



Ahora que tenemos Foremost instalado en nuestro equipo.

Es posible recuperar archivos incluso aunque la USB contenga información.

Ejemplo de Uso

Antes de proceder con el proceso como tal, primero es necesario crear una carpeta en el directorio donde se guardarán los datos a recuperar, por ejemplo, en Documentos.

Crear una carpeta de nombre <recupUSB> por ejemplo, una vez hecho esto, abrimos la terminal para listar las USB que se tengan conectadas al equipo:

Para ver las USB conectadas al equipo se usa el comando
sudo fdisk -l

Y les mostrará un listado como el siguiente:
Disco /dev/mapper/fedora-swap: 7.8 GiB, 8388608000 bytes, 16384000 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 4096 bytes
Tamaño de E/S (mínimo/óptimo): 4096 bytes / 4096 bytes


Disco /dev/mapper/fedora-home: 966 GiB, 1037226213376 bytes, 2025832448 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 4096 bytes
Tamaño de E/S (mínimo/óptimo): 4096 bytes / 4096 bytes


Disco /dev/sdb: 14.6 GiB, 15614803968 bytes, 30497664 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: gpt
Identificador del disco: 6EA80538-A0B9-4EE2-8E63-77696C56683F

Disposit.  Comienzo    Final Sectores Tamaño Tipo
/dev/sdb1      2048 30496767 30494720  14.6G Datos básicos de Microsoft

La información del dispositivo que nos interesa es aquel que contenga la misma capacidad que la USB a la que queremos recuperar sus archivos.

En este ejemplo: la información que necesitamos del dispositivo es saber dónde está montado y su nombre, en este caso la información es  /dev/sdb1, el cual es un dispositivo de 16GB.


Para recuperar los archivos se pueden recuperar todos los archivos que sean posible de la USB o especificar la extensión de los archivos que se desee:

Ejemplo para recuperar todos los archivos que sean posible: (El símbolo ~ indica el directorio <Carpeta Personal> para evitar poner toda la ruta como /home/tu-usuario/Documentos/recupUSB, se acorta con el símbolo ~ el cual es homólogo a /home/tu-usuario)

foremost -t all -i /dev/sdb1 -o ~/Documentos/recupUSB

Dónde:
  • -t significa tipo de archivo: en este ejmplo se usa -t all esto significa que recuperaremos todos los archivos sin importar su extensión; Si se desea algún archivo en especial por ejemplo png el comando sería  -t png
  • -i con i indicamos el lugar donde buscarlo aquí usamos  -i /dev/sdb1  solo sustituye la ruta por la de tu dispositivo.
  • -o con esto indicamos el lugar donde guardaremos los archivos a recupera en este ejemplo es -o ~/Documentos/recupUSB, es importantes crear una carpeta especial para ello, para evitar que ponga los archivos regados.
Un solo tipo de archivo:
foremost -t png -i /dev/sdb1 -o ~/Documentos/recupUSB

Dónde:
  • -t significa tipo de archivo: en este ejmplo se usa -t png esto significa que recuperaremos todos los archivos con extensión png
  • -i con i indicamos el lugar donde buscarlo aquí usamos  -i /dev/sdb1  solo sustituye la ruta por la de tu dispositivo.
  • -o con esto indicamos el lugar donde guardaremos los archivos a recupera en este ejemplo es -o ~/Documentos/recupUSB, es importantes crear una carpeta especial para ello, para evitar que ponga los archivos regados.
Una vez establecido las opciones, presionado enter, y comenzará el proceso.

La terminal estará de este modo hasta que finalice de escanear la USB:

Conforme avance el proceso, se podrá visualizar gráficamente los archivos recuperados dentro de la carpeta ~/Documentos/recupUSB.

El resultado final estará el carpeta indicad, cada archivo dentro de una carpeta con el nombre de la extensión:


Y eso sería todo, espero que les sea de utilidad:

15 comentarios:

  1. Excelente forma para recuperar archivos de usb sin tantos problemas y complicaciones

    ResponderBorrar
    Respuestas
    1. Gracias por tu comentario. Y así es, muy simple y rápido, excepto que sea un HDD de 500GB o más... :D.

      Gracias por pasar.

      Borrar
    2. yo tengo el caso de que es hdd de 1tb :'(

      Borrar
    3. Gracias por comentar, pues nimodos a esperar entonces...

      Borrar
  2. ¿cómo sé que ha terminado la recuperación? la terminal permanece en "processing: stdin".

    ResponderBorrar
    Respuestas
    1. Gracias por comentar.
      En algunos casos es necesario usar el sudo con foremost, y cuando termina te regresa al promt normal de la terminal.

      Borrar
    2. funcionó perfecto. gracias por todo.

      Borrar
  3. Que excelente aporte para la recuperacion de datos desde Linux. Muchas gracias

    ResponderBorrar
  4. Fantastico, justo lo estoy ejecutando ahora, el articulo genial, conciso y al grano, me ha servido de gran ayuda funcione o no la utilidad. Únicamente preguntaré un par de cosas:

    1. ¿Podrías explicar como indicarle al programa que recupere varias extensiones?¿Separadas por comas?

    2. ¿Como consigues que la terminal te muestre en modo tabla la información de los paquetes que vas a instalar?

    Gracias nuevamente

    ResponderBorrar
    Respuestas
    1. 1.- Sí, es separado por comas
      2.- No es necesario, dnf automáticamente muestra la lista de esa forma, no lo hace en tu caso?

      Borrar
  5. NO se como darme cuenta si termino o no; veo la luz del pen drive parpadear pero nada, entro al directorio donde apunte para que restaure los archivos: estan las carpetas pero adentro de cada carpeta no hay nada de nada :S

    ResponderBorrar
    Respuestas
    1. Gracias por comentar.

      Mira, en cuando termina, te regresa al promt normal de donde se ejecutó el comando, de esa manera te das cuenta.

      Borrar
  6. buenas tardes, intentando ejecutar foremost en mi mac sobre mi usb, introduciendo /dev/disk4 (o el caso que sea) siempre aparece "processing: stdin", como que no reconoce el USB. Se queda así indefinidamente. ¿Podrías darme alguna solución a esto? únicamente he conseguido leer el USB guardándome una imagen del mismo en mi ordenador. Muchas gracias!!!

    ResponderBorrar
    Respuestas
    1. Lamento la tardanza, es necesario ejecutarlo como sudo, o en defecto iniciar como usuario root

      Borrar