User Tools

Site Tools


cn:ccr:formazione:centos7:2018-11:avvio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cn:ccr:formazione:centos7:2018-11:avvio [2018/11/27 13:21] corosu@infn.itcn:ccr:formazione:centos7:2018-11:avvio [2018/11/27 13:23] (current) – [Testo] corosu@infn.it
Line 1: Line 1:
 +====== 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:
 +
 +  * **utilizzate i comandi di grub per capire il layout delle partizioni ed i relativi UUID e LABEL**
 +
 +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. 
 +
 +  * **cercate, sempre via grub, il percorso del kernel e dell'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
 +
 +  * **avviate il sistema**
 +
 +Eseguite il comando boot per partire 
 +
 +  * **Se il sistema non si avvia, utilizzate le modalita' di emergenza per riparare cio' che non funziona**
 +
 +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:
 +
 +  * **Creare un modulo di Dracut che stampi un banner durante l'esecuzione dell'initramfs. Il testo del banner dovra' essere acquisito da un parametro passato al kernel nel menu di GRUB2**
 +
 +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. 
 +
 +  * Creare un initramfs che comprenda il modulo banner
 +
 +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.
 +
 +  * Modificare il file di configurazione di GRUB2 aggiungendo una voce di menu che avvii la nuova initramfs
 +
 +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.
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki