2.1.7 LILO

LILO15 (LInux LOader) è un boot loader utilizzato da molte delle distribuzioni per il caricamento del sistema GNU/Linux. Esso si compone di alcuni file presenti nella directory /boot, dal file eseguibile lilo e dal file di configurazione /etc/lilo.conf. La directory /boot contiene i file utilizzati per l’avvio del sistema (possono esservi file sia per GNU/Linux che per altri sistemi operativi)

LILO permette di scegliere il sistema da avviare per mezzo di un prompt

 
boot: _  
o per mezzo di un’interfaccia grafica, di cui un esempio è riportato nella fig. 2.5.


pict
Figura 2.5: Esempio del menù di avvio di LILO.

Per avviare del sistema operativo vengono utilizzate le indicazioni presenti nel file di configurazione /etc/lilo.conf, opportunamente codificate per mezzo del comando lilo (man page lilo(8)), detto anche map installer, che inserisce/aggiorna il MBP di LILO nel MBR ed aggiorna il file map. Il MBP precedente viene archiviato, se non è già presente, in un file boot.number, dove number è il valore esadecimale corrispondente al dispositivo che lo contiene. Analogamente, nel caso in cui LILO modifichi la partition table, quella precedente viene archiviata nel file (a meno che esso non esista già) part.number.

____________________________________________________________________

Comando: lilo
Path: /sbin/lilo

SINTASSI  
# lilo [option]  
DESCRIZIONE

____________________________________________________________________

Quando

L’indicazione dei dischi e delle partizioni utilizzata nel file di configurazione di LILO avviene secondo la sintassi utilizzata da GNU/Linux: quindi /dev/hda è il primo hard disk ATA, /dev/hdb il secondo, ... /dev/hda1 la prima partizione del primo hard disk ATA, /dev/hda2 la seconda partizione del primo hard disk ATA, ... (v. sez. 4.3).

Di seguito è riportato un esempio del file /etc/lilo.conf.

# Parte generale
boot=/dev/hda
prompt
default="GNU/Linux"
timeout=50
# Caricamento di Linux
image=/boot/vmlinuz
label="GNU/Linux"
root=/dev/hda2
read-only
# Caricamento di Windows (boot-loader)
other=/dev/hda1
label="Windows"
table=/dev/hda
                                                                        
                                                                        
Segue una breve spiegazione delle direttive contenute nell’esempio. Al prompt, oltre ad indicare l’etichetta relativa al sistema da avviare, è possibile specificare i parametri da passare al kernel separati tra loro da uno spazio: ad esempio, volendo avviare il sistema contraddistinto dall’etichetta “GNU/Linux” con i parametri root=/dev/hdb2, ro e reboot=c, sarà sufficiente digitare al prompt di avvio

 
boot: GNU/Linux root=/dev/hdb2 ro reboot=c  
Poiché LILO non gestisce alcun tipo di filesystem, esso si basa sul contenuto del file map (creato da lilo) che contiene gli indirizzamenti fisici dei file necessari all’avvio del sistema. Pertanto, ogni volta che uno dei componenti di LILO, incluso il file di configurazione, viene cambiato, o viene modificato il file immagine del kernel, deve essere necessariamente lanciato in esecuzione il programma lilo, che, oltre a provvedere a controllare la correttezza del file di configurazione, elabora il contenuto dei file suddetti ed inserisce le relative informazioni, opportunamente codificate, nei file boot.p e map.

Durante il processo di avvio di LILO vengono visualizzate sullo schermo, una di seguito all’altra, le lettere che compongono la stringa LILO. È così possibile, nel caso in cui vi siano dei problmi durante l’avvio, avere un’idea a cosa essi si riferiscono. Infatti, il primo carattere ‘L’ viene visualizzato prima che il MBP carichi lo SBP, il carattere ‘I’ viene visualizzato subito prima dell’avvio dello SBP, il secondo carattere ‘L’ viene visualizzato all’avvio dello SBP e dil carattere ‘O’ viene visualizzato dopo aver caricato la riga di comando di default e l’elenco dei descrittori dei sistemi operativi da caricare. Nel caso in cui venissero incontrati dei problemi durante queste fasi, vengono visualizzati i relativi codici.

Anche con LILO, è possibile utilizzare la tecnica del disk swapping per avviare alcuni sistemi operativi che siano installati su un hard disk diverso dal primo, per mezzo delle direttive map-drive e to, come riportato di seguito

 
map-drive = 0x80
to = 0x81
map-drive = 0x81
to = 0x80