Unitat 2 · Administració i Manteniment de Sistemes i Aplicacions (AMSA)
GRUB (GRand Unified Bootloader) és un gestor d’arrencada molt utilitzat en sistemes operatius Linux i altres sistemes Unix-like. La seva funció principal és carregar un kernel del sistema operatiu a la memòria i iniciar el procés d’arrencada.
El fitxer principal de configuració de GRUB2 és:
- /boot/grub/grub.cfg
(o /boot/grub2/grub.cfg
en algunes distribucions).
Important
No s’ha d’editar directament, ja que es regenera automàticament.
/etc/default/grub
: Opcions generals de configuració i variables d’entorn./etc/grub.d/
grub.cfg
:
00_header
→ configuració inicial10_linux
→ detecta kernels Linux30_os-prober
→ detecta altres SO40_custom
→ entrades personalitzadesUn cop modificats els fitxers anteriors, cal regenerar grub.cfg
:
/etc/default/grub
Variable | Descripció |
---|---|
GRUB_BACKGROUND |
Imatge de fons que es mostrarà al menú d’arrencada. |
GRUB_TIMEOUT |
Temps en segons abans de carregar l’entrada predeterminada. |
GRUB_DEFAULT |
Entrada per defecte que es carregarà (index o nom) |
GRUB_CMDLINE_LINUX |
Opcions de línia de comandes que es passen al nucli en arrencar el sistema. |
GRUB_DISABLE_RECOVERY |
Si true, desactiva les opcions de mode de recuperació. |
GRUB_DISABLE_OS_PROBER |
Si true, impedeix que GRUB busqui altres sistemes operatius instal·lats. |
GRUB_PRELOAD_MODULES |
Llista de mòduls GRUB que es carregaran abans de mostrar el menú d’arrencada. |
Paràmetre | Descripció |
---|---|
quiet |
Suprimeix els missatges del nucli durant l’arrencada. |
single |
Inicia el sistema en mode d’usuari únic (single-user mode) per a tasques de manteniment. |
nomodeset |
Desactiva la detecció de modes de vídeo, útil per a solucions de problemes amb gràfics. |
root= |
Especifica la partició arrel del sistema de fitxers. |
init= |
Especifica un fitxer d’init alternatiu. |
ro |
Muntatge de la partició arrel en mode de només lectura durant l’arrencada. |
rw |
Muntatge de la partició arrel en mode de lectura i escriptura durant l’arrencada. |
systemd.unit = |
Especifica el target de systemd a iniciar (ex: multi-user.target , graphical.target ). |
e
es poden passar paràmetres temporals al kernel.Secure Boot és una característica de seguretat del firmware UEFI que assegura que només es carregui i s’executi programari de confiança durant el procés d’arrencada del sistema.
Malgrat Secure Boot, s’han detectat vulnerabilitats que permeten carregar bootloaders no autoritzats en alguns dispositius (ArsTechnica, 2024).
El kernel és el nucli del sistema operatiu, responsable de gestionar els recursos del sistema, com la memòria, el processador, els dispositius d’entrada/sortida, la xarxa i els processos d’usuari.
El kernel es carrega a la memòria RAM durant el procés d’arrencada i es troba normalment a la partició arrel del sistema de fitxers (generalment en /boot).
El kernel és un programa binari que es compila específicament per a l’arquitectura de maquinari del sistema (per exemple, x86, ARM, etc.)
Pot ser personalitzat amb diferents mòduls i controladors segons les necessitats del sistema.
Per carregar el kernel, el bootloader necessita:
/boot
.L’Initramfs (Initial RAM Filesystem) és un petit sistema de fitxers integrat dins la imatge del nucli Linux.
tmpfs
), creant l’entorn mínim necessari per iniciar el kernel./init
/init
és l’entrypoint principal de l’initramfs./proc
, /sys
i /dev
./tmp
, /run
) per permetre que els scripts i utilitats funcionin./dev/sda1
o UUID=...
)./mnt/root
o similar).switch_root
)
init
del sistema complet (normalment /sbin/init
o systemd).make menuconfig
i es pot definir el contingut de l’initramfs amb un fitxer de configuració, s’utiltizen variables:
ls
, cp
, mount
, shell, etc.)./dev
conté dispositius com tty
o null
.Tots aquests elements es troben comprimits en un fitxer CPIO, descomprimits a RAM durant l’arrencada i executats per l’script /init
.
L’initramfs es pot personalitzar segons les necessitats del sistema, permetent afegir mòduls del kernel, scripts personalitzats o utilitats addicionals. La configuració depèn de la distribució:
initramfs-tools
(Debian) (I)/etc/initramfs-tools/modules
/etc/initramfs-tools/hooks/
/etc/initramfs-tools/conf.d/
/etc/initramfs-tools/initramfs.conf
/usr/share/initramfs-tools/
initramfs-tools
(Debian) (II)/etc/initramfs-tools/scripts/
init-top/
→ scripts executats just després de descomprimir l’initramfs i abans de muntar /proc
, /sys
i /dev
. Ideal per inicialitzar serveis crítics o preparar dispositius especials.init-bottom/
→ scripts executats just abans de fer switch_root
al sistema complet. Útil per passos finals com muntar la partició arrel, desbloquejar LUKS o activar LVM.local-bottom/
→ scripts addicionals definits per l’administrador.local-top/
→ scripts addicionals definits per l’administrador.initramfs-tools
(Debian) (II)premount/
→ scripts executats abans de muntar la partició arrel. Ideal per preparar dispositius o sistemes de fitxers especials.mount/
→ scripts executats durant el muntatge de la partició arrel. Útil per passos específics relacionats amb el muntatge.cleanup/
→ scripts executats després de fer switch_root
al sistema complet. Ideal per netejar recursos temporals o realitzar tasques posteriors a l’arrencada.dracut
(Fedora/Red Hat)/etc/dracut.conf
/etc/dracut.conf.d/
/usr/lib/dracut/modules.d/
/etc/dracut/modules.d/
/usr/share/dracut/
Un cas d’ús comú de l’initramfs és en sistemes amb particions xifrades amb LUKS que utilitzen una clau emmagatzemada en un dispositiu USB per desxifrar la partició arrel durant l’arrencada.
/proc
, /sys
).switch_root
.#!/bin/busybox sh
mount -t proc proc /proc
mount -t sysfs sys /sys
mount /dev/sdb1 /mnt
KEYFILE=/mnt/keyfile
cryptsetup luksOpen /dev/sda1 crypted --key-file $KEYFILE
echo "Retira el dispositiu USB i prem Enter per continuar."
read
vgchange -a y
mount /dev/mapper/vg-root /mnt
exec switch_root /mnt /sbin/init
Take Home Message
El procés d’arrencada és un procés complex. Els administradors de sistemes han de conèixer aquest procés per poder gestionar i solucionar problemes durant l’arrencada del sistema i garantir un sistema segur, estable i eficient.
Unitat 2 · Administració i Manteniment de Sistemes i Aplicacions (AMSA) 🏠