
Los sistemas de archivos de Linux son responsables de organizar cómo se almacenan y recuperan los datos. Con el tiempo, debido a cortes de energía repentinos, apagados forzados, problemas de hardware o errores de software, el sistema de archivos puede dañarse y algunas partes pueden volverse inaccesibles.
Cuando esto sucede, necesita una forma confiable de detectar y corregir estas inconsistencias antes de que provoquen pérdida de datos o inestabilidad del sistema. donde esta esto fsck (Comprobación de coherencia del sistema de archivos)Adelante.
En este artículo, cubriremos todo lo que necesita saber. fsck Desde el uso básico hasta la ejecución segura en particiones raíz y de producción.
¿Qué es fsck en Linux?
fsck Es una utilidad integrada de Linux para comprobar y reparar inconsistencias del sistema de archivos. Funciona como chkdsk en Windows. La herramienta puede ejecutarse automáticamente al iniciar el sistema o manualmente por parte del administrador del sistema.
Depende del tipo de sistema de archivos (ext2, ext3, ext4, xfsETC. ), FSCK Llame al verificador de backend apropiado, p. e2fsck Aplicable a sistemas de archivos de la serie ext.
¿Cuándo se debe ejecutar fsck?
Los siguientes son los escenarios más comunes cuando se ejecuta fsck Es necesario o recomendado:
- El sistema no puede iniciar O ingrese al modo de emergencia/rescate.
- Ves errores de entrada/salida Al leer o escribir un archivo.
- Unidad (HDD, SSD, unidad flash USB o tarjeta SD) No funciona como se esperaba.
- Después de un apagado anormal – Corte de energía, pánico central o reinicio forzado.
- Mantenimiento de rutina – Realizar comprobaciones periódicas de integridad en servidores críticos.
- El sistema de archivos informó corrupción En el registro principal (salida dmesg).
Habilidades de producción: Verifique con frecuencia /var/log/syslog o run dmesg | grep -i Se produce un error antes de programar fsck, lo que le ayuda a comprender el alcance del problema antes de profundizar.
sintaxis del comando fsck:
fsck [options] [filesystem]
fsck Debe ejecutarse como superusuario (raíz) permisos, las siguientes son las opciones más importantes:
| Opciones | describir |
|---|---|
-A | Verifique todos los sistemas de archivos enumerados en /etc/fstab |
-C | Mostrar barra de progreso durante la inspección |
-l | Bloquee el dispositivo durante la verificación para evitar que otros programas accedan a él |
-M | Omitir sistemas de archivos montados (no los marque) |
-N | Ejecución de prueba: muestra lo que sucederá sin realizar ningún cambio |
-P | Comprobación paralela del sistema de archivos, incluido el root |
-R | Saltar el sistema de archivos raíz (usado con -A) |
-r | Mostrar estadísticas para cada dispositivo |
-T | Suprimir banner de título |
-t fstype | Verifique solo tipos de sistemas de archivos específicos (por ejemplo, ext4) |
-V | Detallado: describe lo que se está haciendo. |
-y | Responda automáticamente «Sí» a todas las solicitudes de reparación |
-n | Responda automáticamente «No» a todas las solicitudes de reparación (verificación de solo lectura) |
-f | Forzar la verificación incluso si el sistema de archivos parece limpio |
Cómo comprobar qué tipo de sistema de archivos tienes
antes de correr fsckconfirme el tipo de sistema de archivos de la partición:
lsblk -f Or blkid /dev/sdb1
Esto es importante porque fsck Delegar en un tipo específico de herramienta, p.e. e2fsck (externo 4), fsck.xfs, fsck.vfatETC.
IMPORTANTE: nunca realice fsck en una partición montada
correr fsck Puede producirse una corrupción grave de los datos en una partición montada, así que asegúrese de desmontar la partición primero.
Compruebe si la partición está montada:
mount | grep /dev/sdb
Si está instalado, desinstálelo:
umount /dev/sdb1
Si el dispositivo está ocupado, use el comando lsof para encontrar el dispositivo que lo está usando:
lsof /dev/sdb1
Luego intente una desinstalación diferida:
umount -l /dev/sdb1
Ejecute fsck para verificar y reparar particiones
Para realizar una verificación básica del sistema de archivos, ejecute el siguiente comando, que verificará de forma interactiva y le pedirá que corrija cada error que encuentre.
fsck /dev/sdb1
Para que los servidores de producción se reparen automáticamente, utilice -y bandera.
fsck -y /dev/sdb1
mira lo que fsck Simplemente hazlo sin tocar nada:
fsck -N /dev/sdb1
Habilidades de producción:Asegúrese de realizar una prueba en los sistemas críticos antes de realizar reparaciones. Revise el resultado y decida si desea continuar.
Si el sistema de archivos está marcado como limpio pero aún sospecha que hay un problema:
fsck -f /dev/sdb1
Para comprobar un tipo de sistema de archivos específico:
fsck -t ext4 /dev/sdb1
Para verificar todos los sistemas de archivos (excluyendo la raíz), use -A Leer banderas de entrada /etc/fstaby -R Omita el sistema de archivos raíz.
fsck -AR -y
También puede utilizar el siguiente comando para generar resultados detallados a través de una barra de progreso:
fsck -C -V /dev/sdb1
Esto es útil para discos duros grandes donde desea monitorear el progreso.
Comprender el código de salida de fsck
despues de correr fsckque devuelve un código de salida que le indica lo que sucedió. puedes comprobarlo echo $? Inmediatamente después de ejecutar el comando.
0 - No errors detected 1 - Filesystem errors were corrected 2 - System should be rebooted 4 - Filesystem errors left uncorrected 8 - Operational error 16 - Usage or syntax error 32 - Checking was canceled by user request 128 - Shared library error
Los códigos de salida se pueden combinar (agregar). Por ejemplo, el código de salida 3 significa que el error se ha corregido. (1) y necesita ser reiniciado (2).
Habilidades de producción: En scripts y trabajos cron, siempre capture y evalúe el código de salida de fsck para activar una alerta o un reinicio automático si es necesario.
fsck -y /dev/sdb1
EXIT_CODE=$?
if [ $EXIT_CODE -ge 4 ]; then
echo "ALERT: Filesystem errors could not be corrected on /dev/sdb1" | mail -s "fsck Alert" [email protected]
fi
Cómo realizar fsck en la partición raíz (/)
no puedes correr fsck en una partición raíz montada, pero aquí hay tres formas confiables de solucionarlo.
Método 1: forzar fsck en el siguiente arranque
La forma más sencilla es crear un forcefsck Archivo de banderas en el directorio raíz:
touch /forcefsck
Luego programe un reinicio:
reboot
El sistema se ejecutará automáticamente la próxima vez que se inicie. fsck antes de montar el sistema de archivos raíz. Después de restaurar el sistema, verifique y elimine el archivo de banderas para evitar activar fsck en cada arranque:
ls /forcefsck rm /forcefsck
notas: En sistemas basados en systemd (RHEL 7+, Ubuntu 16.04+), es posible que el método forcefsck no funcione. Utilice el siguiente método en su lugar.
Método 2: forzar fsck a través de tune2fs (ext4)
Para sistemas de archivos ext4, puede forzar fsck Úselo la próxima vez que reinicie tune2fsque establece el recuento de instalaciones en 1que activará fsck en el próximo arranque. Después de la verificación, el recuento de instalaciones se restablece automáticamente.
tune2fs -C 1 /dev/sda1
También puede establecer un recuento máximo de montaje y luego forzar automáticamente fsck:
tune2fs -c 30 /dev/sda1
Método 3: ejecutar fsck en modo rescate/recuperación
Este método le brinda control manual completo y se recomienda para situaciones de corrupción severa.
- Paso 1: Reinicie el sistema y manténgalo presionado durante el inicio
Shiftpara abrir el menú de GRUB. - Paso 2: elegir»Opciones avanzadas”del menú de GRUB.
- Paso 3: elegir»modo de recuperación”para su versión del kernel.
- Paso 4: En el menú de recuperación, seleccione «FSCK”.
- Paso 5: Cuando se le solicite volver a montar el sistema de archivos raíz, seleccione «Sí”.
- Paso 6:fsck Una vez completado, seleccione «recuperar«Continúe comenzando normalmente.
Cómo realizar fsck en volúmenes LVM y RAID de software
para volumen ventricular izquierdo Volumen lógico, primero identifique el volumen:
lvdisplay
Deshabilítelo antes de ejecutar fsck:
lvchange -an /dev/vg_data/lv_data fsck -y /dev/vg_data/lv_data lvchange -ay /dev/vg_data/lv_data
por un ataque miembro, verifique el dispositivo de bloque subyacente:
fsck -y /dev/md0
advertencia de producción: tenga mucho cuidado ataque formación. Asegúrese de que la matriz esté en buen estado (cat /proc/mdstat) antes de ejecutar fsck. Las matrices degradadas deben reconstruirse primero.
Cómo programar controles fsck periódicos
En un servidor de producción, es mejor programar fsck Ejecute en lugar de esperar a que surjan problemas.
Comprobación automática (ext4) usando tune2fs
Establezca un intervalo de verificación basado en el tiempo (por ejemplo, cada 6 meses):
tune2fs -i 6m /dev/sda1
Configure una verificación basada en el recuento de instalaciones (por ejemplo, cada 30 instalaciones):
tune2fs -c 30 /dev/sda1
Configuración de verificación:
tune2fs -l /dev/sda1 | grep -i "mount count\|check interval"
Ver resumen del estado del sistema de archivos
tune2fs -l /dev/sda1 | grep -E "Filesystem state|Last checked|Mount count|Maximum mount"
comprobar el registro fsck
Después de ejecutar fsck (ya sea al inicio o manualmente), puede ver lo que hizo:
# On RHEL/CentOS/Rocky Linux grep -i fsck /var/log/messages # On Ubuntu/Debian grep -i fsck /var/log/syslog # Systemd journal journalctl -b | grep -i fsck
Referencia rápida: ejemplo del comando fsck
# Check a partition interactively fsck /dev/sdb1 # Auto-repair all errors fsck -y /dev/sdb1 # Dry run (no changes) fsck -N /dev/sdb1 # Force check even if filesystem looks clean fsck -f /dev/sdb1 # Check all filesystems except root fsck -AR -y # Verbose check with progress bar fsck -C -V /dev/sdb1 # Check only ext4 filesystems fsck -t ext4 -A -y
en conclusión
fsck Es una de las herramientas más importantes del conjunto de herramientas del administrador del sistema Linux. Ya sea que esté lidiando con una partición dañada después de un corte de energía, realizando comprobaciones de integridad de rutina en un servidor de producción o solucionando problemas de un sistema que no se puede iniciar, saber cómo usar fsck correctamente puede evitar pérdidas graves de datos y tiempos de inactividad no planificados.
Reglas clave para recordar:
- Nunca realice fsck en una partición montada.
- Realice siempre primero un ensayo en seco (-N) en los sistemas críticos.
- Capture códigos de salida en scripts para alertar y reiniciar automáticamente.
- Utilice tune2fs para realizar comprobaciones periódicas en sistemas de archivos importantes.
Si tiene alguna pregunta sobre el uso fsck o encuentra un error específico, no dude en compartirlo en los comentarios a continuación.








