Comprobación y reparación: fsck, e2fsck, xfs_repair, tune2fs
Introducción
Los sistemas de archivos pueden corromperse tras un apagado brusco, un fallo de hardware o un error de software. Las herramientas de comprobación detectan y reparan inconsistencias. La regla más importante: nunca reparar un sistema de archivos montado.
fsck — Comprobador genérico
fsck es un wrapper que invoca la herramienta adecuada según el tipo de sistema de archivos: e2fsck para ext2/3/4, xfs_repair para xfs, etc.
# Comprobar una partición (DEBE ESTAR DESMONTADA)
fsck /dev/sdb1
# Especificar tipo de sistema de archivos
fsck -t ext4 /dev/sdb1
# Responder "sí" a todas las preguntas automáticamente
fsck -y /dev/sdb1
# Solo informar, no reparar (-n = no changes)
fsck -n /dev/sdb1
# Verbose
fsck -v /dev/sdb1
# El código de salida indica el resultado:
# 0 → sin errores
# 1 → errores corregidos
# 2 → el sistema debe reiniciarse
# 4 → errores no corregidos
# 8 → error operacional
# 16 → error de uso
Para comprobar la partición raíz (/), hacerlo desde un sistema Live o en el
arranque (antes de que se monte). Algunos sistemas permiten forzar una comprobación en el siguiente arranque:
# Forzar comprobación de ext4 en el siguiente arranque
tune2fs -C 1 /dev/sda1 # marcarlo como que tiene 1 montaje pendiente
# o
touch /forcefsck # en distribuciones que lo soporten (Debian antiguo)
# En systemd: forzar fsck descomentando en /etc/default/grub:
# GRUB_CMDLINE_LINUX="fsck.mode=force"
e2fsck — Reparar ext2/ext3/ext4
# Comprobar ext4 de forma interactiva
e2fsck /dev/sdb1
# Reparar automáticamente (respuesta "sí" a todo)
e2fsck -y /dev/sdb1
# Forzar comprobación aunque el sistema de archivos parezca limpio
e2fsck -f /dev/sdb1
# Comprobar y reparar usando el superbloque de respaldo
# (útil si el superbloque principal está dañado)
e2fsck -b 32768 /dev/sdb1 # superbloque de respaldo en bloque 32768
dumpe2fs /dev/sdb1 | grep "Backup superblock" # ver bloques de respaldo
# Modo verbose
e2fsck -v /dev/sdb1
# Ver información del sistema de archivos (sin modificar)
dumpe2fs /dev/sdb1 | head -50
xfs_repair — Reparar XFS
# Comprobar y reparar XFS (dispositivo desmontado)
xfs_repair /dev/sdb1
# Solo comprobar, sin reparar (-n = no modify)
xfs_repair -n /dev/sdb1
# Verbose
xfs_repair -v /dev/sdb1
# Si xfs_repair falla porque el log no está limpio,
# montar y desmontar el dispositivo primero para limpiar el log:
mount /dev/sdb1 /mnt/tmp
umount /mnt/tmp
# Luego ejecutar xfs_repair
# Si el log está dañado y no se puede montar, forzar limpieza del log:
xfs_repair -L /dev/sdb1 # PELIGROSO: puede perder transacciones recientes
# Información del sistema XFS
xfs_info /dev/sdb1
xfs_db -r /dev/sdb1 # modo debug interactivo (solo lectura con -r)
tune2fs — Ajustar parámetros de ext2/3/4
# Ver parámetros actuales del sistema de archivos
tune2fs -l /dev/sdb1
# Cambiar etiqueta de volumen
tune2fs -L "nueva_etiqueta" /dev/sdb1
# Cambiar UUID
tune2fs -U random /dev/sdb1
tune2fs -U "a1b2c3d4-..." /dev/sdb1
# Cambiar porcentaje de espacio reservado para root (por defecto 5%)
tune2fs -m 1 /dev/sdb1 # reducir al 1% (útil en discos grandes de datos)
# Definir comprobación periódica por número de montajes
tune2fs -c 30 /dev/sdb1 # comprobar cada 30 montajes
tune2fs -c 0 /dev/sdb1 # deshabilitar comprobación por montajes
# Definir comprobación periódica por tiempo
tune2fs -i 6m /dev/sdb1 # comprobar cada 6 meses
tune2fs -i 0 /dev/sdb1 # deshabilitar comprobación por tiempo
# Convertir ext3 a ext4 (conservando datos)
tune2fs -O extents,uninit_bg,dir_index /dev/sdb1
e2fsck -fD /dev/sdb1
Comprobación en Btrfs
# Comprobar Btrfs (dispositivo desmontado; usar con precaución)
btrfs check /dev/sdb1
# Solo lectura (sin reparar)
btrfs check --readonly /dev/sdb1
# Scrub: verificar checksums mientras está montado (recomendado)
btrfs scrub start /mnt/datos
btrfs scrub status /mnt/datos
# Balance: reequilibrar los datos entre dispositivos
btrfs balance start /mnt/datos
Guía de actuación ante corrupción
# 1. Desmontar el sistema de archivos afectado
umount /dev/sdb1
# 2. Identificar el tipo de sistema de archivos
blkid /dev/sdb1
# 3. Ejecutar la herramienta apropiada
# ext4: e2fsck -f /dev/sdb1
# xfs: xfs_repair /dev/sdb1
# btrfs: btrfs check /dev/sdb1
# 4. Si la partición raíz está corrupta:
# Arrancar desde Live CD/USB
# mount /dev/sda1 /mnt # NO montar como /
# fsck /dev/sda1
# 5. Montar de nuevo y verificar
mount /dev/sdb1 /mnt/datos
ls /mnt/datos