Reparando un disco duro (FAIL)

24 Septiembre 2010 at 10:43 by Adrián Pérez

MuerteHoy a caído un disco duro aparentemente dañado en mis manos, para intentar recuperarlo, o por lo menos, realizar una copia de seguridad de los datos. Por norma general, siempre recupero los datos entrando desde un LiveCD linux y después propongo un formateo, si veo que la cosa no se recupera rápido. Esta vez ha sido diferente.

Concrétamente, se trataba de un disco SATA con Windows XP instalado, que devolvía el siguiente error durante el proceso de booteo de la máquina:

"Windows could not start because the following file is missing or corrupt: \WINDOWS\SYSTEM32\CONFIG\SYSTEM"

Para intentar recuperarlo, se ha seguido el siguiente proceso:

  1. Se ha iniciado el sistema con el CD de Windows, lo cual ha lanzado el asistente de instalación de Windows XP.
  2. En la primera pantalla del asistente de instalación de Windows XP, se ha mostrado la opción de iniciar una nueva instalación (INTRO), inciar la consola de recuperación (R) o salir (F3). Se ha pulsado 'R' para iniciar la consola de recuperación.
  3. Una vez en la consola de recuperación, se ha lanzado chkdsk (chkdsk c: /R) para intentar reparar los errores de la unidad C: que puedan estar ocasionando estos problemas. Esto no siempre funciona, y a veces concluye con un mensaje que indica que existen errores irreparables.
  4. Si como a mi, te ha aparecido este error, el siguiente paso, según este tutorial, ha sido intentar entrar en "C:\System Volume Information". Desafortunadamente el disco duro ha concluido que no existe tal directorio. Sin embargo, es cierto que también ha indicado que ha habido un "error durante la enumeración de directorios" al hacer un simple "dir" en C:\.
  5. Otra opción, ha sido acceder a "C:\Windows\Repair", pero de nuevo, el disco duro ha informado que no existía el directorio "Windows", en C:\.

Llegados a este momento, ha tocado cambiar de estrategia.

  1. Esta vez se ha iniciado el PC con un LiveCD Linux, como por ejemplo la última distribución de Ubuntu.
  2. Una vez nos ha aparecido el asistente de instalación, se ha seleccionado la opción "Try Ubuntu", la cual ha lanzado Ubuntu directamente del LiveCD sin hacer ningún cambio en el disco duro.
  3. Cuando se ha cargado Ubuntu, desde el menú superior se ha seleccionado Places -> XX GB Filesystem (donde XX corresponde con la capacidad en GB del disco duro), lo cual nos ha montado (en realidad "ha intentado montar") el disco duro. En nuestro caso, ésto ha devuelto un error tal que "Unable to mount XX GB Filesystem" donde se detallaba que "Error mounting: mount exited with error code 13: ntfs_attr_pread_i: ntfs_pread failed: Input/Output error. NTFS is either inconsistent or there is a hardware fault, or it's a SoftRAID/FakeRAID hardware." Además, este error ha recomendado ejecutar "chkdsk /f" en Windows.
  4. Para identificar el dispositivo con Windows, además de buscar en el fstab (donde no estaba incluído), se ha ejecutado "sudo blkid", el cual ha devuelto el siguiente listado:
    • /dev/loop0: TYPE="squashfs"
    • /dev/sda1: label="DellUtility" TYPE="vfat"
    • /dev/sda2: UUID="..." TYPE="ntfs"
    • /dev/sda3: label="DellRestore" TYPE="vfat"
  5. Del resultado anterior, se ha visto que se tiene una partición "DellRestore", la cual devuelve el disco duro a los valores de fábrica, símplemente pulsando F8 en la pantalla en la que aparece el logo de DELL en el booteo. Desafortunadamente esta opción elimina todos los datos del disco duro, y antes se ha querido hacer un backup de los mismos.
  6. Una vez se ha identificado a /dev/sda2 como dispositivo del disco duro con ntfs, se ha intentado montar forzándolo con "mount -t ntfs /dev/sda2 /mnt -o force", lo cual ha devuelto exactamente el mismo error de montado que ha devuelto en el punto 3 de este apartado Linux. Exactamente igual indicando como tipo de archivos ntfs-3g (más que nada porqué mount.ntfs es un enlace simbólico a mount.ntfs-3g).
  7. Finalmente se ha lanzado "sudo ntfsfix /dev/sda2" para intentar corregir los errores del disco. El resultado no ha sido muy alentador, ya que no se ha conseguido montar el volumen después de su ejecución:
  8. Mounting volume… pread: Input/Output error
    Failed to calculate number of free clusters: Input/Output error
    FAILED
    Attempting to correct errors...
    Processing $MFT and $MFTMirr…
    Reading $MFT… OK
    Reading $MFTMirr… OK
    Comparing $MFTMirr to $MFT… OK
    Processing of $MFT and $MFTMirr completed successfully.
    Setting required flags on partition… OK
    Going to empty the journal ($LogFile)… Failed to empty $FILE_LogFile/$DATA Input/Output error
    FAILED
    Failed to reset $LogFile: Input/Output error

  9. Después de todo esto, he llegado a la página de ntfs-3g, donde se explica con más claridad este tipo de errores de entrada salida.

Vuelta a Windows

  1. Después de realizar varias pruebas con Linux, sin éxito, se ha vuelto a lanzar CHKDSK intentando usar el parámetro /F. Sin embargo, en la consola de recuperación de Windows XP únicamente están disponibles las opciones /R y /P. Por esta razón se ha lanzado el CHKDSK /R, obteniendo de nuevo el mensaje "el volumen parece contener uno o más problemas irrecuperables".
  2. Para utilizar CHKDSK /F, se ha montado el disco duro como disco secundario en un PC, también con Windows XP, y se ha iniciado el PC desde el disco duro original, teniéndo el disco duro dañado como secundario. Para ello, se ha tenido que tocar la BIOS con el fin de detectar el nuevo disco duro.
  3. Una vez iniciado Windows XP, y comprobada la detección del disco duro dañado (en MiPC aparecen dos unidades de disco, la original y la dañada), se ha ejecutado CHKDSK /V /F E: (en este caso, E: es el disco duro dañado). Sin embargo, esto tampoco ha solucionado los problemas iniciales.

Resultado: FAIL

Llegados a este punto, le he devuelto el disco duro al propietario. Se acababan las ideas y el tiempo disponible para dedicárselo al disco dañado.

Sin embargo se me han quedado un par de cosas en el tintero:

  1. Instalar Windows Vista (realizar una actualización) para intentar recuperar los datos desde el nuevo SO. La idea era realizar una actualización del SO, el cual preserva los datos. Sin embargo, no estoy 100% seguro de si esto se puede hacer desde el proceso de instalación que inicia el booteo del PC desde el CD de instalación.
  2. Probar alguna herramienta especializada teniendo el disco dañado como segundo disco, habiendo iniciado el sistema desde un disco primario con XP.

Seguro que hay muchas otras pruebas, y seguro que más de una solución (quizá incluso exista alguna solución para recuperar el disco duro sin perder los datos).

Por cierto, si has llegado aquí esperando encontrar una solución para el mismo problema... lo siento. 😀

Seguramente alguna de la pruebas que a mi no me han funcionado, funcionarán en tu caso. Ánimo.

PD: El disco, en teoría, va a ir a parar a manos de un auténtico experto en informática forense. Si me llegan noticias de su solución, intentaré actualizar este post.

Actualización: Me confirman (alguien que realmente sabe) que el disco tiene un problema de hardware y que no se puede recuperar. Lo que sí se podrá hacer, es recuperar la mayoría de los datos del mismo con herramientas especializadas, pero no se conseguirá que el disco vuelva funcionar. Al parecer, no iba tan desencaminado.

Flickr! Foto por Max Braun