Table of Contents

Processo di avvio (esercitazione)

Parte prima (lost in the bootprocess)

Testo

Siete soli, di fronte a voi un pc, nel pc una macchina virtuale CentOS 7, contrassegnata con il nome di bootprocess. Non vi ricordate nulla di cio' che che e' accaduto prima, sapete solo una cosa: la vostra sopravvivenza e quella di tutta l'umanita' dipende dal fatto che riusciate ad avviare la VM, inserire username e password ed eseguire il login come utente root. Avete 30 minuti per completare la prova.

Traccia:

Il comando ls mostra i device disponibili con i relativi UUID e LABEL. Nella prima partizione del primo disco si tovano il kernel e l'initramfs.

Eseguite il comando linux16 seguito dal percorso relativo al kernel e dal parametro root=LABEL=<label della partizione di root>. Dalla label capirete qual'e' la partizione di root.

Eseguite il comando initrd16 seguito dal percorso relativo all'initramfs

Aiutatevi con il TAB per l'autocompletamento dei comandi

Eseguite il comando boot per partire

Il sistema non vi presentera' la prompt di login. Dovrete riavviare in rescue mode (aggiungete il parametro systemd.unit=rescue.target).

Ricordate che per modificare la password di root dovete usare il boot in modalita' rd.break, montare /sysroot in write mode, eseguire un chroot su /sysroot ed eseguire il comando passwd

Parte Seconda (The Hero's Return)

Testo

Dopo l'impegnativa prova di rescue della VM, e' il momento di godersela. E allora vediamo come possiamo giocare con Dracut e GRUB2, creando initramfs, moduli e menu di avvio personalizzati.

Traccia:

Create la directory /usr/lib/dracut/modules.d/99banner/. Provate a capire qual'e' la struttura dei file module-setup.sh dagli altri moduli presenti. In ogni caso dentro la directory /root/newmodule/ ne trovate uno gia' pronto.

Il comando per stampare un bannet ascii e' figlet -f /usr/share/figlet/big.flf testo_banner, provatelo sulla shell. Lo script dovra' leggere dal parametro che passerete al kernel il testo del banner. Lo trovate nella directory /root/newmodule/. Analizzatelo per capire quello che esegue e copiatelo nella directory del modulo.

Eseguite un

dracut --list-modules 

per verificare che il modulo banner sia disponibile. Create l'initramfs modificata eseguendo

dracut --add banner -f /boot/initramfs-infnbanner.img 

Verificate con il comando lsinitrd /boot/initramfs-infnbanner.img |grep -e usr/bin/figlet -e usr/share/figlet/big.flf -e 99-banner.sh che i file del nuovo modulo siano presenti.

Nel file /etc/grub.d/40_custom create un nuovo menu aggiungendo al kernel il parametro infnbanner e rimuovendo i parametri quiet e rhgb. Avviate selezionando la nuova voce di menu.