Ejercicios: Arranque del Sistema (101.2)
Preguntas tipo examen LPIC-1 sobre el proceso de arranque del sistema Linux. Intenta responder cada pregunta antes de revelar la respuesta.
Pregunta 1: Secuencia de arranque
Ordena correctamente la secuencia de arranque de un sistema Linux:
a) Kernel -> BIOS -> GRUB2 -> initramfs -> systemd b) BIOS/UEFI -> POST -> MBR/GPT -> GRUB2 -> Kernel -> initramfs -> systemd c) POST -> BIOS -> Kernel -> GRUB2 -> initramfs -> systemd d) BIOS/UEFI -> GRUB2 -> MBR -> Kernel -> systemd -> initramfs
Respuesta
b) BIOS/UEFI -> POST -> MBR/GPT -> GRUB2 -> Kernel -> initramfs -> systemd
La secuencia correcta es:
- El firmware BIOS/UEFI se activa al encender el equipo.
- Se ejecuta el POST (Power-On Self-Test) para verificar el hardware.
- Se lee el MBR (en BIOS) o la particion GPT/ESP (en UEFI) para localizar el bootloader.
- GRUB2 (bootloader) se carga y presenta el menu de arranque.
- El Kernel se descomprime y se carga en memoria.
- initramfs proporciona un sistema de archivos temporal para montar el root real.
- systemd (o init) se ejecuta como PID 1 e inicia los servicios del sistema.
Pregunta 2: Configuracion de GRUB2
Un administrador necesita cambiar el tiempo de espera del menu de GRUB2 de 5 a 10 segundos. Cual es el procedimiento correcto?
a) Editar directamente /boot/grub/grub.cfg y cambiar el valor del timeout
b) Editar /etc/default/grub, cambiar GRUB_TIMEOUT=10 y ejecutar update-grub
c) Ejecutar grub-install --timeout=10
d) Editar /etc/grub.d/00_header y cambiar el timeout
Respuesta
b) Editar /etc/default/grub, cambiar GRUB_TIMEOUT=10 y ejecutar update-grub
El procedimiento correcto es:
- Editar el archivo
/etc/default/gruby modificar la lineaGRUB_TIMEOUT=10. - Ejecutar
grub-mkconfig -o /boot/grub/grub.cfg(oupdate-gruben Debian/Ubuntu) para regenerar la configuracion.
Nunca se debe editar /boot/grub/grub.cfg directamente, ya que este archivo se genera automaticamente y los cambios se perderian al regenerarlo. La opcion (a) es incorrecta por esta razon. La opcion (c) es incorrecta porque grub-install se usa para instalar GRUB en un disco, no para configurar opciones. La opcion (d) no es el metodo recomendado.
Pregunta 3: initramfs
Cual es el proposito principal de initramfs durante el arranque?
a) Proporcionar una interfaz grafica durante el arranque b) Almacenar los archivos de configuracion de GRUB2 c) Proporcionar un sistema de archivos raiz temporal con los modulos necesarios para montar el sistema de archivos raiz real d) Realizar las pruebas POST del hardware
Respuesta
c) Proporcionar un sistema de archivos raiz temporal con los modulos necesarios para montar el sistema de archivos raiz real
initramfs (Initial RAM Filesystem) es un archivo comprimido (formato cpio) que contiene un mini sistema de archivos. Se carga en la RAM durante el arranque y proporciona:
- Modulos del kernel necesarios para acceder al disco (controladores SCSI, SATA, NVMe, etc.)
- Herramientas para montar sistemas de archivos especiales (LVM, RAID, LUKS/cifrado)
- Scripts de inicializacion que preparan el montaje del sistema de archivos raiz definitivo
Una vez montado el sistema raiz real, el initramfs se descarta de la memoria.
Pregunta 4: dmesg vs journalctl
Cual de las siguientes afirmaciones sobre dmesg y journalctl es correcta?
a) dmesg muestra los logs de todos los servicios del sistema, mientras que journalctl solo muestra mensajes del kernel
b) journalctl -k es equivalente a dmesg ya que ambos muestran mensajes del kernel
c) dmesg almacena logs de forma persistente, mientras que journalctl los pierde al reiniciar
d) journalctl solo funciona en sistemas con SysVinit
Respuesta
b) journalctl -k es equivalente a dmesg ya que ambos muestran mensajes del kernel
Explicacion:
dmesgmuestra solo los mensajes del buffer del anillo (ring buffer) del kernel. Este buffer tiene un tamano fijo y los mensajes antiguos se van sobrescribiendo.journalctlmuestra los logs del journal de systemd, que incluyen mensajes del kernel y de todos los servicios del sistema.journalctl -k(ojournalctl --dmesg) filtra para mostrar solo mensajes del kernel, haciendo que sea funcionalmente equivalente admesg.journalctles una herramienta de systemd, no de SysVinit (opcion d incorrecta).dmesgno almacena logs de forma persistente; es un buffer en memoria (opcion c incorrecta).
Pregunta 5: Parametros del kernel
Un administrador necesita arrancar el sistema en modo monousuario para realizar tareas de mantenimiento. Cual de los siguientes parametros del kernel puede usar en la linea de GRUB2?
a) runlevel=1
b) mode=single
c) single
d) maintenance
Respuesta
c) single
Para arrancar en modo monousuario (single-user mode), se pueden usar los siguientes parametros del kernel:
singles1systemd.unit=rescue.target(en sistemas con systemd)
El modo monousuario proporciona un shell de root con servicios minimos, util para tareas de mantenimiento como reparacion del sistema de archivos, cambio de contrasenas de root, etc. Las opciones (a), (b) y (d) no son parametros validos del kernel de Linux.
Pregunta 6: Ubicacion de logs de arranque
En un sistema Red Hat/CentOS, cual de los siguientes archivos contiene mensajes generales del sistema, incluyendo informacion de arranque?
a) /var/log/syslog
b) /var/log/messages
c) /var/log/boot.cfg
d) /var/log/grub.log
Respuesta
b) /var/log/messages
Archivos de log segun la distribucion:
- Red Hat/CentOS/SUSE: Usan
/var/log/messagescomo log general del sistema. - Debian/Ubuntu: Usan
/var/log/syslogcomo log general del sistema.
Otros archivos de log de arranque importantes:
/var/log/boot.log- Mensajes especificos del arranque./var/log/dmesg- Copia del buffer de dmesg capturada durante el arranque.
La opcion (a) es el equivalente en Debian/Ubuntu, no en Red Hat. Las opciones (c) y (d) no existen como archivos estandar del sistema.
Pregunta 7: BIOS vs UEFI
Cual de las siguientes afirmaciones describe correctamente una diferencia entre BIOS+MBR y UEFI+GPT?
a) MBR soporta discos de hasta 8 TB, mientras que GPT soporta hasta 2 TB b) UEFI lee el bootloader directamente desde la particion ESP, mientras que BIOS lee los primeros 512 bytes del disco (MBR) c) BIOS soporta Secure Boot, pero UEFI no d) GPT permite un maximo de 4 particiones primarias, mientras que MBR permite 128
Respuesta
b) UEFI lee el bootloader directamente desde la particion ESP, mientras que BIOS lee los primeros 512 bytes del disco (MBR)
Diferencias clave:
- BIOS + MBR: Lee los primeros 512 bytes del disco (MBR), que contienen el codigo de arranque inicial. Limite de disco de 2 TB y maximo 4 particiones primarias.
- UEFI + GPT: Lee directamente archivos
.efidesde la particion ESP (EFI System Partition, formateada en FAT32). Sin limite practico de tamano de disco y soporta hasta 128 particiones. - Secure Boot es una caracteristica de UEFI, no de BIOS.
Las opciones (a), (c) y (d) tienen los valores invertidos o son incorrectas.
Pregunta 8: Generar initramfs
En un sistema Debian/Ubuntu, cual es el comando correcto para regenerar la imagen initramfs del kernel actual?
a) dracut --force
b) mkinitrd /boot/initrd.img $(uname -r)
c) update-initramfs -u
d) grub-mkconfig -o /boot/initrd.img
Respuesta
c) update-initramfs -u
Las herramientas para generar initramfs dependen de la distribucion:
- Debian/Ubuntu:
mkinitramfsoupdate-initramfsupdate-initramfs -uactualiza la imagen del kernel actualupdate-initramfs -c -k versioncrea una nueva imagen
- Red Hat/CentOS/Fedora (moderno):
dracutdracut --forceregenera la imagen
- Red Hat/CentOS (antiguo):
mkinitrd
La opcion (a) es para Red Hat, no Debian. La opcion (b) usa mkinitrd, que es la herramienta antigua de Red Hat. La opcion (d) es incorrecta porque grub-mkconfig genera la configuracion de GRUB, no la imagen initramfs.
Pregunta 9: Opciones de /etc/default/grub
Cual de las siguientes lineas en /etc/default/grub agrega los parametros “quiet” y “splash” a la linea de arranque del kernel?
a) GRUB_KERNEL_PARAMS="quiet splash"
b) GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
c) GRUB_BOOT_PARAMS="quiet splash"
d) GRUB_OPTIONS="quiet splash"
Respuesta
b) GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Opciones de linea de comandos del kernel en /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT: Parametros que se agregan solo a la entrada de arranque por defecto (no a la entrada de recovery/recuperacion). Es la opcion mas comun para parametros comoquiet splash.GRUB_CMDLINE_LINUX: Parametros que se agregan a todas las entradas de arranque (incluyendo recovery).
Las opciones (a), (c) y (d) no son variables validas de /etc/default/grub.
Despues de cualquier cambio en este archivo, se debe ejecutar grub-mkconfig -o /boot/grub/grub.cfg o update-grub para aplicar los cambios.
Pregunta 10: Logs del arranque anterior
Un administrador necesita revisar los logs del arranque anterior del sistema porque hubo un fallo. Que comando debe usar?
a) dmesg -b -1
b) journalctl -b -1
c) cat /var/log/boot.log.1
d) systemctl --boot=-1
Respuesta
b) journalctl -b -1
El comando journalctl -b -1 muestra los logs del arranque anterior al actual:
-bindica que se quiere filtrar por arranque.-1indica el arranque anterior (0 = actual, -1 = anterior, -2 = dos arranques atras, etc.).journalctl --list-bootsmuestra una lista de todos los arranques registrados.
Requisito: Para que los logs de arranques anteriores esten disponibles, el journal de systemd debe estar configurado con almacenamiento persistente. Esto requiere que exista el directorio /var/log/journal/ o que la configuracion en /etc/systemd/journald.conf tenga Storage=persistent.
La opcion (a) es incorrecta porque dmesg no tiene la opcion -b -1. La opcion (c) podria funcionar si el archivo rotado existe, pero no es el metodo estandar. La opcion (d) no es un comando valido.
Pregunta 11
Cual es la funcion principal del POST (Power-On Self-Test) durante la secuencia de arranque?
a) Cargar el kernel de Linux en memoria b) Verificar la integridad del hardware basico como CPU, RAM y controladores de disco c) Montar el sistema de archivos raiz d) Iniciar el gestor de arranque GRUB2
Respuesta
b) Verificar la integridad del hardware basico como CPU, RAM y controladores de disco
El POST es una serie de pruebas de diagnostico que ejecuta el firmware (BIOS o UEFI) inmediatamente al encender el equipo. Verifica que la CPU, la memoria RAM, los controladores de disco y otros componentes esenciales funcionan correctamente. Si el POST falla, el sistema emite pitidos o muestra codigos de error y se detiene antes de intentar cargar el sistema operativo.
Pregunta 12
En un sistema con BIOS, cual es el tamano total del MBR (Master Boot Record) y que contiene?
a) 1024 bytes: codigo de arranque y tabla GPT b) 512 bytes: codigo de arranque (446 bytes), tabla de particiones (64 bytes) y firma (2 bytes) c) 256 bytes: solo el codigo del bootloader d) 4096 bytes: codigo de arranque, tabla de particiones y copia de seguridad
Respuesta
b) 512 bytes: codigo de arranque (446 bytes), tabla de particiones (64 bytes) y firma (2 bytes)
El MBR ocupa los primeros 512 bytes del disco y se divide en tres partes: el codigo de arranque (bootstrap code) de 446 bytes que contiene la primera etapa del bootloader, la tabla de particiones de 64 bytes que permite un maximo de 4 particiones primarias (4 entradas de 16 bytes), y la firma de arranque de 2 bytes (0x55AA) que indica al firmware que el disco es arrancable.
Pregunta 13
Que parametro del kernel se usa para arrancar directamente en un shell bash, sin pasar por init o systemd?
a) single b) init=/bin/bash c) systemd.unit=emergency.target d) rescue
Respuesta
b) init=/bin/bash
El parametro init=/bin/bash indica al kernel que ejecute /bin/bash como proceso PID 1 en lugar del proceso init normal (systemd o SysVinit). Esto proporciona un shell de root directo sin ningun servicio del sistema, util para tareas de rescate avanzadas como cambiar la contrasena de root. single y rescue arrancan en modo monousuario con servicios minimos, y emergency.target inicia un shell con el sistema de archivos raiz montado como solo lectura.
Pregunta 14
Cual es la diferencia tecnica principal entre initrd e initramfs?
a) initrd usa formato cpio y initramfs usa imagen de disco b) initramfs es un archivo cpio comprimido que se extrae en tmpfs, mientras que initrd es una imagen de disco que se monta como dispositivo de bloque c) initrd es mas moderno que initramfs d) No hay diferencia tecnica, solo cambia el nombre segun la distribucion
Respuesta
b) initramfs es un archivo cpio comprimido que se extrae en tmpfs, mientras que initrd es una imagen de disco que se monta como dispositivo de bloque
initrd (Initial RAM Disk) es una imagen de disco comprimida que requiere un controlador de sistema de archivos para montarse como dispositivo de bloque. initramfs (Initial RAM Filesystem) es un archivo cpio comprimido que se extrae directamente en ramfs/tmpfs, siendo mas eficiente y la tecnologia estandar desde el kernel 2.6. Aunque tecnicamente son diferentes, los archivos en /boot/ suelen llamarse initrd.img-* por convencion historica.
Pregunta 15
Que herramienta se utiliza en distribuciones Red Hat/CentOS/Fedora modernas para generar la imagen initramfs?
a) mkinitramfs b) update-initramfs c) dracut d) mkinitrd
Respuesta
c) dracut
dracut es la herramienta moderna para generar imagenes initramfs en distribuciones basadas en Red Hat (CentOS, Fedora, RHEL). mkinitrd es la herramienta antigua de Red Hat que ha sido reemplazada por dracut. mkinitramfs y update-initramfs son herramientas especificas de Debian/Ubuntu. El comando dracut --force regenera la imagen del kernel actual.
Pregunta 16
Que caracteristica tiene el kernel ring buffer (buffer de anillo del kernel)?
a) Almacena los mensajes del kernel de forma permanente en disco b) Tiene tamano ilimitado y nunca pierde mensajes c) Es un buffer circular de tamano fijo donde los mensajes antiguos se sobrescriben con los nuevos d) Solo registra mensajes de error, no informacion general
Respuesta
c) Es un buffer circular de tamano fijo donde los mensajes antiguos se sobrescriben con los nuevos
El kernel ring buffer es un area de memoria de tamano fijo donde el kernel almacena sus mensajes de registro. Al ser circular, cuando se llena, los mensajes mas antiguos se sobrescriben con los nuevos. Por este motivo, los mensajes de arranque se van perdiendo con el tiempo. El contenido se pierde al reiniciar y se puede consultar con el comando dmesg. Su tamano se puede configurar con el parametro del kernel log_buf_len.
Pregunta 17
En que archivo de configuracion se establece la persistencia de los logs de journalctl?
a) /etc/systemd/system.conf b) /etc/systemd/journald.conf c) /var/log/journal.conf d) /etc/journal/persistent.conf
Respuesta
b) /etc/systemd/journald.conf
Para hacer persistentes los logs de journalctl se configura Storage=persistent en /etc/systemd/journald.conf. Tambien se debe crear el directorio /var/log/journal/ si no existe. Por defecto, en muchas distribuciones los logs de journalctl no son persistentes y se pierden al reiniciar. Despues de modificar la configuracion, se reinicia el servicio con systemctl restart systemd-journald.
Pregunta 18
Que comando de dmesg permite filtrar y mostrar solo los mensajes del kernel con nivel de error?
a) dmesg -e b) dmesg —level=err c) dmesg —errors d) dmesg -f err
Respuesta
b) dmesg —level=err
La opcion --level de dmesg permite filtrar mensajes por nivel de gravedad. dmesg --level=err muestra solo los mensajes de error. Se pueden combinar niveles, por ejemplo dmesg --level=err,warn para ver errores y advertencias. Otras opciones utiles son -T para marcas de tiempo legibles, -H para formato humano con colores, y -w para seguir nuevos mensajes en tiempo real.
Pregunta 19
Cual de los siguientes NO es un sistema de inicio (init system) que haya sido utilizado en distribuciones Linux?
a) SysVinit b) Upstart c) systemd d) bootctl
Respuesta
d) bootctl
bootctl no es un sistema de inicio sino una herramienta para gestionar el bootloader systemd-boot. Los tres sistemas de inicio principales en la historia de Linux son: SysVinit (clasico, basado en runlevels, inicio secuencial), Upstart (desarrollado por Canonical para Ubuntu, basado en eventos) y systemd (moderno, inicio en paralelo, usado por la mayoria de distribuciones actuales). Upstart fue sustituido por systemd en Ubuntu 15.04.
Pregunta 20
Que opcion del comando journalctl muestra solo los mensajes del kernel, de forma equivalente a dmesg?
a) journalctl —kernel b) journalctl -b c) journalctl -k d) journalctl —dmesg-only
Respuesta
c) journalctl -k
La opcion -k (o --dmesg) de journalctl filtra para mostrar unicamente los mensajes del kernel, haciendo que sea funcionalmente equivalente a dmesg. Se puede combinar con -b para ver solo los mensajes del kernel del arranque actual: journalctl -k -b. La opcion -b sola muestra todos los logs del arranque actual (kernel y servicios).
Pregunta 21
Que comando se utiliza en Debian/Ubuntu para regenerar el archivo de configuracion de GRUB2?
Respuesta
update-grub
update-grub es un wrapper disponible en Debian/Ubuntu que equivale a ejecutar grub-mkconfig -o /boot/grub/grub.cfg. Regenera el archivo grub.cfg a partir de la configuracion en /etc/default/grub y los scripts en /etc/grub.d/. Se debe ejecutar cada vez que se modifica la configuracion de GRUB.
Pregunta 22
Que comando muestra los mensajes almacenados en el kernel ring buffer?
Respuesta
dmesg
dmesg muestra los mensajes del kernel ring buffer, que incluyen mensajes de arranque, deteccion de hardware, carga de modulos y errores del kernel. Se puede usar con -T para marcas de tiempo legibles, --level=err para filtrar por nivel, y -w para seguir mensajes en tiempo real.
Pregunta 23
Que comando de journalctl se usa para ver los logs del arranque actual del sistema?
Respuesta
journalctl -b
journalctl -b muestra los logs del arranque actual. Se puede especificar arranques anteriores con -b -1 (anterior), -b -2 (dos arranques atras), etc. Para listar todos los arranques registrados se usa journalctl --list-boots. Requiere que los logs sean persistentes para ver arranques anteriores.
Pregunta 24
Que comando se usa en Debian/Ubuntu para actualizar la imagen initramfs del kernel actual?
Respuesta
update-initramfs -u
update-initramfs -u actualiza la imagen initramfs existente para el kernel en ejecucion. La opcion -u significa update. Para crear una nueva imagen se usa -c con -k version. En Red Hat/CentOS/Fedora moderno se usa dracut en su lugar.
Pregunta 25
Que comando permite instalar GRUB2 en el MBR del disco /dev/sda?
Respuesta
grub-install /dev/sda
grub-install /dev/sda instala el cargador de arranque GRUB2 en el MBR del disco especificado. En distribuciones Red Hat/CentOS se usa grub2-install. Para sistemas UEFI se requieren parametros adicionales: grub-install --target=x86_64-efi --efi-directory=/boot/efi.