GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Una guía básica para el proceso de arranque de Linux

Cada vez que enciende su PC con Linux, pasa por una serie de etapas antes de finalmente mostrar una pantalla de inicio de sesión que le solicita su nombre de usuario o contraseña. Hay 4 etapas distintas por las que pasa cada distribución de Linux en un proceso de arranque típico.

En esta guía, destacaremos los diversos pasos que realiza el sistema operativo Linux desde el momento en que se enciende hasta el momento en que inicia sesión. Tenga en cuenta que esta guía solo tiene en cuenta el GRUB2 gestor de arranque y systemd init tal como están actualmente en uso por la gran mayoría de las distribuciones modernas de Linux.

El proceso de arranque toma los siguientes 4 pasos que discutiremos con mayor detalle:

  • BIOS Comprobación de integridad (POST )
  • Carga del cargador de arranque (GRUB2 )
  • Inicialización del núcleo
  • Iniciando systemd , el padre de todos los procesos

1. La comprobación de integridad del BIOS (POST)

El proceso de arranque generalmente se inicializa cuando un usuario presiona el encendido botón, si la PC ya estaba apagada, o reinicia el sistema usando la GUI o en la línea de comando.

Cuando el sistema Linux se enciende, el BIOS (Sistema básico de entrada y salida ) se activa y realiza una prueba automática de encendido (POST ). Esta es una verificación de integridad que realiza una gran cantidad de verificaciones de diagnóstico.

El POST prueba la operatividad del hardware de componentes como el HDD o SSD , Teclado , RAM , USB puertos y cualquier otra pieza de hardware. Si no se detecta algún dispositivo de hardware, o si hay un mal funcionamiento en cualquiera de los dispositivos, como un HDD o SSD dañado, aparece un mensaje de error en la pantalla que solicita su intervención.

En algunos casos, sonará un pitido, especialmente en el caso de que falte un módulo RAM. Sin embargo, si el hardware esperado está presente y funciona como se esperaba, el proceso de arranque continúa con la siguiente etapa.

2. El cargador de arranque (GRUB2)

Una vez que PUBLICAR está completo y la costa está despejada, el BIOS sondea el MBR (Registro de arranque maestro ) para obtener información sobre el gestor de arranque y la partición del disco.

El MBR es un código de 512 bytes que se encuentra en el primer sector del disco duro que suele ser /dev/sda o /dev/hda dependiendo de la arquitectura de su disco duro. Tenga en cuenta, sin embargo, que a veces el MBR se puede ubicar en un Live USB o DVD instalación de Linux.

Hay 3 tipos principales de gestores de arranque en Linux:LILO , GRUB y GRUB2 . El GRUB2 bootloader es el cargador de arranque más reciente y principal en las distribuciones modernas de Linux e informa nuestra decisión de omitir los otros dos que se han vuelto anticuados con el paso del tiempo.

GRUB2 significa GRand Unified Bootloader versión 2. Una vez que el BIOS localiza el gestor de arranque grub2, lo ejecuta y lo carga en la memoria principal (RAM ).

El grub2 menú le permite hacer un par de cosas. Le permite seleccionar la versión del kernel de Linux que le gustaría usar. Si ha estado actualizando su sistema un par de veces, es posible que vea diferentes versiones del kernel en la lista. Además, le brinda la posibilidad de editar algunos parámetros del núcleo presionando una combinación de teclas del teclado.

Además, en una configuración de arranque dual en la que tiene varias instalaciones de SO, el menú de grub le permite seleccionar en qué SO arrancar. El archivo de configuración de grub2 es /boot/grub2/grub2.cfg expediente. El objetivo principal de GRUB es cargar el kernel de Linux en la memoria principal.

3. Inicialización del núcleo

El kernel es el núcleo de cualquier sistema Linux. Interconecta el hardware de la PC con los procesos subyacentes. El kernel controla todos los procesos en su sistema Linux. Una vez que el gestor de arranque carga el kernel de Linux seleccionado, debe extraerse automáticamente de su versión comprimida antes de realizar cualquier tarea. Al autoextraerse, el núcleo seleccionado monta el sistema de archivos raíz e inicializa /sbin/init programa comúnmente conocido como init .

Inicio es siempre el primer programa que se ejecuta y se le asigna el ID de proceso o PID de 1. Es el proceso de inicio el que genera varios demonios y monta todas las particiones que se especifican en /etc/fstab archivo.

Luego, el kernel monta el disco RAM inicial (initrd ) que es un sistema de archivos raíz temporal hasta que se monta el sistema de archivos raíz real. Todos los núcleos se encuentran en el /boot directorio junto con la imagen de disco RAM inicial.

4. Iniciar Systemd

El kernel finalmente carga Systemd , que es el reemplazo del antiguo SysV en eso. Systemd es la madre de todos los procesos de Linux y administra, entre otras cosas, el montaje de sistemas de archivos, el inicio y la detención de servicios, por mencionar solo algunos.

Systemd usa el /etc/systemd/system/default.target para determinar el estado o el destino en el que debe iniciarse el sistema Linux.

  • Para una estación de trabajo de escritorio (con una GUI), el valor de destino predeterminado es 5, que es el equivalente al nivel de ejecución 5 para el antiguo SystemV init.
  • Para un servidor, el objetivo predeterminado es multi-user.target que corresponde al nivel de ejecución 3 en SysV init.

Aquí hay un desglose de los objetivos de systemd:

  • poweroff.objetivo (nivel de ejecución 0) :Apague o apague el sistema.
  • objetivo de rescate (nivel de ejecución 1) :inicia una sesión de shell de rescate.
  • objetivo.multiusuario (nivel de ejecución 2,3,4) :configura el sistema como un sistema multiusuario no gráfico (consola).
  • objetivo.gráfico (nivel de ejecución 5) :Configure el sistema para usar una interfaz gráfica multiusuario con servicios de red.
  • reboot.target (nivel de ejecución 6) :reinicia el sistema.

Para verificar el objetivo actual en su sistema, ejecute el comando:

$ systemctl get-default

Puede cambiar de un objetivo a otro ejecutando el siguiente comando en la terminal:

$ init runlevel-value

Por ejemplo, init 3 configura el sistema en un estado no gráfico.

El inicio 6 El comando reinicia su sistema y init 0 apaga el sistema. Asegúrese de invocar el comando sudo cuando desee cambiar a estos dos objetivos.

El proceso de arranque finaliza una vez systemd carga todos los demonios y establece el objetivo o el valor del nivel de ejecución. Es en este punto que se le solicita su nombre de usuario y contraseña para acceder a su sistema Linux.


Ubuntu
  1. Instalar Linux kernel 5.15 en Ubuntu 20.04 - ¿Guía paso a paso?

  2. ¿El kernel de Linux no se actualizará a 2.35.25?

  3. Guía para principiantes sobre la configuración del módulo kernel en Linux

  4. Proceso de arranque de Linux

  5. ¿Cuál es la fuente actual del kernel de Linux?

Comando sysctl en Linux

Linux, GPU AMD, pantalla negra en el arranque

Guía completa de registro de Linux

Cómo matar o terminar un proceso de Linux:la guía definitiva

Una guía para el sistema de archivos '/proc' en Linux

6 etapas del proceso de arranque de Linux (secuencia de inicio)