2.1.5 SYSLINUX
SYSLINUX
è un boot loader basato su filesystem FAT (il filesystem nativo del DOS), piuttosto semplice
da gestire, tanto che molte delle distribuzioni di GNU/Linux lo utilizzano per creare i
dischetti di avvio in caso di emergenza. Si compone del file eseguibile syslinux
per i sistemi GNU/Linux e dell’analogo file SYSLINUX.EXE eseguibile sui sistemi
DOS. Entrambe le versioni di questo programma, copiano il file LDLINUX.SYS su un
dischetto con filesystem FAT e lo rendono avviabile, creando su quest’ultimo un
settore di avvio opportuno. Per far ciò è sufficiente digitare (da GNU/Linux) il
comando
# syslinux /dev/fd0
e, analogamente, da DOS
A questo punto non rimane altro che copiare il kernel di GNU/Linux all’interno della root
directory del dischetto, oltre ad un file di configurazione SYSLINUX.CFG.
Il settore di boot del dischetto avvia il file LDLINUX.SYS che legge l’eventuale file
SYSLINUX.CFG ed interpreta le direttive in esso contenute.
Il file di configurazione SYSLINUX.CFG è un file di testo, del quale un esempio è riportato di
seguito.
DEFAULT linux
TIMEOUT 70
DISPLAY INTRO.TXT
PROMPT 1
F1 VARIE.TXT
LABEL linux
KERNEL LINUX
LABEL hda1
KERNEL LINUX
APPEND "root=/dev/hda1 ro"
Segue una breve spiegazione delle direttive contenute nell’esempio.
-
DEFAULT linux
indica la scelta di default. In questo caso si tratta dell’etichetta (LABEL) “linux”.
Se tale etichetta non esistesse, SYSLINUX tenterebbe di avviare il kernel
contenuto nel file col nome uguale a quello dell’etichetta, ovvero LINUX (le
maiuscole e minuscole sono indifferenti, in questo caso, nell’indicazione del nome
di un file poiché il filesystem del dischetto è FAT);
-
TIMEOUT 70
indica di avviare automaticamente la selezione di default se entro 70 decimi
di secondo non viene premuto nessun tasto. Se il valore è 0, non si ha alcun
avvio automatico: SYSLINUX attende sempre la scelta del sistema da avviare
in maniera interattiva;
-
DISPLAY INTRO.TXT
indica di visualizzare il contenuto del file INTRO.TXT che si deve trovare nella
root directory del dischetto;
-
PROMPT 1
indica di visualizzare un prompt, cioè un invito ad inserire qualcosa, come
‘boot:’. Per non visualizzare tale prompt è sufficiente sostituire ‘1’ con ‘0’;
-
F1 VARIE.TXT
indica di associare la visualizzazione del contenuto del file VARIE.TXT alla
pressione del tasto
;
-
LABEL linux
definisce l’etichetta “linux”;
-
KERNEL LINUX
indica di caricare il kernel contenuto nel file LINUX che si trova nella root
directory del dischetto, quando si seleziona l’etichetta “linux”;
-
LABEL hda1
definisce l’etichetta “hda1”;
-
APPEND "root=/dev/hda1 ro"
specifica i parametri da passare al kernel; in questo caso si tratta di montare come
root directory la prima partizione del primo disco rigido ATA in sola lettura.
Quando il computer viene avviato con questo boot loader, è possibile specificare, di
seguito alla visualizzazione dell’eventuale prompt, il nome dell’etichetta relativa
all’avvio del sistema desiderato. In riferimento all’esempio precedente, digitando hda1
(seguito dalla pressione del tasto
) si ha l’interpretazione delle direttive che
seguono, nel file di configurazione, la riga LABEL hda1. Digitando invece linux o
niente, oppure attendendo 7 secondi, si ha l’interpretazione della riga che segue LABEL
linux.