Los discos duros son un sistema de almacenamiento muy eficaz para guardar y trabajar con archivos, pero como todo dispositivo mecánico con partes móviles terminan fallando produciéndose errores en sectores o bloques del disco provocando la perdida parcial o total de información.
Cuando esto ocurre la forma de «repararlo» es escanear el disco entero para repararlos, y si no es posible marcar los sectores o bloques defectuosos, para que no vuelvan a ser usados por el sistema operativo evitando nuevas perdidas de datos.
Para conseguir dicha reparación en sistemas de archivos ext2, 3 o 3, usaremos en comando e2fsck.
En caso de tener que reparar el disco del sistema operativo, es recomendable arrancar el equipo con un Linux Live y copiarlo en un pendrive. Pare ello descargamos una imagen ISO de Debian o de Ubuntu en un pendrive y abriendo un terminal copiamos como usuario root la ISO en el pendrive (suponiendo que este pendrive se llama mipendrive) de la siguiente forma:
/* comando si lo hacemos en un sistema ubuntu */
# sudo su
/* comando si lo hacemos en un sistema debian */
# su
/* esto ya es común */
# dd if=ubuntu_o_debian.iso bs=10M of=/media/mipendrive && sync
Ahora en caso de tener que arrancar con el linux live, tendremos que reiniciar la máquina y arrancar el equipo desde éste. Es posible que no te lo detecte y por tanto tiene que entrar en la bios del equipo para cambiar el orden de arranque del equipo hacia el pendrive.
Como dijimos antes, si no es el disco del sistema operativo el que hay que reparar, este paso anterior lo podemos ahorrar.
La forma rápida para reparar archivos huérfanos podemos hacer lo siguiente dando por echo que el disco a reparar es sdb1
# umount /dev/sdb1
# fsck -cy /dev/sdb1
Si lo que queremos es un escaneo mas en profundidad intentando reparar bloques dañados de forma no destructiva y marcar los bloques dañados para que no se vuelvan a usar deberemos usar este el siguiente método.
Una vez ya arrancado, entramos en un terminal y como root desmontaremos el disco a reparar, que vamos a suponer que es el sdb1 y luego ejecutaremos el comandos de reparación de la siguiente forma.
# umount /dev/sdb1
# fsck -fccky /dev/sdb1
El significado de los parámetros es el siguiente.
- -f -> Fuerza la verificación incluso si el sistema de archivos parece limpio.
- -c -> Esta opción hace que e2fsck utilice el programa badblocks para realizar un escaneo de solo lectura del dispositivo para encontrar bloques defectuosos. Si se encuentran bloques defectuosos, se agregan al bloque defectuoso a un inodo para evitar que se asignen a un archivo o dirección. Si esta opción se especifica dos veces, entonces el escaneo de bloques defectuosos se realizará mediante una prueba de lectura y escritura no destructiva.
- -k -> Cuando se combina con la opción -c, cualquier bloque defectuoso existente en el la lista de bloques defectuosos se conserva y cualquier nuevo bloque defectuoso encontrado por la ejecución de badblocks se agregará a los bloques defectuosos existentes.
- -y Suponga una respuesta «sí» a todas las preguntas; permite que e2fsck sea
utilizado de forma no interactiva. Es posible que esta opción no esté especificada en el
al mismo tiempo que las opciones -n o -p.
Ejecutamos el comando fsck,(también se pude hacer con e2fsck) comprobará la partición que le hemos puesto ( sdb1) lógica y físicamente, autoarreglandolo y sin requerir nuestra intervención.
Nos tomamos un cafe tranquilitos, porque esto puede tardar bastante dependiendo de la capacidad del disco a escanear.
Esto es todo, ya podemos funcionar sin problemas, aunque si se vuelve a repetir el mismo problema en el mismo disco duro, mi recomendación sería cambiarlo por otro nuevo ya que puede estar defectuoso por viejo o por un fallo de fabricación.