LILO: uno dei primi bootloaders per Linux

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.

LILO-LInux LOader

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.

Sezione GLOBAL SECTION:

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.

Sezione LINUX

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.

Sezione ALTRO SISTEMA OPERATIVO

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.

ALTRE OPZIONI (facoltative)

SICUREZZA

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.

VARIE

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

Conclusione:

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.

Libri utili:

  1. Amministrare Gnu/Linux – Quarta Edizione
  2. Linux Server per l’amministratore di rete. Per Ubuntu, CentOS e Fedora
  3. Linux. Guida pocket
  4. Imparare Linux in 5 giorni

Seguiteci anche su Facebook, Google Plus, Tumblr, Twitter e Telegram, per restare sempre in contatto con noi e con le nostre guide.



Cerca

Seguici

Live da Facebook
Live da Twitter
Seguici su Telegram
Canale InsiDevCode Telegram