09 agosto 2013

Recuperar disco externo con datos corruptos (chkdsk)

Situación

Contamos con un disco externo, o memoria flash usb, o algún otro dispositivo de almacenamiento al que no podemos acceder.
Más precisamente, en un sistema linux al tratar de acceder al dispositivo nos muestre el mensaje siguiente
[...]
Failed to mount '/dev/sdb1': 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.
[...]
Mientras que en Windows si bien nos aparece la unidad, al intentar acceder muestre un mensaje con el texto "Windows no puede acceder al disco" o si intentan acceder desde línea de comando les muestre el texto "El archivo o directorio está dañado o es ilegible" si el sistema operativo esta en idioma español o "The file or directory is corrupted or unreadable" si esta en ingles.

Solución

Una forma de intentar corregir el problema, si el desperfecto es solamente a causa de información que se encuentra corrupta, es utilizar la herramienta chkdsk.
Los pasos para ejecutar la herramienta son:

  1. Conectar el dispositivo a una computadora con sistema operativo Windows.
  2. Abrir una línea de comando (cmd) con permisos de administrador. En Windows Vista y 7 esto se puede lograr haciendo click derecho sobre el acceso a la linea de comando y elegir la opción "Ejecutar como administrador"
  3. Escribir el siguiente comando donde la unidad X debe corresponder a la letra de unidad que se le asigno al dispositivo que se pretende reparar.
    chkdsk X: /f
Finalizada la ejecución del comando anterior y con algo de suerte, el dispositivo estará pronto para utilizarse normalmente.
Si finaliza correctamente la ejecución, debe mostrar un resumen con información de la capacidad y uso del dispositivo. A continuación dejo parte de una salida de ejemplo de una ejecución exitosa.
C:\Windows\system32>chkdsk X: /f
El tipo del sistema de archivos es NTFS.
La etiqueta de volumen es ETIQUETA_DISPOSITIVO.

CHKDSK está comprobando archivos (etapa 1 de 3)...
7% completado. (6989 de 9984 registros de archivos procesados)
Eliminando registro de atributo dañado (128, "")
del segmento de registro de archivo 7723.
...
CHKDSK está comprobando índices (etapa 2 de 3)...
66% completado. (9887 de 12132 entradas de índice procesadas)
...
CHKDSK está examinando los archivos no indizados para volver a conectarse a su directorio original.
Recuperando archivo huérfano $MFT (0) en el archivo de directorio 5.
...
976758783 KB de espacio total en disco.
201693964 KB en 8814 archivos.
4720 KB en 1076 índices.
0 KB en sectores defectuosos.
107035 KB en uso por el sistema.
El archivo de registro ha ocupado 65536 kilobytes.
774953064 KB disponibles en disco.

4096 bytes en cada unidad de asignación.
244189695 unidades de asignación en disco en total.
193738266 unidades de asignación disponibles en disco.
Nro de visita Cantidad de visitas recibidas