Cómo usar fsck para reparar errores del sistema de archivos en Linux


Los sistemas de archivos son responsables de organizar cómo se almacenan y recuperan los datos. De una forma u otra, con el tiempo, el sistema de archivos puede dañarse y es posible que no se pueda acceder a ciertas partes. Si su sistema de archivos desarrolla tal inconsistencia, se recomienda verificar su integridad.

Esto se puede completar a través de la utilidad del sistema llamada fsck (verificación de coherencia del sistema de archivos). Esta verificación se puede realizar automáticamente durante el arranque o se puede ejecutar manualmente.

En este artículo, revisaremos la utilidad fsck y su uso para ayudarlo a reparar errores de disco.

Hay diferentes escenarios en los que querrá ejecutar fsck. A continuación se muestran algunos ejemplos:

  • El sistema no se inicia.
  • Los archivos del sistema se corrompen (a menudo puede ver un error de entrada/salida).
  • La unidad adjunta (incluidas las unidades flash/tarjetas SD) no funciona como se esperaba.

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

    • -A : se utiliza para comprobar todos los sistemas de archivos. La lista se toma de /etc/fstab .
    • -C : muestra la barra de progreso.
    • -l : bloquea el dispositivo para garantizar que ningún otro programa intente utilizar la partición durante la verificación.
    • -M : no verifique los sistemas de archivos montados.
    • -N : muestra solo lo que se haría; no se realizan cambios reales.
    • -P : si desea verificar los sistemas de archivos en paralelo, incluido el root.
    • -R : no verifica 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 sistemas de archivos que se comprobarán. Los tipos pueden ser una lista separada por comas.
    • -V : proporcione una descripción de lo que se está haciendo.

    Cómo ejecutar fsck para reparar errores del sistema de archivos de Linux

    Para ejecutar fsck, deberá asegurarse de que la partición que va a verificar no esté montada. Para el propósito de este artículo, usaré 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
    

    Para evitar esto, desmonte la partición usando.

    # umount /dev/sdb
    

    Entonces fsck se puede ejecutar de forma segura.

    # fsck /dev/sdb
    

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

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

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

    # fsck -y /dev/sdb
    

    El indicador -y , automáticamente “yes” a cualquier solicitud de fsck para corregir un error.

    Del mismo modo, puede ejecutar lo mismo en todos los sistemas de archivos (sin root):

    $ fsck -AR -y 
    

    Cómo ejecutar fsck en una partición raíz de Linux

    En algunos casos, es posible que deba ejecutar fsck en la partición raíz 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
    • Ejecute fsck en modo de rescate

    Revisaremos ambas situaciones.

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

    # touch /forcefsck
    

    Luego, simplemente puede forzar o programar un reinicio de su sistema. Durante el próximo arranque, se ejecutará fsck. Si el tiempo de inactividad es crítico, se recomienda planificar esto cuidadosamente, ya que si hay muchos inodos usados en su sistema, fsck puede llevar algo de tiempo adicional.

    Después de que su sistema se inicie, verifique si el archivo todavía existe:

    # ls /forcefsck
    

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

    Ejecutar fsck en modo de rescate requiere algunos pasos más. Primero prepare su sistema para reiniciar. Detenga los servicios críticos como MySQL/MariaDB, etc. y luego escriba.

    # reboot
    

    Durante el arranque, mantenga presionada la tecla shift para que se muestre el menú de grub. Seleccione las "Opciones avanzadas".

    Luego elija "Modo de recuperación".

    En el siguiente menú, seleccione "fsck".

    Se le preguntará si desea volver a montar su sistema de archivos /. Seleccione “sí” .

    Debería ver algo similar a esto.

    A continuación, puede reanudar el arranque normal seleccionando "Reanudar".

    En este tutorial, aprendió cómo usar fsck y ejecutar comprobaciones de coherencia en diferentes sistemas de archivos de Linux. Si tiene alguna pregunta sobre fsck, no dude en enviarla en la sección de comentarios a continuación.