[CÓMO] Reparar un disco duro usando Linux

Imagen de manolollr
0 puntos

A veces nos encontramos con un disco que hace "clac-clac" "clac-clac"... y pensamos: "Ha muerto, hay que cambiarlo". ¡¡Pues tiene arreglo.!!

Ese ruido lo hace simplemente porque está haciendo intentos de lectura sin parar, debido a que en un momento pasado se han escrito mal unos datos en el disco y ahora no puede leerlos. La solución es tan simple como volver a escribir en ese sector con datos aleatorios de una forma "especial". De esto se encarga la magnífica herramienta "badblocks", sencilla pero potente, Gnu/Linux es una caja de sorpresas.

Antes de poder empezar a hacer algo, el BIOS tiene que haber detectado el disco, es que hay veces que están tan estropeados que ni los detecta, estos tienen mal apaño, aunque seguiré investigando, a lo mejor resulta que se puede hacer algo.

Lo primero de todo debemos iniciar un sistema Gnu/Linux, sea una distribución Ubuntu o Fedora, desde LiveCD o desde disco duro, no importa, cualquier sistema Gnu/Linux vale.

Abrimos una ventana de terminal y ejecutamos "badblocks" indicando el disco duro dañado, por ejemplo /dev/sdb:

sudo badblocks -s /dev/sdb

El parámetro -s sirve para que se muestre el porcentaje completado. Ya veis que mientras se pueden hacer otras cosas, como consultar el correo, mirar Internet, es muy cómodo. En un disco de 500 GB tarda aproximadamente una hora y media, en caso de haber sectores dañados se mostrará un resultado parecido a este:

25894612

25894614

25894620

25894810

Aquí vemos que entre el sector nº 25894612 y el 25894810 hay varios sectores dañados, así que en todo ese intervalo vamos a reparar los sectores, no importa que entre medias haya sectores buenos, no los va a estropear, aunque eso sí, se perderán los datos que contuvieran. Quien necesite todos los datos debe ir indicando uno a uno el sector a reparar, aunque así se tarda mucho más.

ATENCIÓN: El siguiente paso hará que se PIERDAN DATOS e incluso puede perderse la PARTICIÓN ENTERA. Se debe hacer COPIAS DE SEGURIDAD.

A continuación se ejecuta badblocks siguiendo este esquema:

sudo badblocks -sw /dev/sdb sector_final sector_inicial

En nuestro ejemplo:

sudo badblocks -sw /dev/sdb 25894810 25894612

La opción w es la que repara los sectores. Se encarga de escribir 4 veces los mismos sectores con diferentes patrones predefinidos. Es como si fuera un rotulador que marca poco y se escribe 4 veces para que marque bastante. Si quieres perder lo mínimo de datos, debes indicar los sectores uno a uno. Para ello debes indicar el mismo sector final y el inicial, así se repara un solo sector. Pero de esta forma se tarda mucho más.

En fin, ya veis que se pueden resucitar discos que hemos dado por muertos, pero eso sí, no los uséis para guardar datos importantes, que no son fiables. Pero para guardar pelis o música si que sirven.

Imagen de manolollr
+1
+1
-1

He estado investigando si hay algún método para reparar el disco duro incluso cuando no lo detecta el BIOS. He llegado a la conclusión de que si no lo detecta significa que el disco está para tirar. Ahora explicaré porqué.

En esta web explican el funcionamiento de un disco duro: http://hddscan.com/doc/HDD_Tracks_and_Zones.html

Como veis, es tremendamente complejo. Para resumir voy a decir que es imposible que el proceso de fabricación de un disco duro sea perfecto, así, cada plato y cada cabeza tiene diferencias microscópicas. Durante la fabricación, una máquina se encarga de medir estas diferencias y recoge información con las correcciones que deberá hacer el disco duro cuando esté en funcionamiento. Esta información se guarda en un área especial del disco duro llamada Área de Sistema (System Area, abreviado SA)

Así, cuando el BIOS va a detectar un disco, intentará leer la SA, si esta área está dañada y no se puede leer, el disco emitirá un error y el BIOS no lo detectará. La SA es ÚNICA para CADA DISCO, es como si fuera su número de serie, por eso no se puede descargar de Internet. Así, si la SA está dañada nos hemos quedado sin disco, está para tirar.

+1
+1
-1

Administrador de sistemas de Openxarxes Coop. V.
www.openxarxes.com

Imagen de xmanibal
+1
0
-1

Hola saludos, soy nuevo en linux, respecto a la reparacion que mencionas, el disco duro se debe desmontar primero, esto es con algun comando, cual?, se hace en una ventana terminal? me puedes ayudar e indicar como hacerlo.

Atento a tus comentarios
Mauricio

+1
0
-1
Imagen de Pinedux
+1
-1
-1

He probado todo lo anterior en este tema y sigo sin poder acceder al disco duro western digital, me aparece un mensaje que copio aqui:

Error mounting system-managed device /dev/sde1: Command-line `mount "/media/pinedux/Elements"' exited with non-zero exit status 13: $MFTMirr does not match $MFT (record 0).
Failed to mount '/dev/sde1': Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.

Y no hay nada que rascar porque cuando intento acceder desde windows no permite acceder al disco, en todo caso me da la opcion de analizar y reparar, pero en ningun momento accede al disco para analizarlo o repararlo. Y en linux detecta el disco pero no me permite acceder a el, y tengo informacion sensible en el disco que me gustaria recuperar.

A ver si podeis echarme un cablecillo.

Abrazos varios (y si me ayudais a solucionarlo invito a birra)

+1
-1
-1
Imagen de manolollr
+1
0
-1

Hay un programa que tepuede ayudar, se llama testdisk. En Ubuntu está disponible en el paquete testdisk (se puede instalar con el centro de software).

Este programa te permite leer archivos del disco para poder copiarlos a otro disco. Es un pelín complicado de manejar, puedes buscar tutoriales por Internet. ¡¡OJO!! NO USES NINGUNA OPCIÓN DE REPARAR, podría dejarte el disco peor. Tal como está el disco no conviene repararlo, sino copiar lo que se pueda y jubilarlo.

Si esto falla hay otro programa llamado PhotoRec (incluido en el paquete testdisk). Este programa lee el disco entero en crudo e intenta recuperar todo lo que puede. Eso si, no restaura los nombres de archivos y carpetas originales, sino que los recupera con el formato File0001...0002...0003 y Dir0001....0002...0003. En resumen, que no esperes ver los archivos tal como los tenías.

Si todo esto falla es que el disco está muy muy dañado.

+1
0
-1

Administrador de sistemas de Openxarxes Coop. V.
www.openxarxes.com

Imagen de gato2707
+1
0
-1

Hay una forma que a veces (nótese que es aspiracional) funciona:

Saca el disco duro de la PC
Envuelvelo muy bien en una bolsa de plástico y séllalo con cinta adesiva
Colocalo dentro del refigerador (nevera) pero no en el congelador por una 4 o 5 horas.
Ten listo y conectado otro disco en el cual puedas iniciar el sistema operativo y con espacio suficiente para recuperar la información del disco duro dañado.
Conecta el disco duro dañado pero teniendo cuidado de que no sea el de arranque.
No cierres la tapa de la PC para evitar al máximo que se "caliente" el disco dañado
Inicia con el sistema operativo del disco duro de recuperación.
Intenta montar el disco duro dañado.
Si lo logras, comienza a correr, tienes unos 20 minutos para transferir los datos.
Por último, es poco probable que este método funcione más de una vez.

+1
0
-1

Saludos desde México
Mi Web: El Gato con Linux