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.
- Arranque en modo rescate (rescue) en Linux Red Hat y CentOS.
- Reparar unidad de disco (volumen) dañado en Linux Red Hat.
- Anexo.
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)
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:
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»:
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):
Se iniciará el arranque desde el CD, elegiremos la opción «Rescue installed system»:
Elegiremos el idioma:
La distribución del teclado:
El tipo de dispositivo que contiene la imagen de rescate, en nuestro caso CD/DVD:
Nos preguntará si queremos iniciar las tarjetas de red del sistema, en nuestro caso no las necesitamos para el modo rescate, pulsaremos «No»:
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:
Si hemos elegido el montaje de la unidad del sistema y se ha realizado con éxito nos lo indicará en el siguiente mensaje:
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»:
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
Nos mostrará el contenido de la unidad:
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:
Ejecutando el siguiente comando podremos ver todos los volúmenes del sistema, para saber a cuál queremos aplicar la recuperación:
lvdisplay | more
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
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.
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:
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»:
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.
Nos mostrará algo así:
Error si el volumen que intentamos reparar está montado
Si el volumen que queremos reparar está montado el comando fsck mostrará el siguiente warning:
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)?