[>a220.html>] [<a218.html<] [^a2.html^]
LILO è uno dei sistemi di avvio di kernel Linux e di altri sistemi operativi, specifico per gli elaboratori di architettura i386. Il suo file di configurazione è /etc/lilo.conf
.
Solitamente, il file di configurazione viene creato in modo predefinito già in fase di installazione, utilizzando opzioni generiche.
Nella sostanza le direttive di configurazione hanno la forma di assegnamenti a variabili, intese come opzioni che hanno un ruolo nella fase di avvio del sistema. A parte il caso delle righe bianche e di quelle vuote, che vengono ignorate, oltre alla possibilità di indicare dei commenti preceduti dal simbolo #, si usa la sintassi seguente:
nome=valore_assegnato
nome="valore_assegnato"
opzione_booleana
In particolare:
ogni direttiva deve essere disposta su una riga propria;
a seconda del contesto, i valori assegnati possono essere sensibili alla differenza tra maiuscole e minuscole;
è ammissibile l'uso di uno spazio (<SP>), prima e dopo il simbolo = che rappresenta l'assegnamento, ma in generale si preferisce ometterlo;
se si deve assegnare una stringa contenente uno o più spazi, occorre racchiuderla tra virgolette;
alcune direttive rappresentano un'opzione booleana, per cui è sufficiente annotarne il nome senza alcun assegnamento, per indicare implicitamente l'abilitazione dell'opzione relativa;
gli assegnamenti che non si possono ricondurre a direttive di configurazione, vengono intesi come assegnamenti a variabili di ambiente che poi sono passate al processo iniziale, tali e quali, rispettando anche l'uso delle lettere maiuscole o minuscole.
Le direttive di configurazione sono organizzate in sezioni: quelle della parte iniziale rappresentano la configurazione generale, mentre le sezioni specificano le particolarità delle voci che si possono selezionare nel momento dell'avvio del sistema operativo.
Nome | Sezione | Sezione | Sezione |
direttiva | globale | image | other |
backup | Sì | ||
force-backup | Sì | ||
boot | Sì | ||
compact | Sì | ||
default | Sì | ||
delay | Sì | ||
fix-table | Sì | ||
ignore-table | Sì | ||
install | Sì | ||
keytable | Sì | ||
map | Sì | ||
message | Sì | ||
nowarn | Sì | ||
prompt | Sì | ||
serial | Sì | ||
timeout | Sì | ||
verbose | Sì | ||
append | Sì | Sì | |
initrd | Sì | Sì | |
read-only | Sì | Sì | |
read-write | Sì | Sì | |
root | Sì | Sì | |
vga | Sì | Sì | |
lock | Sì | Sì | |
password | Sì | Sì | Sì |
restricted | Sì | Sì | |
label | Sì | Sì | |
alias | Sì | Sì | |
loader | Sì | ||
map-drive, to | Sì | ||
table | Sì |
Tabella 11.1. Organizzazione delle direttive di configurazione di LILO.
Le direttive che appaiono all'inizio del file di configurazione, prima della dichiarazione delle sezioni specifiche, riguardano tutte le sezioni sottostanti. Implicitamente appartengono alla sezione globale che non viene dichiarata espressamente. Nel seguito vengono descritte alcune di queste.
backup=file
force-backup=file
La prima delle due direttive, fa sì che nel momento in cui si installa il nuovo settore di avvio, venga fatta una copia di quello vecchio nel file specificato, a meno che il file in questione ci sia già, nel qual caso la copia non viene rifatta. In alternativa, la seconda direttiva non tiene conto dell'esistenza o meno del file, che eventualmente viene sovrascritto.
boot=file_di_dispositivo
Indica il nome del file di dispositivo nel quale installare il settore di avvio. In generale si tratta del file dispositivo corrispondente a tutto il primo disco, /dev/hda
, altrimenti, specie se si tratta di una partizione, significa che deve essere poi un altro sistema di avvio a prendersi carico dell'avvio di questo settore particolare.
compact
Cerca di riunire le richieste di lettura relative a settori adiacenti in un'unica operazione, allo scopo di ridurre il tempo necessario a caricare il sistema operativo. L'uso dei questa direttiva è particolarmente utile nella realizzazione di dischetti di avvio.
Questa direttiva è generalmente incompatibile con la direttiva LINEAR, che qui non viene descritta. |
default=riferimento_alla_sezione_predefinita
Permette di definire quale voce selezionare in modo predefinito, tra quelle disponibili, in mancanza di una scelta precisa da parte dell'utente. Il nome che viene assegnato si riferisce a quanto dichiarato all'interno delle sezioni con la direttiva IMAGE=nome.
delay=decimi_di_secondo
Permette di specificare un ritardo, espresso in decimi di secondo, prima di avviare il sistema. Potrebbe essere necessario in alcune situazioni particolari, per dare il tempo a qualche componente fisica dell'elaboratore di inizializzarsi. In particolare, assume già un valore predefinito quando si utilizza la direttiva serial per attivare l'uso di un terminale attraverso la porta seriale.
fix-table
Questa opzione booleana, consente la correzione automatica della tabelle delle partizioni, all'inizio delle partizioni stesse, nel caso queste non corrispondano allo standard normale. Si intuisce che questa facoltà possa creare dei disguidi se nel disco sono installati altri sistemi operativi con le loro convenzioni particolari.
ignore-table
Con questa opzione booleana si fa in modo che vengano ignorate eventuali anomalie nella tabelle delle partizioni.
install=file
Con questa direttiva si specifica esplicitamente il nome del file contenente il settore di avvio da installare. Se non si indica questa direttiva, viene usato in modo predefinito il file /boot/boot.b
.
keytable=file
Questa direttiva stabilisce una rimappatura della tastiera secondo la codifica riportata nel file indicato. Il file in questione deve essere generato appositamente, tenendo conto della mappa di partenza (quella del BIOS) e di quella di destinazione.
Per ottenere questo file, si utilizza un programma che fa parte del pacchetto che compone LILO: può trattarsi di keytab-lilo.pl o di keytab-lilo. Questo utilizza le mappe di definizione della tastiera di un sistema GNU/Linux normale, per generare ciò che serve. L'esempio seguente si riferisce al caso in cui, dalla solita tastiera inglese si passi alla disposizione italiana dei tasti:
#
keytab-lilo /usr/share/keymaps/i386/qwerty/us.map.gz (segue)
/usr/share/keymaps/i386/qwerty/it.map.gz > mappa_tastiera.lilo
Nell'esempio, il file che si ottiene è mappa_tastiera.lilo
.
map=file
Specifica la posizione e il nome del file contenente la mappa necessaria per raggiungere il kernel e altre informazioni indispensabili all'avvio. Se non si indica esplicitamente tale direttiva, viene creato e usato il file /boot/map
in modo predefinito.
message=file
Indica un file di testo contenente un messaggio che deve essere visualizzato all'avvio, prima dell'invito di LILO. La lunghezza massima del testo è di 65 535 byte; in particolare, il carattere <FF> (che si ottiene normalmente con la combinazione [Ctrl+l]), genera una ripulitura dello schermo.
È importante sottolineare che lo spostamento o la modifica di questo file richiede la ricostruzione del file di mappa, ovvero |
nowarn
Disabilita l'emissione di messaggi di avvertimento.
prompt
Richiede la comparsa dell'invito. Di solito si usa questa direttiva assieme a timeout, per fissare un tempo massimo oltre il quale viene selezionata automaticamente la voce predefinita.
serial=porta[,velocità[parità[n-bit]]]
Abilita l'interazione attraverso una porta seriale:
porta indica il numero della porta seriale, dove lo zero corrisponde alla prima, ovvero /dev/ttyS0
;
velocità si esprime in bit/s (bps) e si riferisce alla velocità di comunicazione della porta, dove i valori ammissibili sono 110, 300, 1 200, 2 400, 4 800, 9 600, 19 200 e 38 400, mentre il valore predefinito è 2 400;
parità rappresenta il tipo di parità usata dalla linea seriale, espresso attraverso la lettera n (nessuna parità), la lettera e (pari), oppure la lettera o (dispari);
n-bit rappresenta la dimensione dei caratteri trasmessi e sono ammissibili solo i valori 7 e 8, tenendo conto che in modo predefinito si intendono 8 bit se non si usa alcuna parità, altrimenti si intendono 7 bit.
A titolo di esempio, la direttiva serial=1,2400n8 fa riferimento alla seconda porta seriale, che viene inizializzata per una connessione a 2 400 bit/s, senza parità, con caratteri di 8 bit. In pratica, queste sono anche le impostazioni predefinite, per cui sarebbe stato sufficiente usare la direttiva abbreviata serial=1.
Si osservi che se si utilizza la direttiva serial, si stabilisce implicitamente un ritardo di due secondi, attraverso la direttiva delay=20.
timeout=decimi_di_secondo
Questa direttiva stabilisce un tempo di attesa, espresso in decimi di secondo, per la selezione di una voce di avvio attraverso la tastiera, trascorso il quale viene scelta automaticamente quella predefinita. Lo zero indica di non attendere alcunché, mentre il valore -1 stabilisce un tempo indefinito. Se non si stabilisce questa direttiva, il tempo predefinito per questa pausa è di cinque secondi, pari al valore 50.
verbose=n
Permette di stabilire il livello di dettaglio desiderato per le informazioni emesse dall'eseguibile lilo. Si usano valori numerici interi, generalmente da zero a cinque, dove il valore più alto dà informazioni maggiori.
Un gruppo di direttive particolari, può essere usato sia in modo particolare, all'interno di sezioni che riguardano le varie voci di avvio, oppure anche in modo globale, prima della dichiarazione di tali sezioni, dove rappresentano l'impostazione predefinita nel caso non siano utilizzate nuovamente nelle sezioni.
append=parametri_di_avvio_del_kernel
Aggiunge la stringa indicata tra i parametri del kernel (capitolo 22).
initrd=file
Specifica l'uso di un file da caricare all'avvio come disco RAM iniziale.
read-only
Specifica che in fase di avvio il file system deve essere montato in sola lettura. Ciò è necessario per la verifica e l'eventuale riparazione del file system, quando successivamente il sistema provvede automaticamente a rimontarlo in lettura e scrittura.
read-write
Specifica che in fase di avvio il file system deve essere montato in lettura e scrittura.
root=file
Indica il file di dispositivo che deve essere montato come file system principale. Se non si utilizza questa direttiva, si intende implicitamente che si tratti della partizione o del disco in cui si trova già il file del kernel.
vga={normal|extended|ask|n}
Specifica la modalità video VGA che deve essere impostata all'avvio. La parola chiave normal richiede espressamente la modalità testo normale, pari a 80x25; extended richiede la modalità testo 80x50; ask fa in modo che venga richiesto all'utente in fase di avvio; infine, un valore numerico corrisponde a una scelta equivalente dal menù che si otterrebbe con l'opzione ask.
lock
Questa direttiva abilita la registrazione della riga di comando utilizzata all'avvio, relativa alla propria voce di avvio, in modo che venga riutilizzata in modo predefinito in quelli successivi.
password=password
Fa in modo che venga richiesta la password indicata per poter procedere. Naturalmente, occorre tenere presente che il file di configurazione contenente tale informazione, dovrebbe essere protetto in qualche modo, almeno dagli accessi di utenti diversi dall'amministratore.
restricted
Questa direttiva può essere usata solo assieme a password e serve a stabilire che la richiesta di tale password avviene solo nel caso di inserimento di parametri di avvio per il kernel.
Le voci selezionabili all'avvio, sono descritte all'interno di sezioni, che hanno la stesso aspetto delle direttive normali. Si tratta precisamente di queste due direttive:
image=file_immagine_del_kernel_da_avviare
other=file_di_dispositivo
Nel primo caso si fa riferimento a una sezione relativa a una voce di avvio per un kernel Linux; nel secondo si tratta dell'avvio di un altro settore di avvio, presumibilmente di un sistema operativo diverso da GNU/Linux.
Tutte le direttive successive a una di queste due, fino alla dichiarazione di una sezione successiva eventuale, rappresentano impostazioni particolari. In questo ambito, si possono indicare le direttive già descritte in precedenza, tranne quelle di competenza esclusivamente globale, oltre a quelle che vengono descritte qui in particolare.
label=nome
Indica il nome attribuito a questa voce di avvio, che potrà essere selezionato al momento dell'invito.
alias=nome
Specifica un nome alternativo per la voce a cui si riferisce.
loader=file
Si usa nell'ambito di una sezione other, per indicare il file contenente il codice necessario per il caricamento di un settore di avvio successivo. In condizioni normali si tratta del file /boot/chain.b
, che viene utilizzato in modo predefinito quando non si specifica questa direttiva.
map-drive=codice_virtuale to=codice_reale
Queste due direttive, che si usano necessariamente in coppia, specificano lo scambio dei codici indicati, riferiti al BIOS, per ottenere in pratica lo scambio dell'identificazione dei dischi relativi. Ciò si ottiene attraverso il file /boot/chain.b
che installa un programma residente per la gestione di questo scambio, al di sopra del controllo del sistema operativo che si vuole avviare.
I codici in questione sono tipicamente 8016 per il primo disco IDE, 8116 per il secondo, e così di seguito.
Si osservi che per ottenere uno scambio completo tra due dischi, occorre usare queste direttive due volte, per entrambi i casi: il primo disco che diventa il secondo e il secondo disco che diventa il primo. |
table=file_di_dispositivo
Specifica, attraverso il file di dispositivo corrispondente, la tabella di partizione relativa al sistema operativo che si intende avviare. Si usa di solito nelle sezioni other, quando non si tratta dell'avvio di GNU/Linux.
L'esempio seguente può avviare un sistema GNU/Linux in due modi differenti, attraverso il file /boot/vmlinuz
e /boot/vmlinuz.1
, oppure un altro sistema operativo (in questo caso si tratta di MS-Windows).
La presenza di direttive alias, fa sì che si possano selezionare le voci per nome, oppure attraverso la sola lettera iniziale.
Si può osservare che la voce linux, ovvero l, richiede l'inserimento di una password nel caso si vogliano inserire dei parametri di avvio; inoltre, nel caso della voce prova, ovvero p, è impedito l'inserimento di parametri di avvio, attraverso la direttiva lock.
boot=/dev/hda vga=normal read-only prompt timeout=-1 message=/boot/message image=/boot/vmlinuz label=linux alias=l root=/dev/hda4 initrd=/boot/initrd password=segreto restricted image=/boot/vmlinuz.1 label=prova alias=p root=/dev/hda4 initrd=/boot/initrd.1 lock other=/dev/hda1 label=windows alias=w table=/dev/hda
L'estratto seguente, riguarda un gruppo di direttive relative all'avvio di sistemi operativi diversi da GNU/Linux. In particolare, si osserva il fatto che si tenta di avviare OS/2 dal secondo disco fisso IDE, cercando di imbrogliarlo, facendogli credere di essere sul primo. In quel caso particolare si deve usare anche un file speciale nella direttiva loader.
other = /dev/hda2 label = dos table = /dev/hda other = /dev/hdb2 label = os2 loader = /boot/os2_d.b map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80Appunti di informatica libera 2000.07.31 --- Copyright © 2000 Daniele Giacomini -- daniele @ swlibero.org