Skip to main content

Gestores de Arranque

Los gestores de arranque son programas que permiten cargar el sistema operativo y gestionar el proceso de inicio del equipo.

Windows Boot Manager (BOOTMGR)

Introducción

BOOTMGR es el cargador de arranque utilizado desde Windows Vista en adelante, reemplazando a NTLDR.

Características

  • Archivo de solo lectura y oculto
  • Ubicado en la partición “System Reserved”
  • Gestiona el arranque de Windows y aplicaciones de arranque
  • Lee la base de datos BCD para configuración

Boot Configuration Data (BCD)

La BCD es la base de datos de configuración del arranque.

Estructura

Similar al registro de Windows, almacenada en formato binario.Montada como clave de registro en:
HKEY_LOCAL_MACHINE\BCD00000

Ubicación

\EFI\Microsoft\Boot\BCD

En la partición EFI (ESP)

Ficheros Importantes

Winload.exe

Winload.exe es el cargador del sistema operativo que BOOTMGR ejecuta.
Funciones:
  • Cargar drivers esenciales (BOOT_START)
  • Cargar el núcleo del sistema (ntoskrnl.exe)
  • Inicializar la memoria
  • Preparar el entorno para Windows

Winresume.exe

Winresume.exe gestiona la hibernación. Esto puede causar problemas en dual boot con particiones NTFS compartidas.
Funciones:
  • Leer imagen de hibernación
  • Cargar estado previo en RAM
  • Reanudar sesión rápidamente

Proceso de Arranque de Windows

1

POST (Power-On Self-Test)

BIOS/UEFI realiza comprobaciones de hardware
  • Verifica RAM
  • Detecta dispositivos
  • Comprueba integridad
2

Lectura de MBR/GPT

BIOS/UEFI localiza disco con MBR o tabla GPT
  • Lee primeros 512 bytes (MBR) o ESP (GPT)
  • Identifica partición activa
  • Localiza BOOTMGR
3

Carga de BOOTMGR

El Boot Manager se carga en memoria y toma control
4

Lectura de BCD

BOOTMGR lee la base de datos BCD
  • Obtiene lista de sistemas operativos
  • Lee configuración de arranque
  • Muestra menú si hay múltiples SO
5

Selección de SO

Usuario selecciona sistema operativo (o arranca el predeterminado)
6

Winload.exe / Winresume.exe

Si sistema normal: Ejecuta Winload.exeSi hibernación: Ejecuta Winresume.exe
7

Carga de Drivers BOOT_START

Winload.exe carga controladores críticos:
  • Controladores de disco
  • Controladores de bus
8

Kernel (ntoskrnl.exe)

Se carga el núcleo del sistema operativo
9

Drivers y Servicios

Carga de drivers de alto nivel y servicios del sistema
10

Subsistema de Windows

Smss.exe inicializa el subsistema gráfico
11

Winlogon

Muestra pantalla de inicio de sesión
12

Windows Explorer

Tras autenticación, se carga el explorador y escritorio

BCDEdit

BCDEdit.exe es la herramienta de línea de comandos para modificar la BCD.

Comandos Básicos

# Mostrar toda la configuración BCD
bcdedit /enum

# Solo entradas de arranque
bcdedit /enum ACTIVE

# Solo configuración del firmware
bcdedit /enum FIRMWARE

# Configuración completa
bcdedit /enum ALL

Ejemplos Prácticos

# Ver configuración actual
bcdedit /enum {bootmgr}

# Cambiar a 5 segundos
bcdedit /timeout 5
# Crear copia de entrada actual
bcdedit /copy {current} /d "Windows 10 - Modo Seguro"

# Anotar el identificador devuelto, luego:
bcdedit /set {identificador} safeboot minimal
# Desde entorno de recuperación
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd

MSConfig

MSConfig es la herramienta gráfica para configurar el arranque de Windows.

Pestañas

General

  • Inicio Normal: Todos los drivers y servicios
  • Inicio con Diagnóstico: Solo servicios básicos
  • Inicio Selectivo: Personalizar servicios que arrancan

Arranque

Esta pestaña modifica directamente la BCD.
Opciones disponibles:
  • Sin arranque de GUI: No carga entorno gráfico
  • Registro de arranque: Guarda log detallado en ntbtlog.txt
  • Video base: Resolución mínima (modo VGA)
  • Información de arranque del SO: Muestra drivers mientras cargan
Por defecto, los cambios solo aplican al siguiente arranque. Para hacerlos permanentes, marca “Convertir en permanente”.
Opciones Avanzadas:
Número de procesadores: Limitar CPUs usadas
Cantidad máxima de memoria: Limitar RAM
Bloqueo de PCI: No reasignar dispositivos PCI
Depuración: Habilitar modo debug

Servicios

Lista todos los servicios configurados para arranque automático.Tip: Marca “Ocultar todos los servicios de Microsoft” para ver solo servicios de terceros.

Inicio de Windows

En Windows 10/11, esta sección redirige al Administrador de tareas.
Gestiona programas que se ejecutan al iniciar sesión:
  • Deshabilitar programas innecesarios
  • Identificar software que ralentiza el inicio
  • Ver impacto en el rendimiento

GRUB (GRand Unified Bootloader)

GRUB es el gestor de arranque estándar en sistemas GNU/Linux.

Introducción a GRUB2

GRUB2 es la versión moderna de GRUB, reescrita desde cero con arquitectura modular.

Características

  • Soporta BIOS y UEFI
  • Sistemas de archivos: ext2/3/4, XFS, Btrfs, ZFS, FAT, NTFS (lectura)
  • Arranque de múltiples sistemas operativos
  • Línea de comandos interactiva
  • Scripts y configuración flexible
  • Temas y personalización

Archivos de Configuración

/etc/default/grub

Archivo principal de configuración que controla el comportamiento de GRUB.
Variables importantes:
# Sistema operativo por defecto (0 = primero, 1 = segundo, etc.)
GRUB_DEFAULT=0

# Tiempo de espera en segundos
GRUB_TIMEOUT=5

# Mostrar menú oculto al mantener Shift
GRUB_TIMEOUT_STYLE=hidden

# Distribuidor (aparece en el menú)
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

# Parámetros del kernel
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

/boot/grub/grub.cfg

NO editar manualmente este archivo. Se genera automáticamente.
Para regenerar:
# Debian/Ubuntu
sudo update-grub

# Fedora/RHEL
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# UEFI
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Modificar GRUB

Cambiar Tiempo de Espera

1

Editar Configuración

sudo nano /etc/default/grub
2

Modificar GRUB_TIMEOUT

GRUB_TIMEOUT=10
3

Actualizar GRUB

sudo update-grub
4

Reiniciar

Verifica los cambios al reiniciar

Cambiar Texto del Menú

# Editar /etc/default/grub
GRUB_DISTRIBUTOR="Ubuntu +NombreAlumno"

# Actualizar
sudo update-grub
Resultado: “Ubuntu +NombreAlumno GNU/Linux”

Cambiar Resolución

# Editar /etc/default/grub
GRUB_GFXMODE=1024x768

# O para múltiples resoluciones (prueba en orden)
GRUB_GFXMODE=1920x1080,1024x768,auto

# Actualizar
sudo update-grub

Parámetros del Kernel

# De:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

# A:
GRUB_CMDLINE_LINUX_DEFAULT=""

# O para ver más información:
GRUB_CMDLINE_LINUX_DEFAULT="verbose"
Esto mostrará todos los mensajes del kernel durante el arranque.
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
Uso: Problemas con drivers gráficos. No carga drivers de vídeo hasta que inicia el servidor X.
# Deshabilitar driver nouveau (NVIDIA)
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"

# O con modprobe.blacklist
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
Uso: Cuando un driver causa problemas.

Scripts de GRUB

Los scripts en /etc/grub.d/ generan la configuración final:
/etc/grub.d/
├── 00_header          # Configuración inicial
├── 05_debian_theme    # Tema de Debian
├── 10_linux           # Entradas del kernel Linux
├── 20_linux_xen       # Entradas Xen
├── 30_os-prober       # Detecta otros SO
├── 40_custom          # Entradas personalizadas
└── 41_custom          # Más personalizaciones
Los archivos se ejecutan en orden numérico. El número determina la prioridad.

Añadir Entrada Personalizada

Edita /etc/grub.d/40_custom:
#!/bin/sh
exec tail -n +3 $0

menuentry "Memtest86+" {
    linux16 /boot/memtest86+.bin
}

menuentry "Sistema de Recuperación" {
    search --set=root --file /vmlinuz
    linux /vmlinuz root=/dev/sda1 ro single
    initrd /initrd.img
}
Luego:
sudo update-grub

Modo Recovery

El modo de recuperación permite reparar el sistema con acceso root.

Acceder al Modo Recovery

1

Menú de GRUB

En el arranque, selecciona “Advanced options”
2

Modo Recovery

Selecciona la entrada con “(recovery mode)”
3

Menú de Recuperación

Aparecerá un menú con opciones:
  • resume: Continuar arranque normal
  • clean: Limpiar espacio en disco
  • dpkg: Reparar paquetes
  • fsck: Verificar sistema de archivos
  • grub: Actualizar GRUB
  • network: Habilitar red
  • root: Shell de root
  • system-summary: Resumen del sistema

Tareas Comunes en Recovery

# En el shell de root
passwd usuario

# Remontar / en modo lectura-escritura si es necesario
mount -o remount,rw /
# Verificar y reparar
fsck -y /dev/sda1
# Habilitar red primero
# Luego en shell root:
mount -o remount,rw /
update-grub

Reinstalar GRUB

Desde Sistema Live

1

Identificar Particiones

sudo fdisk -l
# O
lsblk -f
2

Montar Sistema

sudo mount /dev/sda1 /mnt
sudo mount /dev/sda2 /mnt/boot  # si /boot está separado

# Para UEFI, montar ESP
sudo mount /dev/sda1 /mnt/boot/efi
3

Montar Sistemas Virtuales

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
4

Chroot

sudo chroot /mnt
5

Reinstalar GRUB

# Para BIOS
grub-install /dev/sda
update-grub

# Para UEFI
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
update-grub
6

Salir y Reiniciar

exit
sudo umount -R /mnt
sudo reboot

Próximos Pasos

BIOS/UEFI

Vuelve a la guía de firmware

Tareas

Practica con ejercicios

Build docs developers (and LLMs) love