CodeGym /Cursos /Docker SELF /Comprobación y corrección del sistema de archivos: comand...

Comprobación y corrección del sistema de archivos: comandos fsck

Docker SELF
Nivel 6 , Lección 2
Disponible

Comprobación y corrección del sistema de archivos: comandos fsck

1. ¿Por qué es importante comprobar el sistema de archivos?

El sistema de archivos en Linux es en realidad uno de los "empleados" más ocupados del SO. Trabaja mientras guardas archivos, abres programas o simplemente lees datos. Ahora imagina: en el momento más crucial, este empleado se cansa y decide desmayarse (léase: el sistema se apagó debido a un corte eléctrico). Esto puede llevar a daños en la tabla de archivos, pérdida de datos u otros problemas desagradables.

¿Pero qué puede salir mal?

  1. Corte repentino de energía — tu dispositivo se apagó de repente sin terminar de guardar los datos.
  2. Error de almacenamiento — un disco duro o SSD puede tener fallos de hardware que dañen el sistema de archivos.
  3. Errores de software — no se descartan bugs en los drivers o utilidades del sistema.

A menudo, después de estos eventos, el sistema de archivos queda inutilizable, y el sistema mismo puede pedirte que compruebes su estado. Aquí es donde entra en juego fsck, que significa File System Check.


2. ¿Qué es fsck y cómo funciona?

La idea de la herramienta

fsck es una utilidad universal que verifica la integridad del sistema de archivos y corrige errores detectados. Funciona como un médico: realiza pruebas, encuentra el problema y, si es posible, lo "cura". Si el problema es demasiado grave, fsck al menos puede diagnosticar qué fue lo que salió mal.

¿Cuándo se utiliza fsck?

  1. En caso de fallos evidentes en los archivos (por ejemplo, si de repente "desaparecen").
  2. Si el sistema no arranca y muestra un error del sistema de archivos.
  3. Para mantenimiento regular, para asegurarse de que todo está en orden.

3. Sintaxis principal de fsck

Para usar fsck, normalmente se utiliza el siguiente comando:

fsck [opciones] <dispositivo>

Opciones principales:

  • -y — Confirmar automáticamente las correcciones. Esto es útil si no quieres estar sentado pulsando yes para cada pregunta.
  • -n — Solo verificar, sin correcciones (simulación). Útil para analizar la situación si tienes miedo de estropear algo.
  • -t — Especificar el tipo de sistema de archivos (por ejemplo, ext4, xfs).
  • -r — Habilitar el modo interactivo (confirmarás cada corrección).

4. Práctica: verificación del sistema de archivos

Vamos a empezar con una verificación sencilla. Supongamos que tenemos un dispositivo /dev/sdb1, que queremos verificar.

Paso 1: Verificación sin correcciones

Primero evaluaremos el estado del sistema de archivos sin realizar cambios:

fsck -n /dev/sdb1

Después de ejecutar el comando, verás una lista de problemas encontrados, si los hay. Aquí tienes un ejemplo del resultado:

Se encontraron inodos que formaban parte de una lista huérfana corrupta.
Se detectaron errores en el sistema de archivos. Ejecuta fsck para reparar.

Paso 2: Corrección automática

Ahora activaremos el modo de corrección de errores:

fsck -y /dev/sdb1

fsck intentará corregir cada error encontrado y confirmar automáticamente la acción. Esto puede tomar algún tiempo si el dispositivo es grande.


5. ¿Qué hacer si el sistema de archivos está en uso?

Error al iniciar fsck

Si intentas ejecutar fsck en una partición que ya está montada, obtendrás una advertencia:

fsck: cannot check a mounted filesystem.

Esto sucede porque verificar un sistema de archivos montado puede llevar a la corrupción de datos. Hay varias maneras de resolver este problema.

  1. Monta el dispositivo en modo solo lectura.
mount -o remount,ro /dev/sdb1
  1. Usa un LiveCD o LiveUSB.

Arranca desde un disco o memoria USB de arranque para realizar la verificación en un dispositivo ya desmontado.

  1. Usa el modo de recuperación.

Reinicia el sistema en modo de recuperación, que generalmente ofrece un entorno seguro para realizar la verificación.

Características de la verificación del sistema de archivos raíz /

El sistema de archivos raíz es un caso único, ya que el sistema lo utiliza activamente. Para ejecutar fsck en dicha partición, necesitas:

  1. Entrar en el modo de usuario único con el comando:
systemctl isolate rescue.target
  1. Ejecutar manualmente fsck:
fsck -y /

6. Errores típicos y su reparación

Inodes dañados

Si fsck informa sobre inodes dañados (estructuras que almacenan información sobre archivos), te propondrá eliminarlos. Esto es seguro, ya que un inode dañado ya no está asociado con los archivos actuales.

Archivos perdidos

A veces, después de ejecutar fsck, los archivos perdidos se encuentran en el directorio lost+found en la raíz del sistema de archivos. Puedes revisar este lugar manualmente para recuperar datos importantes.

Recomendaciones importantes

  1. Siempre haz copias de seguridad antes de la verificación. Aunque fsck generalmente funciona de manera segura, las correcciones pueden llevar a la pérdida de datos.

  2. No ejecutes fsck en particiones montadas. Esto puede dañar los datos.

  3. Usa el flag -n para un análisis preliminar. Si no estás seguro de si debes corregir los errores automáticamente, comienza con una ejecución en seco.


7. Ejemplo: Simulación de error y corrección

  1. Crea un disco virtual y crea un sistema de archivos en él:
dd if=/dev/zero of=./disk.img bs=1M count=100
mkfs.ext4 ./disk.img
  1. Monta el disco:
sudo mount ./disk.img /mnt/test/
  1. Simula un daño:
sudo dd if=/dev/zero of=/mnt/test/randomfile bs=512 count=10
  1. Desmonta el disco y revísalo:
sudo umount /mnt/test/
fsck ./disk.img

Sigue las instrucciones del comando para corregir los errores.

En este punto ya comprendes bien cómo verificar el sistema de archivos, puedes corregir errores de manera adecuada y prevenir fallos. Nos esperan nuevas herramientas para trabajar con sistemas de archivos, pero fsck ahora es tu herramienta confiable para diagnóstico y corrección.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION