kernel

Cómo interrumpir el proceso de arranque en GnuLinux

Durante el proceso de arranque de una computadora, debe pasar de un proceso de firmware (UEFI o BIOS) a cargar un kernel y finalmente al entorno del usuario. Al iniciar un sistema POSIX, puede optar por interrumpir el proceso de inicio para ajustar la configuración o incluso iniciar sesión utilizando un entorno chroot.

Interrumpir el proceso de inicio es útil para la resolución de ciertos problemas y el mantenimiento, pero primero asegúrese de habilitar el cifrado de disco completo; cuando una unidad está cifrada, no se puede acceder a nada en la unidad sin su frase de contraseña, incluso desde un entorno de pre arranque. Siempre que tenga la frase de contraseña para descifrar su unidad, puede interrumpir el proceso de inicio de un sistema Linux y acceder a la unidad sin iniciar un sistema operativo (SO) completo. Tal vez suene algo exagerado y probablemente conspiranoico, para muchos, pero los datos personales son eso mismo. Mejor prevenir que lamentar.

Como bien sabes, la transferencia del firmware al gestor de arranque finaliza en la pantalla del GRUB (menú de texto que permite seleccionar en qué sistema operativo y versión del kernel que deseas iniciar). De forma predeterminada, se supone que seria la última versión de Linux instalada en la máquina. Sin embargo, también le permite modificar cómo deseas iniciar.

Para preparar tu equipo para que se interrumpa el proceso de arranque, presiona e, cuando veas la pantalla de inicio de GRUB. Esto revela los parámetros de arranque asignados a la selección de menú predeterminado. Seguidamente, agrega el parámetro rd.break y usa las teclas Ctrl+X para salir del editor y continuar con el arranque.

El parámetro rd.break hace que el «disco» RAM inicial, que contiene las partes del kernel de Linux necesarias para arrancar se «rompa», en el mismo sentido en que un depurador coloca «puntos de interrupción» en una aplicación para pausar su ejecución. Es probable que el «disco» RAM inicial (initrd) se encuentre dentro de la parte cifrada del HDD, por lo que deberás ingresar la frase de contraseña correspondiente antes de poder continuar con el arranque. Si no estuviera cifrada, continuaría arrancando sin solicitar contraseña.

Modo Mantenimiento

Ya que haz agregado una instrucción extra en el arranque (rd.break), el proceso se detiene en un modo mantenimiento de emergencia. Si no tiene nada que hacer, presiona Ctrl+D para continuar el arranque normal. De lo contrario, presione Enter para ingresar a una shell mínima pero interactiva.

Una vez que estés con el prompt en la shell, serás el todopoderoso, usuario root de esa máquina. Así que las próximas acciones dependen completamente del tipo de mantenimiento que necesites realizar. Por ejemplo, puedes ejecutar una verificación de disco en su unidad usando xfs_repair o fsck, según sea tu sistema de archivos.

Para recuperar una contraseña, es posible que debas volver a montar la unidad (ya está montada en modo de solo lectura en /sysroot como parte del proceso de arranque). Las opciones remount,rw montan una ubicación en una unidad con permisos de escritura. Esta tarea puede ser extremadamente peligrosa: tiene privilegios completos de root, sin medidas de seguridad y una unidad grabable. Solo usar esto, en caso de emergencias, repito.

Debe usar el comando chroot para hacer que la unidad remontada sea su entorno activo. Esto reemplaza su partición / actual con /sysroot, que establece todas las rutas a las que está acostumbrado cuando inicia sesión en un sistema.

A partir de aquí, la mayor parte del tiempo estará conectado al sistema. Puedes ejecutar comandos, recuperar archivos, contraseñas y realizar cualquier mantenimiento que necesites hacer. Pero no estarán automontadas /proc o /sys, pero ya que la intención no es hacer de esta sesión, una experiencia multiusuario completamente interactiva y solo un entorno temporal para emergencias, es comprensible que no lo estén.

Cuando hayas terminado el mantenimiento, configura un flag para que SELinux vuelva a etiquetar el sistema según sea necesario. Este paso no siempre es necesario, según el tipo de mantenimiento que haya realizado, pero no es una mala idea dado que es probable que hayas realizado cambios en el sistema. Una vez terminado, sal del entorno chroot y luego del shell para continuar con el arranque.

A medida que su computadora continúa arrancando, SELinux vuelve a etiquetar el sistema según sea necesario. 😉

Conclusión

El proceso de arranque no está destinado a ser interrumpido y rara vez es necesario. Pero en tiempos oscuros, esta es una técnica de solución de problemas importante. hasta otro post lector, buenas vibras.

Happy Hacking!

4 comentarios

Deja un comentario