jueves, 5 de diciembre de 2013

Recuperación de datos

Hace un tiempo, acepté la tarea de tratar de recuperar información de un disco, al que luego de un problema con el suministro eléctrico, el usuario le instaló el sistema de fábrica que viene en una partición a parte, dedicada especialmente para la "recuperación".
Lo que más le importaban eran las fotografías que había perdido.
Este es un trabajo que suelo hacer sobre memorias extraíbles de cámaras fotográficas o pendrives, pero ahora me tocaba sobre un HDD; por lo que tener un servidor NFS en casa me viene al pelo para transferir los datos de recuperación.
Repaso los hechos:
Inicio la computadora afectada con un live cd y monto el sistema de archivos en red (previa instalación de paquetes - ver post anterior).
sudo mount -t nfs -o nfsvers=4 ip_servidor_NFS:/directorio/compartido ~/Público
Lo correcto sería montar como sólo lectura la partición a recuperar, para evitar escrituras accidentales y asegurarme de que sea la partición afectada
01 sudo mkdir /mnt/recuperame
02 sudo mount -t ntfs-3g -o ro /dev/sda1 /mnt/recuperame
si es la partición la podemos desmontar
01 sudo umount /mnt/recuperame
02 sudo rm /mnt/recuperame
y realizar una copia bit a bit de dicha partición en el servidor
01 dd if=/dev/sda1 of=~/Público/resguardo.dd
Este, es el momento perfecto para prepararse un mate, hacer compras, etc. Juro que va demorar bastante.
Bueno... Siempre que llovió, paró. Y esto en algún momento debería terminar.
Ahora puedo apagar la computadora afectada y trabajar en la mía sobre la imagen creada. Para esto necesito tener instalado el paquete testdisk y ejecutar:

sudo photorec resguardo.dd

 Elijo el dispositivo.
 también el tipo de partición; en este caso FAT y que busque en todo el disco (whole disk)

 selecciono la carpeta donde quedará el resguardo y en un instante comienza photorec a trabajar.



Quedando un montón de directorios del tipo recup_dir.1, recup_dir.2, etc.
Los archivos y carpetas no recuperan su nombre original, por lo que hay que seleccionar a mano lo que es basura y lo que sirve luego de recuperar todo, o me queda la posibilidad de hacer un script para ayudarme, pero esto último lo muestro en otro post.

Debo devolver la netbook. ¿Y ahora?

En una de las escuelas donde trabajaba me habían asignado una netbook de las que envía el estado.
La cuestión es que actualmente, al no tener horas cátedra en esa escuela debo devolver la net, para que me asignen, en la escuela donde trabajo actualmente, una nueva.
Ok, pero eso no es problema, o no sería, de no haber accedido a las diferentes cuentas que utilizo (homebanking, correo, redes sociales, etc.) y sabiendo que al borrar un archivo, este, en realidad no se borra, sino que se marca en el dispositivo como espacio disponible (sí, soy un poquito paranoico). 
Así que me decidí a realizar un borrado seguro de todo el disco para después instalar Huayra Linux (la distro del estado).
Luego de leer un poquito [1][2] hice lo siguiente:
Primero, inicié la net con la distribución de linux desde el pendrive.
Abrí un emulador de terminal y ejecuté lo siguiente:

01 sudo hdparm -W0 /dev/sdb

para desactivar la caché del disco y que las sobrescrituras impacten sobre el plato del disco y no mueran en la memoria caché. Siendo sdb el dispositivo a borrar.
El borrado seguro con 20 pasadas (20 re-escrituras):

01 sudo shred -vfz -n 20 /dev/sdb

Esto lo que hace es escribir en el disco, poniendo a 1 todos los bits del mismo, lo sobrescribe con valores aleatorios y por último coloca a 0 todos los bits del disco (va a demorar un poquito).
Y no olvidarme de volver a activar la memoria caché.
01 sudo hdparm -W1 /dev/sdb

 
Fuente:
[1] esdebian
[2] Pablo Martínez WebLog