Explicamos cómo arrancar en modo rescate (rescue) en Linux Red Hat y cómo reparar una unidad de disco con errores usando fsck. Indicamos cómo solucionar el error «… contiene un sistema de ficheros con errores» en un volumen.

Escenario inicial, requisitos para arranque y recuperación de Linux

Partimos de un equipo o máquina virtual con el sistema operativo Linux Red Hat (válido para distribuciones de Linux similares como CentOS). Supongamos que necesitamos acceder en modo rescate porque se han producido errores en la unidad de disco de arranque del sistema, que impiden su arranque normal.

Un ejemplo, en el arranque de un equipo Linux Red Hat, se produce este error:

Iniciando udev OK
Configuración del nombre de la máquina OK
VG_Log_Volumen now active
1 logical volume (s) in volume group «VG_Volumen_Logico_1» now active
1 logical volume (s) in volume group «VG_Volumen_Logico_2» now active
1 logical volume (s) in volume group «VG_Volumen_Logico_3» now active
Verificando sistema de archivos
/dev/mapper/VG_Sistema contiene un sistema de ficheros con errores, se fuerza la revisión.
Los nodos-i fueron parte de una lista enlazada que estaba huérfana y dañada.
/dev/mapper/VG_Sistema INCONSISTENCIA INESPERADA: EJECUTE fsck MANUALMNENTE (i.e., sin las opciones -a o -p)
Se ha producido un error durante la verificación del sistema de archivos.
Será devuelto a un intérpreter de comandos; el sistema se reinicializará cuando salga de la shell
Give root password for maintenance (or type Control-D to continue)

Escenario inicial, requisitos para arranque y recuperación de Linux

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Para arrancar en modo rescate, cuando el sistema no arranca de forma normal o bien cuando queremos realizar alguna tarea que requiere este arranque, necesitaremos un CD o USB con el sistema operativo Linux. En el caso de una máquina virtual podremos agregar un fichero ISO como CD de arranque de Linux:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Al arrancar el equipo indicaremos desde la BIOS que arranque en primer lugar desde el CD/USB. En el caso de una máquina virtual podremos indicar que en el próximo arranque abra la BIOS para configurarla, desde la pestaña «Options» en las opciones de la máquina virtual, en «Boot Options», marcando la opción «The next time the virtual boots, force entry into the BIOS setup screen»:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Iniciaremos el equipo/máquina virtual. Configuraremos la BIOS para que arranque en primer lugar desde el CD o USB (según el medio que tengamos con el sistema operativo Linux Red Hat):

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Se iniciará el arranque desde el CD, elegiremos la opción «Rescue installed system»:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Elegiremos el idioma:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

La distribución del teclado:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

El tipo de dispositivo que contiene la imagen de rescate, en nuestro caso CD/DVD:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Nos preguntará si queremos iniciar las tarjetas de red del sistema, en nuestro caso no las necesitamos para el modo rescate, pulsaremos «No»:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Elegiremos el modo de montaje de la unidad del sistema (lectura-escritura, solo-lectura). Para lectura-escritura pulsaremos «Continuar». Aunque si el volumen erróneo es el del sistema recomendamos NO montarlo, de lo contrario tendríamos que desmontarlo con umount y puede que no nos deje al haberse montado en modo rescate. Por lo tanto, si queremos arrancar en modo rescate para reparar un volumen erróneo pulsaremos Omitir:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Si hemos elegido el montaje de la unidad del sistema y se ha realizado con éxito nos lo indicará en el siguiente mensaje:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Con el texto: El sistema ha sido montado bajo /mnt/sysimage. Pulse INTRO para obtener una shell. Si desea que su sistema sea el entorno de root, ejecute el comando: chroot /mnt/sysimage. El sistema se reiniciará automáticamente cuando salga de la shell.

Elegiremos «Shell Start shell» y pulsaremos «Ok»:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Se iniciará el shell de comandos. Si hemos montado la unidad del sistema podremos, por ejemplo, acceder y listar su contenido:

cd /mnt/sysimage
ls -lah

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

Nos mostrará el contenido de la unidad:

Arranque en modo rescate (rescue) en Linux Red Hat y CentOS

A partir de ahora dispondremos de la línea de comandos de Linux para hacer cualquier operación en nuestro sistema.

Reparar unidad de disco (volumen) dañado en Linux Red Hat

Una vez que hemos entrado en modo rescue (rescate/recuperación), como hemos indicado anteriormente, sin montar la unidad del sistema, procederemos a intentar reparar el volumen erróneo. En el inicio del sistema normal nos mostrará en qué volumen se produce el error:

Reparar unidad de disco (volumen) dañado en Linux Red Hat

Ejecutando el siguiente comando podremos ver todos los volúmenes del sistema, para saber a cuál queremos aplicar la recuperación:

lvdisplay | more

Reparar unidad de disco (volumen) dañado en Linux Red Hat

En nuestro caso, repararemos el volumen: /dev/VG_Sistema/LV_Raiz. Antes de proceder a la reparación, puesto que hemos arrancado en modo rescate, la gestión de volúmenes no se habrá cargado, por lo que habrá que cargarla previamente con el comando:

lvm vgchange -a y

Reparar unidad de disco (volumen) dañado en Linux Red Hat

Ahora la gestión de volúmenes está cargada, pero el volumen que queremos reparar está desmontado y es así como lo queremos.

Para repararlo ejecutaremos el comando, teniendo en cuenta que el parámetro «y» indica que responda a cualquier pregunta que pueda realizar el comando a «yes» (sí):

fsck -vy /dev/VG_Sistema/LV_Raiz

Cambiaremos, como es lógico, /dev/VG_Sistema/LV_Raiz por el nombre del volumen a reparar en nuestro sistema.

Reparar unidad de disco (volumen) dañado en Linux Red Hat

Se iniciará el proceso de reparación del disco duro, puede tardar varios minutos, en función del número de errores y el tamaño del disco duro (partición o volumen). Al ponerle el parámetro «y» hemos indicado que responda yes a todas las preguntas, por ejemplo a «Fix?». Una vez acabado el proceso mostrará la siguiente ventana:

Reparar unidad de disco (volumen) dañado en Linux Red Hat

Como vemos muestra un resumen de las acciones realizadas y los errores encontrados en el disco duro.

Una vez acabado el proceso escribiremos «exit» para reiniciar el sistema, nos mostrará una ventana, elegiremos «reboot Reboot»:

Reparar unidad de disco (volumen) dañado en Linux Red Hat

Anexo

Obtener información adicional del volumen en Linux Red Hat

Si queremos obtener en qué unidad está montado el volumen ejecutaremos el siguiente comando:

vgdisplay -v VG_Sistema | more

Donde VG_Sistema será el nombre del grupo lógico con errores, como vemos en la imagen anterior.

Obtener información adicional del volumen en Linux Red Hat

Nos mostrará algo así:

Obtener información adicional del volumen en Linux Red Hat
Obtener información adicional del volumen en Linux Red Hat

Error si el volumen que intentamos reparar está montado

Si el volumen que queremos reparar está montado el comando fsck mostrará el siguiente warning:

Error si el volumen que intentamos reparar está montado

Con el texto:

fsck /dev/…
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2018)
/dev/mapper/… is mounted.
WARNING!!! The filesystem is mounted. If you continue you WILL cause SEVERE filesystem damage.
Do you really want to continue (y/n)?