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:
- POST: El proceso de autodiagnóstico de encendido detecta fallos.
- Activación de componentes básicos: Como el video, teclado y almacenamiento.
- Carga de la primera etapa del gestor de arranque desde el MBR (Master Boot Record).
- 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:
- POST: Similar al BIOS, detecta fallos.
- Activación de componentes básicos: Video, teclado y almacenamiento.
- Lectura de la configuración almacenada en NVRAM: Ejecución de la aplicación EFI predefinida (generalmente un gestor de arranque).
- 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 congrub-mkconfig
.
Inicialización del Sistema
- El núcleo carga en la RAM y comienza a configurar los dispositivos.
- El initramfs se monta, proporcionando un sistema de archivos temporal para que el núcleo acceda al sistema de archivos raíz real.
- 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