Personalitzar la initramfs
En aquesta secció, personalitzarem la initramfs afegint un missatge personalitzat que es mostrarà durant el procés d'inici. Això ens permetrà veure com podem modificar la initramfs per incloure scripts i binaris addicionals que es poden executar durant l'arrencada del sistema.
Nota:
Realitzeu les accions següents com a superusuari
su -
.
-
Crea un nou directori per construir la initramfs personalitzada:
mkdir /tmp/initramfs cd /tmp/initramfs
Això crea un espai de treball temporal on es construirà la nova imatge de la initramfs.
-
Extreu la imatge actual de la initramfs:
unmkinitramfs /boot/initrd.img-$(uname -r) .
ℹ️ Nota:
unmkinitramfs
és una eina que permet descomprimir la imatge de la initramfs a un directori de treball. Això permet modificar els fitxers continguts en la initramfs.
Compte!: Es possible que al descomprimir la imatge us generi dos carpetes
main
istable
. En aquest cas, heu de treballar amb la carpetamain
. Cerqueu dins demain
la carpetascripts
i dins d'aquesta la carpetainit-top
. Aquesta és la carpeta on s'executen els scripts durant l'arrencada de la initramfs. -
Crea un nou fitxer de script amb un missatge personalitzat:
echo 'echo "Hola, Initramfs!"' > scripts/init-top/custom_message.sh # Afegeix una pausa per veure el missatge echo '/usr/bin/sleep 10' >> scripts/init-top/custom_message.sh # Atorga permisos d'execució al script chmod +x scripts/init-top/custom_message.sh
-
Actualitza el manifest de la initramfs:
# Nota: order no existeix, és ORDER amb majúscules echo 'scripts/init-top/custom_message.sh' >> scripts/init-top/ORDER
Això afegeix el nou script al manifest de la initramfs, assegurant-se que s'executi durant el procés d'inici.
-
Crea una nova imatge de la initramfs amb el script personalitzat:
Realitzeu una de les següents opcions:
- Nova imatge de la initramfs (nom acaba en custom):
find . | cpio -o -H newc | gzip > /boot/initrd.img-$(uname -r)-custom
- Sobreescriure la imatge original:
find . | cpio -o -H newc | gzip > /boot/initrd.img-$(uname -r)
ℹ️ Nota:
Aquest pas utilitza
cpio
per empaquetar tots els fitxers del directori de treball en un sol arxiu, igzip
per comprimir-lo. La nova imatge es guarda a/boot
amb un nom personalitzat. Si voleu sobreescriure la imatge original, podeu utilitzar el nominitrd.img-$(uname -r)
. Si feu anar custom, al grub també cal indicar-ho. -
Actualitza la configuració de GRUB per utilitzar la nova imatge de la initramfs:
Com editarem la initramfs de forma temporal, no actualitzarem la configuració de GRUB de forma permanent. Per tant, no ens calen aquests passos.
update-initramfs -u -k $(uname -r) update-grub
ℹ️ Nota:
Per fer l'experiment no actualizarem el grub de forma permanent. Simplement, editarem la configuració de GRUB durant l'arrencada per utilitzar la nova imatge de la initramfs.
-
Reinicia el sistema: Reinicia el sistema per aplicar els canvis.
reboot
-
GRUB: A l'arrencada, accedeix a la configuració de GRUB i modifica la línia de comandament per utilitzar la nova imatge de la initramfs. Recorda prement la tecla
e
per editar la configuració de GRUB.# Elimina les opcions `quiet` i `splash` per veure el missatge personalitzat # Afegeix custom al final de la línia de comandament de la initramfs initrd /boot/initrd.img-$(uname -r)-custom
-
Comprova el missatge personalitzat durant l'arrencada: Després de reiniciar el sistema, observa el missatge personalitzat que s'ha afegit a la initramfs durant el procés d'inici.
Activitat opcional
- Quin seria el procediment si volem modificar de forma permanent la initramfs de la primera entrada de GRUB? Documenteu el procediment. Aquesta activitat comptarà únicament a la primera persona que faci un PR amb la resposta correcta. No compte a HandsOn, això es part de la millora dels continguts (un dels punts extres de la nota final).