LILO (acronimo di LInux LOader) è stato uno dei primi – se non il primo – bootloader ideato per PC per la famiglia di sistemi operativi GNU/Linux. Ideato e concepito nei primi anni ’90, è stato poi sostituito nell’utilizzo corrente da altri programmi, come GRUB. In questo articolo andremo a esaminare il file di configurazione di tale programma.
Per invocare manualmente il prompt di LILO basterà premere (e tenere premuto) il tasto <ALT> o il tasto <SHIFT> prima che appaia il messaggio LILO. Quando appare il prompt, premendo il tasto <Tab> si ottiene la lista di tutte le scelte possibili.
Il file di configurazione di lilo è /etc/lilo.conf
. Ecco un esempio di come tale file potrebbe presentarsi:
#Global section
boot = /dev/hda
prompt timeout = 150
delay = 100
vga = normal
install = menu
lba32
read-only
root = /dev/hda1
default = linux
#Linux
image = /vmlinuz
label = linux
root = /dev/hda1
#Altro sistema operativo
other = /dev/hda2
label = Windows
table = /dev/hda
Esaminando le varie sezioni nel dettaglio, avremo quanto segue.
boot: l’istruzione permette di definire dove verrà installato il loader: sul settore di boot di una partizione o sul settore di boot del disco (il master boot record, MBR). Nel nostro caso mettiamo il loader su /dev/hda, cioè sul MBR del primo disco ide.
Per installare lilo nella partizione avremmo potuto usare /dev/hda1;
prompt: obbliga l’apparizione del prompt del programma (per inserimento parametri al kernel, scelta manuale S.O, ecc);
timeout: il sistema operativo di defaul partirà dopo definiti in decimi di secondi di inattività del prompte di lilo;
delay: indica quanti decimi si secondo LILO attenderà prima di avviarsi
vga: permette di settare la risoluzione del framebuffer (normal = no framebuffer);
install: mostra un loader solo testo (text), con menù (menu) o con immagine di sfondo (bmp);
lba32: alcuni vecchi bios non sono in grado di avviare un kernel collocato dopo il 1024 cilindro del disco, questa opzione permette di aggirare il problema;
read-only: lilo ordina al kernel di montare la partizione di root prima in read-only;
root: indica al kernel la partizione di root del sistema (quella montata come /);
default: label del sistema operativo che viene avviato di default.
image: path del file del kernel (di solito /boot/vmlinuz, /vmlinuz, /boot/vmlinuz-versione, /vmlinuz-versione);
label: etichetta del sistema operativo (da inserire nel prompt di boot) di solito una sola parola di non più di 15 caratteri;
root: partizione di root (montata come /) del sistema linux.
other: partizione di start di un sistema operativo diverso da linux;
label: vedi sopra;
table: indica il device per la tabella delle partizioni che deve andare nello pseudo MBR.
Normalmente LILO permette l’inserimento di comandi al suo prompt. Dal prompt possiamo scegliere, tra l’altro, il tipo di init (label_di_linux init=numero) o il file da usare come init (label_linux init=/path).
Quindi i comandi:
linux init=1
(che fa partire linux in single user mode, cioè con una shell di root (senza supporto di rete)
linux init=/bin/sh
(ha più o meno lo stesso effetto del precedente)
sono validi ma molto pericolosi poichè basta riavviare la macchina e inserirli al prompt di lilo per averne pieno possesso. Possiamo ovviare a questo problema facendo si che LILO richieda una password ogni qual volta vengano aggiunti dei parametri. Le istruzioni da inserire nella global section nel lilo.conf
sono due:
restricted: chiede la password solo se vengono passati parametri;
password: setta la password
Visto che la password sarà inserita in chiaro nel file è buona norma dare permessi di lettura e scrittura al file /etc/lilo.conf solo per il proprietario, cioè root, con il comando:
chmod 600 /etc/lilo.conf
per rafforzare la sicurezza possiamo settare il file come immutabile:
chattr +i /etc/lilo.conf
Sebbene tale misura possa sembrare inutile (si potrebbe anche utilizzare chattr -i /etc/lilo.conf
per modificare il file) ma ci protegge almeno dagli script che cercano di modificare direttamente il file di configurazione. Le opzioni restricted e password possono essere inserite anche nelle sezioni riguardanti i sistemi operativi. La sola opzione password richiede la password prima di avviare il kernel.
backup: file dove inserire il backup del settore di boot;
compact: fa si che lilo legga più settori in una volta in modo da avere un boot più veloce (utile per i dischetti di boot);
message: fa si che subito prima del prompt venga stampato un file (rigorosamente di testo);
append: rende possibile il trasferimento di parametri al kernel direttamente dal file di configurazione (append = \”parametri\”);
bitmap: setta l’immagine di sfondo (solo se install è uguale a bmp). L’immagine non può essere più grande di 640×480 pixel e non può avere più di 16 colori;
bmp-colors: setta i colori delle scritte che vengono stampate sopra l’immagine;
bumenu-title: da un titolo al menu (solo se install è uguale a menu);
menu-scheme: imposta i colori per il menù, un esempio nella schermata sottostante:
Fonti:
Wikipedia
Guida su tuttoirc.it
Piccolo how-to su pluto.it
Eccoci giunti alla fine del nostro cammino alla scoperta del bootloaderLILO (acronimo di LInux LOader) e di come si può personalizzare il menù, adesso la palla passa a voi. Nel mentre noi restiamo a vostra disposizione e non solo aspettiamo le vostre impressioni nei commenti qui sotto. Se avete già utilizzato e provato altri tool oppure altre strategie per personalizzare il menù del bootloader GRUB della vostra distro GNU/Linux, non esitate a segnalarcelo qui sotto.
Noi per il momento vi fermiamo qui e vi diamo appuntamento alla prossima puntata dedicata alle prossime guide dedicate al mondo GNU/Linux, mondo Ubuntu, mondo Fedora, mondo Debian e non solo. Come al solito aspettiamo le vostre impressioni nei commenti qui sotto.
Seguiteci anche su Facebook, Google Plus, Tumblr, Twitter e Telegram, per restare sempre in contatto con noi e con le nostre guide.
Utente ed appassionato di GNU/Linux nonchè collaboratore occasionale di insidevcode.eu, realizza principalmente guide e articoli per il sito rivolti agli utenti che vogliano approfondire la conoscenza di vari aspetti della citata famiglia di sistemi operativi, ed all’informatica in generale.