Tema 1 / 10
LPIC-1 Examen 101

Arquitectura del Sistema

Determinar y configurar hardware, arranque del sistema y gestión de niveles de ejecución.

101.1 Determinar y configurar los ajustes de hardware

Activación de Dispositivos

BIOS se presenta al presionar una tecla durante el arranque (F1, F2, Esc...). Aquí podemos habilitar/deshabilitar periféricos integrados, activar protección básica contra errores y cambiar configuraciones como DMA y IRQ.

Inspección de dispositivos en Linux

Podemos identificar recursos de hardware de dos formas: usando comandos o leyendo archivos específicos.

Comandos:

  • lspci: Muestra los dispositivos conectados al bus PCI.
    Para más información: lspci -s 01:00.0 -v o lspci -s 04:02.0 -k (más detallado).
  • lsusb: Muestra los dispositivos USB.
    Opciones útiles: lsusb -v -d 0424:2514, lsusb -t (árbol). Requiere root.
  • lsmod: Muestra módulos cargados (Module, Size, Used by).
    Gestión: modprobe -r modulo (descargar), modprobe -p modulo (info).
    Configuración: Parámetros en /etc/modprobe.d/. Bloqueo en /etc/modprobe.d/blacklist.conf.

Archivos:

/proc
Info sistema/procesos
cpuinfo, interrupts, ioports, dma
/sys
Interacción Kernel/Hardware
/dev
Archivos de dispositivos
Gestionado por udev

Udev gestiona dispositivos (coldplugs/hotplugs) usando reglas en /etc/udev/rules.d/. acpid gestiona eventos de energía.

Dispositivos de almacenamiento

Nomenclatura de dispositivos de bloques:

/dev/hdX    # Canales IDE
/dev/fdX    # Disquetes
/dev/sdX    # SCSI/SATA
/dev/mmcblkXpy # Tarjetas SD
/dev/nvmeZnXpY # NVMe (Z=controlador, X=disco, Y=partición)

101.2 Arranque del Sistema

Para controlar un equipo, el núcleo (kernel) debe cargarse mediante un programa llamado bootloader, y este a su vez lo carga el firmware.

BIOS vs UEFI

BIOS (Legacy) UEFI
1. POST 1. POST
2. Activar componentes básicos 2. Activar componentes básicos
3. Carga la primera etapa del gestor de arranque desde MBR (primeros 512 bytes) 3. Lee las definiciones almacenadas en la NVRAM para ejecutar la aplicación definida
4. La primera etapa llama a la segunda etapa que carga el kernel 4. Si la app definida es un gestor de arranque, cargará el kernel

Detalles UEFI: No se basa en MBR. Usa partición ESP (EFI System Partition), admite Secure Boot y sistemas de archivos FAT12/16/32. Almacenado en GPT.

El Cargador de Arranque (GRUB 2)

Presiona Shift (BIOS) o Esc (UEFI) para invocar el menú. Parámetros del kernel comunes:

  • init: Establece un iniciador alternativo (ej. init=/bin/bash)
  • system.unit: Indica la unidad a usar por systemd
  • maxcpus: Cantidad de CPUs a usar
  • root: Establece en qué partición está raíz (root=/dev/sda2)
  • rootflags: Parámetros para el filesystem raíz
  • ro: Montaje de solo lectura para raíz
  • rw: Montaje de lectura y escritura para raíz

Para persistir cambios: editar /etc/default/grub en la línea GRUB_CMDLINE_LINUX y ejecutar grub-mkconfig o update-grub.

Archivos clave: /boot/grub/grub.cfg (configuración principal), /boot/grub/i386-pc/lvm.mod. Instalar en MBR: grub-install /dev/sdX.

Inicialización del sistema

El kernel abre initramfs (sistema de archivos raíz temporal comprimido), monta /etc/fstab y ejecuta el primer programa (init), que gestiona scripts y demonios.

Una vez cargado init, initramfs se elimina de la RAM. Init puede ser SysVinit, Systemd o Upstart (obsoleto).

En SysVinit, el primer programa es /sbin/init (PID 1). El nivel de ejecución se configura en /etc/inittab. Los scripts de arranque en /etc/rcX.d/ usan prefijos S (Start) y K (Kill).

Inspección de inicialización

Los mensajes del kernel se guardan en el kernel ring buffer (se pierden al apagar o con dmesg --clear).

  • dmesg: Muestra mensajes actuales.
  • journalctl --list-boots: Listará el número de arranques.
  • journalctl -b 0: Mensajes del inicio actual (-b 1 el anterior).
  • journalctl -D RUTA: Mensajes en /var/log/journal.

101.3 Cambiar los niveles de ejecución / objetivos de arranque y apagar o reiniciar el sistema

Estándar SysVinit

Proporciona estados de sistema llamados runlevels. El responsable es /sbin/init, que identifica el nivel en /etc/inittab y carga scripts en /etc/init.d/.

Sintaxis /etc/inittab: id:runlevels:action:process.

0
Apagado
1
Modo monousuario (Mantenimiento)
2, 3, 4
Modo multiusuario
5
Modo multiusuario gráfico
6
Reinicio

Acciones: boot, bootwait, sysinit, wait, respawn, ctrlaltdel.

Comandos: telinit q (recargar inittab), runlevel (ver nivel), telinit N (cambiar).

Systemd

Utiliza unidades. Tipos: service, socket, device, mount, automount, target, snapshot.

Comandos systemctl:

start/stop/restart unit.service
is-active unit.service
status unit.service
enable/disable unit.service
is-enabled unit.service

Control de Targets (equivalente a runlevels):

systemctl isolate graphical.target  # Cambiar modo
systemctl set-default graphical.target # Establecer por defecto

Nota: Systemd no utiliza /etc/fstab. Archivos de configuración en /lib/systemd/system. Listar: systemctl list-unit-files --type=tipo.

Upstart (Obsoleto)

Scripts en /etc/init/. Comandos: initctl list, start, status, stop.

Apagado y Reinicio

shutdown [option] time [message].

  • Opciones: -h (apagar), -r (reiniciar).
  • Tiempo: hh:mm, +m (minutos), now/+0.
  • Systemd: poweroff, reboot.
  • Mensajes: wall (enviar a todos los usuarios).