jump to navigation

Recuperar datos de disco duro semi estropeado 19 noviembre, 2008

Posted by ubanov in Informática, Informática-Linux.
Tags: , , , , ,
trackback

Yo tengo un pequeño NAS en casa para almacenar los datos interesantes, backup de equipos, fotos, música… el caso es que recientemente cambié de disco y el puñetero me ha dado un buen susto por que ha dejado de funcionar.

En esta entrada os cuento cómo he conseguido recuperar los datos, por si a alguien le ocurriese algo parecido y le pudiese servir esta información.

Para empezar diré que el disco que se me ha estropeado era un disco duro seagate de 1TB. Estaba particionado con varias particiones EXT3 (como servidor de NAS uso un NSLU2 con Debian).

Al disco duro lo que le ocurría es que cada vez que montaba la partición de datos (una partición con 970GB) al de 5 segundos dejaba de funcionar. Por casualidad he descubierto, que si en lugar de montar la partición empiezo a leer el disco en forma secuencial me deja leer como 5-50GB antes de que el disco deje de funcionar. Luego apago la máquina y vuelvo a leer otro cacho.

Parece que mi disco tiene ciertos sectores, que cuando se leen el disco se vuelve tonto (desaparece de mi máquina hasta que le quito la alimentación y se la vuelvo a poner).

Para recuperar los datos lo que he hecho es comprar otro disco duro igual al que tenía (que después cuando me arreglen el estropeado formará un RAID-1 para no tener que sufrir en un futuro lo mismo que ahora). Sobre este disco he creado las mismas particiones que tenía el original. Después he empezado a copiar el disco con el comando dd, jugando con el parámetro seek…

Como me estaba volviendo loco, al final he hecho un programa en C para que gestionase todo esto.

(me ha dado bastante guerra, pero ya funciona, primero había programado mal los seek, después no tuve en cuenta que el comando fseek no vale para ficheros mayores de 2Gb… ahora ya funciona)

Los fuentes del programa están en el siguiente link.

Aplicación para sacar datos de disco semi estropeado (.C)

Los parámetros del programa hay que meterlos en el propio fuente antes de compilarlo. Como veis es un programa que si os equivocais en el parámetro OUTPUT puede hacer una avería en alguna de tus particiones, por lo tanto usadlo con cuidado, y con receta médica (vamos que si pierdes datos por seguir esto será bajo vuestra responsabilidad).

De esta forma he conectado a una máquina el disco duro SATA internamente (/dev/sda), externamente he conectado el disco por USB donde quiero copiar los datos (/dev/sdb) y con mucha paciencia he ido apagando, encendiendo y ejecutando el programa anterior como 30-40 veces. (el programa y su fichero de datos lo he puesto en una partición del disco bueno, /dev/sdb1). Cada vez que arranco y copio ficheos son como 20minutos… (en los que la máquina trabaja y nosotros podemos hacer otra cosa). En un par de días he copiado todo el disco…

Para arrancar la máquina he utilizado una Ubuntu 8.10 en modo Live.

No se porqué pero cada vez que arrancaba la live le daba por montarme la partción /dev/sdb6 (le he cambiado incluso el tipo de partición que era, pero siempre me la montaba). Por lo tanto antes de ejecutar el programa siempre tenía que hacer el “umount /dev/sdb6” o bien ejecutar “dd if=/dev/zero of=/dev/sdb6 bs=512 count=16” después de la primera vez que ejecto el clonepart y al final del proceso acordarse de restaurar este sector de /dev/sda6.

Una vez acabada toda la copia de datos he ejecutado un “e2fsck -f” y ya tengo todos los datos que tenía el disco….

Lo malo de tener discos tan grandes… con un error puedes perder mucho datos…

Espero que nunca esteis en la misma situación que yo… y si estais, que esta información os pueda servir para algo.

Comentarios»

1. Edu - 9 enero, 2009

Muy interesante (como muchas entradas de este blog), pero me quedo sin ver el código fuente por estar en .doc!😛

2. ubanov - 14 enero, 2009

Edu: en wordpress no dejan subir txt, ni por supuesto .c… lo había subido en .doc por que desde todos los entornos se lee y se puede copiar facilmente a donde sea… te lo puedo enviar si te puede resultar interesante….

3. thomas - 3 abril, 2009

Hola,
tuve hace poco el mismo problema.
por los foros de ubuntu me encontre con el maravilloso testdisk http://www.cgsecurity.org/wiki/TestDisk que esta disponible en los repositorios de ubuntu y debian.
va super bien !
un saludo

4. ubanov - 3 abril, 2009

El TestDisk tiene buena pinta, pero para mi no valía por que mi problema era Hardware, en cuanto se leían ciertos sectores defectuosos, el disco desaparecía del sistema hasta que se reiniciaba la máquina, pero el FS estaba bien, era montable… por eso tuve que hacer un software de “clonado” del disco que recordase qué sectores había copiado, cuales no, cuales son defectuosos…

Gracias por el comentario, seguro que a alguna persona que acabe por aquí le puede venir bien.

5. fuistess - 10 noviembre, 2011

Luego de probar con varios software, cambiar de ornador, etc. si seguimos con el problema del disco duro, entonces es muy probable que el problema sea una falla fisica. Eso no se recupera en cualquier casa…

Hay que enviar a un laboratorio el disco estropeado para que recuperen los datos. Cuidado que no siempre se logra… Hay veces en que ni siquiera esas empresas logran llegar a buen puerto. Onretrieval es una que tiene uno de los porcentajes mas altos de exito (96% de los casos) pero lo que hay que saber es que si el disco esta muy manipulado (lo abrieron, probaron solucionar el problema sin exito, etc.) las posibilidades se reducen drasticamente.

POr ultimo, recomiendo a todos aquellos que se decidan a buscar ayuda en un laboratorio, pidan antes presupuesto ya que no son servicios economicos.,

Sldos.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: