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 corromperse y ciertas partes de él pueden no ser accesibles. 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 ( comprobación de coherencia del sistema de archivos ) Esta comprobación se puede hacer automáticamente durante el tiempo de arranque o ejecutarse manualmente.

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

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

  • The system fails to boot.
  • Files on the system become corrupt (often you may see input/output error).
  • Attached drive (including flash drives/SD cards) is not working as expected.

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

    • -A – Used for checking all filesystems. The list is taken from /etc/fstab.
    • -C – Show progress bar.
    • -l – Locks the device to guarantee no other program will try to use the partition during the check.
    • -M – Do not check mounted filesystems.
    • -N – Only show what would be done – no actual changes are made.
    • -P – If you want to check filesystems in parallel, including root.
    • -R – Do not check root filesystem. This is useful only with ‘-A‘.
    • -r – Provide statistics for each device that is being checked.
    • -T – Does not show the title.
    • -t – Exclusively specify the filesystem types to be checked. Types can be comma separated list.
    • -V – Provide description what is being done.

    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. A los efectos de este artículo, usaré mi segundo disco /dev/sdb montado 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 utilizando.

    # umount /dev/sdb
    

    Entonces fsck puede ejecutarse 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 los errores automáticamente. 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 la partición raíz de Linux

    En algunos casos, es posible que deba ejecutar fsck en la partición raíz de su sistema. Como no puede ejecutar fsck mientras la partición está montada, puede probar una de estas opciones:

    • Force fsck upon system boot
    • Run fsck in rescue mode

    Revisaremos ambas situaciones.

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

    # touch /forcefsck
    

    Entonces, simplemente puede forzar o programar un reinicio de su sistema. Durante el siguiente arranque, se ejecutará fsck . Si el tiempo de inactividad es crítico, se recomienda planificar esto con cuidado, ya que si hay muchos inodos usados ​​en su sistema, fsck puede tomar algún tiempo adicional.

    Después de que su sistema arranque, verifique si el archivo aún 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 cualquier servicio crítico como MySQL/MariaDB , etc. y luego escriba.

    # reboot
    

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

    Luego elige " Modo de recuperación ".

    En el siguiente menú, seleccione " fsck ".

    Se le preguntará si desea que su sistema de archivos / se vuelva a montar. Seleccione “yes” .

    Deberías ver algo similar a esto.

    Luego puede reanudar el inicio normal, seleccionando “Reanudar” .

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