martinezmartinez.es

BIOS o UEFI LINUX

enero 4, 2025 | by juancmmartinez@gmail.com

Linux-Logo

BIOS (Basic Input/Output System)

  • Definición: Es un programa almacenado en un chip de memoria no volátil en la placa base. Se ejecuta al encender el ordenador.
  • Proceso de arranque con BIOS:
    1. POST: El proceso de autodiagnóstico de encendido detecta fallos.
    2. Activación de componentes básicos: Como el video, teclado y almacenamiento.
    3. Carga de la primera etapa del gestor de arranque desde el MBR (Master Boot Record).
    4. Cargar el núcleo del sistema operativo: La segunda etapa del gestor de arranque muestra las opciones de arranque y carga el sistema operativo.
  • MBR: Los primeros 512 bytes del dispositivo de almacenamiento que contienen la tabla de particiones y la primera etapa del gestor de arranque.

UEFI (Unified Extensible Firmware Interface)

  • Definición: Es un firmware moderno que reemplaza al BIOS, con más capacidades como la identificación de particiones y la lectura de sistemas de archivos.
  • Proceso de arranque con UEFI:
    1. POST: Similar al BIOS, detecta fallos.
    2. Activación de componentes básicos: Video, teclado y almacenamiento.
    3. Lectura de la configuración almacenada en NVRAM: Ejecución de la aplicación EFI predefinida (generalmente un gestor de arranque).
    4. Cargar el sistema operativo: Si la aplicación EFI es un gestor de arranque, se carga el núcleo.
  • Secure Boot: Solo permite la ejecución de aplicaciones EFI firmadas, mejorando la seguridad.

Cargador de Arranque (GRUB)

  • Definición: Es el gestor de arranque más común para Linux.
  • Funcionamiento: Al ejecutarse el BIOS o UEFI, muestra las opciones de sistemas operativos disponibles. Permite elegir qué núcleo cargar y pasarle parámetros.
  • Parámetros útiles del núcleo:
    • acpi=off: Deshabilita el soporte ACPI.
    • init=/bin/bash: Inicia un shell en lugar del sistema operativo.
    • mem=512M: Limita la memoria RAM disponible a 512 MB.
    • quiet: Oculta los mensajes de arranque.
  • Configuración: Los parámetros se definen en /etc/default/grub y se actualizan con grub-mkconfig.

Inicialización del Sistema

  1. El núcleo carga en la RAM y comienza a configurar los dispositivos.
  2. El initramfs se monta, proporcionando un sistema de archivos temporal para que el núcleo acceda al sistema de archivos raíz real.
  3. El núcleo ejecuta init o sistemas alternativos como systemd o Upstart para gestionar los servicios.

Tipos de Gestión de Servicios

  • SysVinit: Utiliza niveles de ejecución (runlevels) para gestionar los servicios. Los niveles 0, 1 y 6 son estándares.
  • systemd: Un sistema moderno que gestiona servicios de manera más eficiente, con soporte para dependencias y control de servicios.
  • Upstart: Un sistema de inicio paralelo utilizado en versiones antiguas de Ubuntu.

Inspección de Inicialización

  • dmesg: Muestra los mensajes del núcleo durante el arranque.
  • journalctl: Muestra los registros de inicialización y permite revisar los mensajes de arranque anteriores en sistemas que usan systemd.

dmesg y journalctl

dmesg: (diagnostic message)

  • Es una herramienta que muestra el ring buffer de mensajes del núcleo (kernel).
  • Muestra información detallada sobre el hardware y los dispositivos que han sido detectados durante el arranque.
  • Para ver los últimos mensajes del núcleo, puedes ejecutar: dmesg
  • Para filtrar mensajes de interés, por ejemplo, sobre errores:bash dmesg | grep error
  • Los comandos dmesg -H o dmesg –human habilitarán el paginador por defecto.

journalctl:

  • Es una herramienta para ver los registros de systemd.
  • Proporciona acceso a los logs de todo el sistema, incluyendo mensajes del kernel, servicios, y aplicaciones.
  • Para ver los logs del sistema desde el inicio, puedes ejecutar: journalctl
  • Para mostrar solo los mensajes de arranque: journalctl -b
  • Para ver los mensajes más recientes: journalctl -e
  • Para buscar errores en los logs: journalctl -p err
  • journalctl -D /mnt/hd/var/log/journal (inspeccionar logs de un disco nuevo atechado)

Ambos comandos son útiles para diagnosticar problemas relacionados con el arranque, hardware y servicios del sistema.

RELATED POSTS

View all

view all