Cómo usar ‘fsck’ para reparar errores en el sistema de archivos de Linux

Los sistemas de archivos de Linux son responsables de organizar cómo se almacena y recupera datos. De una forma u otra, con el tiempo, el sistema de archivos puede corromperse y ciertas partes de él pueden volverse inaccesibles. Si su sistema de archivos desarrolla tal inconsistencia, se recomienda verificar su integridad.

Esto puede realizarse a través de una utilidad del sistema llamada fsck (comprobación de consistencia del sistema de archivos), que verifica automáticamente el sistema de archivos raíz durante el tiempo de arranque o se ejecuta manualmente.

En este artículo, vamos a revisar el comando fsck y su uso para ayudarlo a reparar errores de disco en Linux.

Cuándo usar el comando fsck en Linux

Existen diferentes escenarios en los que querrás ejecutar fsck. Aquí tienes algunos ejemplos:

  • El sistema no arranca.
  • Los archivos en el sistema se corrompen (a menudo se pueden observar errores de entrada/salida).
  • La unidad conectada (incluidas las unidades flash/tarjetas SD) no funciona como se espera.

Opciones del comando fsck

El comando fsck debe ejecutarse con privilegios de superusuario o root. Puedes usarlo con diferentes argumentos. Su uso depende de tu caso específico. A continuación verás algunas de las opciones más importantes:

  • -A – Usado para verificar todos los sistemas de archivos. La lista se toma de /etc/fstab.
  • -C – Mostrar barra de progreso.
  • -l – Bloquea el dispositivo para garantizar que ningún otro programa intentará usar la partición durante la comprobación.
  • -M – No comprueba sistemas de archivos montados.
  • -N – Solo muestra lo que se haría, no se realizan cambios reales.
  • -P – Si desea comprobar sistemas de archivos en paralelo, incluido el raíz.
  • -R – No comprueba el sistema de archivos raíz. Esto es útil solo con ‘-A‘.
  • -r – Proporciona estadísticas para cada dispositivo que se está comprobando.
  • -T – No muestra el título.
  • -t – Especifica exclusivamente los tipos de sistema de archivos de Linux que se van a comprobar. Los tipos pueden ser listas separadas por comas.
  • -V – Proporciona una descripción de lo que se está haciendo.

Ejecute el comando fsck para reparar errores en el sistema de archivos de Linux

Para ejecutar fsck, deberá asegurarse de que la partición que va a comprobar no esté montada. Para el propósito de este artículo, utilizaré mi segunda unidad /dev/sdb montada en /mnt.

Esto es lo que sucede si intento ejecutar fsck cuando la partición está montada.

# fsck /dev/sdb
Run fsck on Mounted Partition

Para evitar esto, desmonte la partición usando.

# umount /dev/sdb

Luego fsck se puede ejecutar de forma segura.

# fsck /dev/sdb
Run fsck on Linux Partition

Comprendiendo los códigos de salida de fsck

Después de ejecutar fsck, devolverá un código de salida. Estos códigos pueden verse en el manual de fsck ejecutando:

# man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors were left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

Reparación de Sistema de Archivos Linux con fsck

A veces se pueden encontrar más de un error en un sistema de archivos. En tales casos, es posible que desee que fsck intente corregir los errores automáticamente. Esto se puede hacer con:

# fsck -y /dev/sdb

La bandera -y, que responde automáticamente "sí" a cualquier indicación de fsck para corregir un error.

De manera similar, puede ejecutar lo mismo en todos los sistemas de archivos (sin root):

$ fsck -AR -y 

Cómo Ejecutar fsck en la Partición Raíz de Linux

En algunos casos, es posible que necesite ejecutar fsck en la partición root de su sistema. Dado que no puede ejecutar fsck mientras la partición está montada, puede probar una de estas opciones:

  • Forzar fsck al iniciar el sistema
  • Ejecutar fsck en modo de rescate

Revisaremos ambas situaciones.

Forzar fsck al Iniciar el Sistema

Esto es relativamente fácil de completar, lo único que necesitas hacer es crear un archivo llamado forcefsck en la partición raíz de tu sistema. Utiliza el siguiente comando:

# touch /forcefsck

Entonces simplemente puedes forzar o programar un reinicio de tu sistema. Durante el próximo arranque, se realizará el fsck. Si el tiempo de inactividad es crítico, se recomienda planificar esto cuidadosamente, ya que si hay muchos inodos utilizados en tu sistema, fsck puede tardar un poco más.

Después de que tu sistema arranque, verifica si el archivo todavía existe:

# ls /forcefsck

Si lo hace, es posible que desees eliminarlo para evitar fsck en cada arranque del sistema.

Ejecutar fsck en Modo de Rescate

Ejecutar fsck en modo de rescate requiere algunos pasos adicionales. Primero, prepara tu sistema para el reinicio. Detén cualquier servicio crítico como MySQL/MariaDB etc y luego escribe:

# reboot

Durante el arranque, mantén presionada la tecla shift para que se muestre el menú de grub. Selecciona “Opciones avanzadas“.

Grub Advanced Options

Luego elige “Modo de recuperación“.

Select Linux Recovery Mode

En el siguiente menú selecciona “fsck“.

Select fsck Utility

Se te preguntará si deseas que se vuelva a montar tu sistema de archivos /. Selecciona "sí".

Confirm Root Filesystem

Deberías ver algo similar a esto.

Running fsck Filesystem Check

Reanudar.

Select Normal Boot
Conclusión

En este tutorial, aprendiste cómo usar fsck y ejecutar comprobaciones de consistencia en diferentes sistemas de archivos de Linux. Si tienes alguna pregunta sobre fsck, no dudes en enviarlas en la sección de comentarios a continuación.

Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/