2.1.7 LILO
LILO
(LInux LOader) è un boot loader utilizzato da molte delle distribuzioni per il caricamento del
sistema GNU/Linux.
LILO si compone dei 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. Qui vi possono essere file sia per GNU/Linux che per altri sistemi operativi. Contiene
almeno i seguenti file:
-
boot.b file che contiene il boot sector di LILO;
-
map map file (creato da LILO) contenente il nome del file immagine del kernel e
del suo path (può fare riferimento anche a più di un kernel);
-
vmlinuz (o simile) il kernel di GNU/Linux.
LILO è in grado di visualizzare un elenco di sistemi avviabili (presenti sulla macchina) e di
avviare quello selezionato. Per far ciò vengono utilizzate le indicazioni presenti nel file di
configurazione /etc/lilo.conf, opportunamente codificate per mezzo del comando lilo
(man page lilo(8)), che installa/aggiorna LILO sul MBR.
____________________________________________________________________
Comando: lilo
Path: /sbin/lilo
SINTASSI
# lilo [option]
DESCRIZIONE
-
option indica la modalità di funzionamento di lilo. Può assumere i seguenti valori:
-
-v incrementa il livello di verbosità (può essere specificata più volte);
-
-q elenca i file dei kernel ed il loro path;
-
-m map_file
indica di utilizzare il map file specificato da map_file al posto di quello
di default /boot/map;
-
-C config_file
indica di utilizzare il file di configurazione specificato da config_file
al posto di quello di default /etc/lilo.conf;
-
-d delay
indica il tempo da attendere (in decimi di secondo) prima di avviare
il kernel di default, secondo quanto specificato da delay;
-
-D label
indica l’etichetta (label), specificata nel file di configurazione, relativa
al kernel da considerare come default;
-
-r root_directory
indica di impostare come root directory quella specificata da root_
directory;
-
-t (test) non crea effettivamente un map file e non modifica il boot
sector;
-
-c abilita l’ottimizzazione del caricamento del kernel, velocizzandone la
fase di boot;
-
-f disk_tab
indica di utilizzare il file disk_tab per le specifiche della geometria del
disco, al posto del file di default /etc/disk_tab;
-
-i boot_sector
indica di sovrascrivere il boot sector con il contenuto del file
boot_sector anziché con quello del file /boot/boot.b;
-
-l indica di generare indirizzamenti lineari dei settori piuttosto che del
tipo CHS;
-
-L indica di generare indirizzamenti LBA piuttosto che CHS;
-
-P {fix|ignore}
ripara (fix) o ignora (ignore) le partition table non corrette;
-
-s save_file
indica il file in cui effettuare un backup del contenuto del boot
sector prima di sovrascriverlo. Per default viene utilizzato il file
boot.n, dove n è un valore esadecimale che identifica univocamente
la partizione di cui contiene il boot sector. Se specificato insieme a
-u, indica il file col quale ripristinare il boot sector;
-
-S save_file
come -s ma se save_file esiste già, lo sovrascrive;
-
-u device_name
rimuove LILO, ripristinando il boot sector con quello precedente;
-
-U device_name
come -u, ma non controlla il time-stamp del boot sector;
-
-R command
indica il comando di default (command) che il boot loader deve
eseguire soltanto la prossima volta che esso viene eseguito. Poi il
comando viene rimosso (si tratta di un comando once-only);
-
-I label
indica di visualizzare il path del kernel avviato (identificato da label),
subito dopo la fase di boot;
-
-V visualizza la versione di lilo;
____________________________________________________________________
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. 3.3).
Inoltre, è importante sottolineare che per ogni direttiva image deve essere specificato un
path relativo ad un filesystem montato sul sistema (cioè non può essere indicato, ad
esempio, /dev/hdb come parte del path), poiché esso serve soltanto a lilo per
aggiornare nel MBR i riferimenti al file (e alla relativa partizione) contenente il kernel da
avviare.
Di seguito è riportato un esempio del file /etc/lilo.conf.
# Parte generale
boot=/dev/hda
prompt
default="linux"
timeout=50
# Caricamento di Linux
image=/boot/vmlinuz
label="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.
-
boot=/dev/hda
indica a LILO di installarsi nel primo settore del primo disco rigido, ovvero nel
suo MBR. Se si desidera installare LILO nel primo settore di una partizione,
ad esempio nel primo settore della prima partizione del primo disco ATA, la
direttiva da impartire sarebbe boot=/dev/hda1;
-
prompt indica a LILO di visualizzare il prompt (un invito ad inserire qualcosa) che
attende l’inserimento dell’etichetta (label) relativa al sistema che desidera
avviare;
-
default="linux"
indica a LILO di avviare automaticamente il sistema identificato dall’etichetta
(label) linux se non viene premuto alcun tasto entro i decimi di secondo
specificati da timeout;
-
timeout=50
indica a LILO di attendere la pressione di un tasto entro 50 decimi di secondo.
Se in tale intervallo di tempo non viene premuto nessun tasto, viene avviato
automaticamente il sistema relativo all’etichetta (label) indicata da default;
-
image=/boot/vmlinuz
indica l’inizio della definizione di un sistema da avviare. Si tratta di un’immagine
del kernel di Linux (/boot/vmlinuz). In questo caso è un file che si trova sul
filesystem montato come root directory da LILO (v. direttiva root=...);
-
label="linux"
definisce l’etichetta relativa all’avvio del sistema che si sta definendo;
-
root=/dev/hda2
indica la partizione del disco che deve essere montata come root directory (in
questo caso /dev/hda2 cioè la seconda partizione del primo hard disk ATA);
-
read-only
indica di montare la root directory in sola lettura, in modo da permettere al
kernel di eseguire gli opportuni controlli di integrità prima di avviare il sistema;
-
other=/dev/hda1
indica l’inizio della definizione di un sistema da avviare per il quale deve
essere usato un altro boot loader che si trova nel primo settore della partizione
specificata (in questo caso /dev/hda1);
-
label="windows"
definisce l’etichetta relativa all’avvio del sistema che si sta definendo;
-
table=/dev/hda
indica quale MBR contiene la tabella delle partizioni (in questo caso il MBR del
primo disco ATA).
Le direttive contenute nel file di configurazione non sono attive subito dopo
il salvataggio del file, poiché LILO non interpreta tale file durante il suo avvio,
ma esse diventano attive dopo che viene lanciato il comando lilo, che provvede a
controllarne la correttezza, elaborarle ed ad inserirle, opportunamente codificate, nel
MBR.