2008-06-17

Rescatando datos de un disco duro

En mi trabajo se nos daño un disco duro y simplemente no arrancaba, después de numerosos intentos con la herramienta de linux rescue y demás intentos infructuosos de salvarlo no hubo mas remedio que configurar otro y colocar este como esclaavo para sacar los datos que necesitabamos.

Así el procedimiento suena sencillo, pero sin entorno gráfico no es tan "divertido", pero si bastante ilustrativo y practico para los que como yo vivimos usando la consola, primero colocamos el disco a salvar como esclavo y arrancamos la maquina teniendo en cuenta que boot este por el disco nuevo o por el bueno dado el caso.

Ya cuando estemos en la consola le damos

root@localhost:~#fdisk -l

Lo que nos debe mostrar algo como

Disco /dev/sda: 40.0 GB, 40020664320 bytes
255 cabezas, 63 sectores/pista, 4865 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0x1d3f1d3f

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 4865 39078081 83 Linux

Disco /dev/sdb: 160.0 GB, 160041885696 bytes
255 cabezas, 63 sectores/pista, 19457 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0x000ed822

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 1 5471 43945776 83 Linux
/dev/sdb2 5472 6084 4923922+ 82 Linux swap / Solaris
/dev/sdb3 6085 19457 107418622+ 83 Linux

Si se dan cuenta en el ejemplo esta mal, ya que el disco con Linux que esta bueno esta en el sdb1 y el otro en el sda1, por lo que ambos estarían como maestros, pero es solo para mostrarles como se debe ver, para la explicación tomaremos que el disco sdb es el dañado.

Bueno explicando esto se puede apreciar que le disco tiene 2 particiones recuperables y una swap que no nos interesa para nada, lo primero que debemos hacer es crear donde la vamos a guardar, esto se hace con

root@localhost:~#mkdir /mnt/raiz
root@localhost:~#mkdir /mnt/home

Bueno hay creamos los dos directorios, pero se preguntaran por que en ese directorio llamado mnt, esto es con el fin de preservar la organización de nuestro sistema operativo, este directorio esta especialmente diseñado para esto, para poner nuestros puntos de montaje, pero puedes usar el que desees.

Bueno ahora el paso realmente importante, decirle a nuestro sistema que monte estos directorios

root@localhost:~#mount /dev/sdb1 /mnt/raiz
root@localhost:~#mount /dev/sdb3 /mnt/home

esto es siguiendo nuestro ejemplo, pero la estructura es

root@localhost:~#mount /ubicacion/dispositivo /punto/montaje

Ya con esto tienes el disco a recuperar como un directorio del sistema y así puedes sacar la información directamente, para probar que te quedo montado, simplemente enlista el directorio así

root@localhost:~#ls -l /mnt/raiz

Se debe ver algo como

total 96
drwxr-xr-x 2 root root 4096 2008-06-10 19:03 bin
drwxr-xr-x 3 root root 4096 2008-06-17 20:52 boot
lrwxrwxrwx 1 root root 11 2008-02-11 18:13 cdrom -> media/cdrom
drwxr-xr-x 13 root root 14180 2008-06-17 19:59 dev
drwxr-xr-x 142 root root 12288 2008-06-17 20:52 etc
drwxr-xr-x 8 root root 4096 2008-05-10 11:39 home
drwxr-xr-x 2 root root 4096 2007-10-15 18:16 initrd
drwxr-xr-x 16 root root 12288 2008-06-16 19:48 lib
drwxr-xr-x 4 root root 4096 2008-05-17 23:43 lib32
lrwxrwxrwx 1 root root 4 2008-02-11 18:13 lib64 -> /lib
drwx------ 2 root root 16384 2008-02-11 18:12 lost+found
drwxr-xr-x 5 root root 4096 2008-06-17 08:32 media
drwxr-xr-x 2 root root 4096 2007-10-08 05:39 mnt
drwxr-xr-x 3 root root 4096 2008-05-07 22:28 opt
dr-xr-xr-x 131 root root 0 2008-06-17 08:32 proc
drwxr-xr-x 15 root root 4096 2008-06-16 20:44 root
drwxr-xr-x 2 root root 4096 2008-06-17 20:51 sbin
drwxr-xr-x 2 root root 4096 2007-10-15 18:16 srv
drwxr-xr-x 12 root root 0 2008-06-17 08:32 sys
drwxrwxrwt 20 root root 4096 2008-06-17 21:12 tmp
drwxr-xr-x 13 root root 4096 2008-06-16 20:36 usr
drwxr-xr-x 15 root root 4096 2007-10-15 18:38 var

Listo recupera tus datos sin tanto lio.