Explicamos cómo reparar el arranque de un equipo con Linux y con sistema de ficheros XFS. Mostramos un error habitual en unidades de disco con Linux y XFS cuando el apagado del equipo ha sido anómalo (por ejemplo cuando se va la corriente eléctrica). El error habitual: XFS corruption metadata has LSN … ahead of current LSN… Hay muchas distribuciones de Linux que puede usar este sistema de ficheros: CentOS, Red Hat, OpenSUSE, etc.. Por lo tanto es un error relativamente habitual en estos sistemas.

Error en el arranque de Linux con sistema de ficheros XFS y consultar el motivo

A veces, cuando se produce un apagado anómalo del equipo y volvemos a iniciarlo, el sistema operativo Linux arranca en modo «Emergency mode». Nos mostrará una línea de comandos básica y el mensaje:

Generating «/run/initramfs/rdsosreport.txt»
Entering emergency mode. Exit the shell to continue.
Type «journalctl» to view system logs.
You might want to save «/run/initramfs/rdsosreport.txt» to a USB stick or /boot after mounting them and attach it to a bug report.

Error en el arranque de Linux con sistema de ficheros XFS y consultar el motivo

El sistema nos avisa de que ha arrancado en modo emergencia y que podemos ver el fichero de log con los posibles errores de arranque, o bien ejecutando el comando journalctl, o bien visualizando el documento de reporte de error rdsosreport.txt.

Si intentamos ejecutar el comando «exit» veremos que el sistema vuelve al mismo sitio, al arranque de emergencia.

Para ver el fichero de log podemos usar el comando «cat», ejecutando el siguiente comando:

journalctl

Error en el arranque de Linux con sistema de ficheros XFS y consultar el motivo

Nos mostrará el contenido del fichero de log de arranque paginado. Para ir avanzando páginas pulsaremos la barra espaciadora. Los errores de carga suelen estar en la parte final del fichero. Iremos pulsando la barra espaciadora hasta encontrar algún error:

Error en el arranque de Linux con sistema de ficheros XFS y consultar el motivo

Como vemos en la imagen anterior, el error aparece justo en la última página del fichero:

XFS (dm-0): Mounting V5 Filesystem
mount: wrong fs type, bad option, bad superblock or missing codepage or helper program, or other erros.
In some cases useful info is found in syslog – try dmsg| tail or so.
XFS (dm-0): Corruption warning: Metadata has LSN (16:26995) ahead of curren LSN (16:25943). Please umount and run xfs_repair (>= v4.3) to resolve
XFS (dm-0): log mount/recovery failed: error -22
XFS (dm-0): log mount failed
sysroot.mount mount process exited, code=exited status=32
Failed to mount /sysroot
Dependency failed for Initrd Root File System
Dependency failed for Reload Configuration from the Real Root
Job initrd-parse-etc.service/start failed with result «dependency»
Triggering OnFailure= dependencies of initrd-parse-etc.service
Job initrd-root-fs.target/start failed with result «dependency»
Triggering OnFailure= dependencies of initrd-root-fs.target
Unit sysroot.mount entered failed state
Stopped dracut pre-udev hook

Una vez consultado el fichero de log de arranque pulsaremos la tecla «q» para salir y volver a la línea de comandos.

También podríamos visualizar el fichero de reporte de error rdsosreport.txt con el comando:

cat /run/initramfs/rdsosreport.txt

O también ejecutar el comando:

dmesg

Reparar arranque Linux con error en filesystem XFS status 32 corruption metadata LSN

Cuando nuestro equipo Linux no arranca, entra en modo emergencia y muestra el error anterior, podemos intentar reparar el arranque como explicamos a continuación.

En primer lugar, si es una máquina virtual, trataremos de hacer una copia de seguridad antes de continuar o, al menos, un snapshot para poder revertir los cambios en caso necesario.

Al arrancar nos deja en Emergency Mode y en una consola de comandos muy limitada. Pero será suficiente para reparar el arranque.

Precisamente por arrancar en modo emergencia no habrá montado las unidades, por lo que podremos repararlas directamente, sin tener que recurrir a desmontarlas previamente.

Comprobaremos las unidades de que disponemos con el comando:

ls -altri /dev/mapper/*

Reparar arranque Linux con error en filesystem XFS status 32 corruption metadata LSN

En nuestro caso nos devuelve las unidades:

/dev/mapper/control
/dev/mapper/centos-root ../dm-0
/dev/mapper/centos-swap ../dm-1

La que nos interesa será la unidad /dm-0 y será esta la que intentaremos reparar. Para repararla ejecutaremos el siguiente comando:

xfs_repair -v -L /dev/dm-0

Reparar arranque Linux con error en filesystem XFS status 32 corruption metadata LSN

El comando anterior puede tardar varios minutos, en función del estado del disco duro, de su tamaño y de su velocidad. Se iniciarán las fases de reparación del sistema de ficheros XFS.

El comando finalizará y nos devolverá a la línea de comandos, acabando con «done»:

Reparar arranque Linux con error en filesystem XFS status 32 corruption metadata LSN

Ejecutaremos el siguiente comando para volver a intentar el arranque normal del equipo:

exit

Si se ha reparado correctamente el sistema de ficheros XFS el equipo arrancará con normalidad:

Reparar arranque Linux con error en filesystem XFS status 32 corruption metadata LSN