Una vez más aquí. En esta ocasión vamos a ver algo sobre lo que me han preguntado esta semana. Se trata de ver cómo se pueden reparar los sectores defectuosos en un disco (mecánico). Aun que en su día escribí ya un artículo al respecto titulado «Reparar sectores y recuperar un disco duro en Linux«, el usuario que me preguntó sobre esto, me parece que no llegó a ver ese artículo anterior. Pero bueno, así actualizamos un poco la información y probamos a hacer algo diferentes.
Los sectores defectuosos son partes dañadas de una unidad de disco duro mecánico. Una vez que se dañan, resulta lógico y evidente pensar que en ellos no se pueden usar para almacenar ningún dato. El caso es que el sistema a pesar de esto, va a seguir intentando escribir en ellos, lo que puede provocar graves fallos de funcionamiento en el disco.
En dispositivos de almacenamiento más modernos (SSD y otros), este problema es raro que se produzca. Sin embargo, como todavía resulta habitual la comercialización de discos duros mecánicos, aún hay usuarios que se pueden encontrar con este tipo de problemas, por lo que resulta interesante saber como intentar reparar esos sectores y si no es posible, aislarlos.
Siempre resulta conviene escanear de forma periódica el disco duro (sobre todo los más antiguos), en busca de sectores defectuosos. Te puedes dar cuenta de que en tu disco duro hay problemas con sectores cuando el sistema se ralentiza sin motivo, o que la I/O del disco aumenta de forma considerable.
A continuación vamos a ver como en Gnu/Linux (Ubuntu en este ejemplo), este problema es fácil de solucionar a través de unos cuantos comandos para la terminal.
Localizamos los sectores defectuosos del disco
Para empezar, debemos tener en cuenta que el disco a reparar no debe estar montado. Por este motivo, siempre es interesante disponer de live usb, e intentar desde la terminal del live reparar los sectores defectuosos del disco.
Lo primero que vamos a hacer es identificar la partición que queremos reparar.
sudo lsblk -o name,mountpoint,label,size,uuid
En este caso vamos a reparar los sectores defectuosos de «sda5». En este punto, resulta interesante realizar un análisis primario para detectar los errores y guardar un registro que utilizaremos posteriormente. Esto lo podremos hacer ejecutando el comando:
sudo badblocks -v /dev/sda5 > ~/bad_sectors.txt
Como se puede ver en la anterior captura de pantalla, en mi disco (partición sda5) no existen errores, por lo que a partir de ahora no voy a añadir más capturas de pantalla. Aun que lo comandos que se muestran deberían funcionar igualmente.
Reparamos los sectores defectuosos del disco
Llegados a este punto, vamos a tener dos posibilidades. La primera será reparar toda la partición al completo, o la segunda, que va a consistir en reparar los sectores defectuosos del disco que nos indica el archivo registro generado anteriormente.
Para reparar todo el disco, ejecutamos en la terminal:
sudo e2fsck -cfpv /dev/sda5
En la segunda opción reparamos los sectores indicados en el archivo «bad_sectors.txt».
sudo e2fsck -l bad_sectors.txt /dev/sda5
Para reparar discos con sistemas de archivos no nativos de Gnu/Linux, como por ejemplo Fat32, el comando a utilizar como se muestra a continuación sería fsck:
sudo fsck -l bad_sectors.txt /dev/sda5
Y con esto, si tenemos suerte, deberíamos poder reparar los sectores defectuosos de nuestro disco duro mecánico.