miércoles, 7 de agosto de 2013

Solucionar problema de montaje con disco duro externo NTFS

A veces los que manejamos ordenadores tenemos la maldita manía de apagar o desenchufar los dispositivos antes de que el flujo de datos de haya detenido, lo que puede dar lugar a pérdida de datos o a malfuncionamiento de aquellos. Es lo que me ha pasado a mí. Desconecté del puerto USB un disco duro externo antes de que la luz indicadora de transmisión de datos se apagara. El resultado fue este bonito mensaje cada vez que pretendía conectarlo de nuevo:
Error mounting: mount exited with exit code 13: $MFTMirr does not match $MFT (record 0).Failed to mount '/dev/sdg1': Input/output errorNTFS is either inconsistent, or there is a hardware fault, or it's aSoftRAID/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.
Este mensaje pide que se aplique un comando Windows, pero en Windows el disco duro funciona sin problemas, síntoma de que al menos está sano. Lo que pasa es que cortar el suministro de energía mientras se estaban escribiendo datos en la partición NTFS del disco duro externo dejó trastocada dicha partición, siendo imposible montarla de nuevo. Si no queremos acudir al sistema del tito Bill tenemos opciones dentro de GNU/Linux. Se trata del paquete ntfs, el cual instalaremos de la siguiente forma:

sudo apt-get install ntfsprogs

Una vez instalado lo ejecutamos aludiendo a la unidad del disco duro externo, en mi caso la /dev/sdg1:

sudo ntfs /dev/sdg1

Tras unos segundos procesando el problema se soluciona. Esto es lo que se iba viendo en la terminal según el proceso avanzaba:
Mounting volume... FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdg1 was processed successfully.
Esta solución la he leído aquí, donde advierten que sería conveniente pasarte por Windows para terminar de refinar la cuestión.