LILO è il Linux loader più diffuso, permette il boot sia di Linux che di altri sistemi operativi.
Generalmente l'installazione di Linux provvede a creare ed installare LILO sulla macchina (se si è scelto di installare il loader direttamente sull'hard disk e non su floppy) ma in caso di kernel upgrade o aggiunta di un nuovo sistema operativo sulla macchina è necessario modificare le sue impostazioni.
Tutte queste impostazioni sono definite nel file /etc/lilo.conf
che contiene una parte globale e una o più parti relative alle diverse immagini del kernel o sistemi operativi che si vogliono poter caricare.
Il comando /sbin/lilo
installa sul MBR o sul settore di boot di una partizione il LILO secondo le indicazioni date in /etc/lilo.conf.
Ogni volta che viene modificato /etc/lilo.conf è necessario eseguire il comando lilo per installare il nuovo LILO sul settore di boot (notare la differenza, comunemente adottata, fra il comando lilo, tutto in minuscolo, e il Linux Loader vero e proprio LILO, in maiuscolo).
Al momento del boot LILO inoltre presenta la possibilità di dare comandi vari e di scegliere quale sistema operativo o quale versione del kernel caricare, a seconda delle confgiurazioni impostate in /etc/lilo.conf.
ATTENZIONE: Operare maldestramente con LILO e il MBR può impedire il boot del sistema operativo, si suggerisce sempre di avere un dischetto di ripristino disponibile da utilizzare in caso di danni o problemi con l'MBR.
Converte un'immagine in formato xpm e con risoluzione 640x480 per utilizzarla come splash image (immagine di sfondo) per grub.
Occorre semplicemente un'immagine che non sia troppo dettagliata o contenga innumerevoli colori poichè dovrà essere ridimensionata nel formato xpm e ridotta a soli 14 colori.
Convertita l'immagine bisogna configurare grub per caricare la nuova immagine al boot:
Conversione dell'immagine nel formato xpm con risoluzione 640x480 e 14 colori
[root@dido root]# convert -geometry 640x480 -colors 14 openskills.jpg newsplash.xpm && gzip newspalsh.xpm
Copiare l'immaggine nella directory /boot/grub
[root@dido root]# cp newsplash.xpm.gz /boot/grub/
Configurare grub per caricare la nuova immagine come nel seguente esempio
[root@dido root]# cat /boot/grub/grub.conf
[...]
#boot=/dev/hda
default=0
timeout=10
#splashimage=(hd0,0)/grub/splash.xpm.gz
splashimage=(hd0,0)/grub/newsplash.xpm.gz
[...]
Riavviare il sistema e ammirare il nuovo sfondo di grub.
LILO dispone di un command prompt che permette di eseguire operazioni più evolute della scelta del sistema operativo da caricare.
La possibilità di digitare i seguenti comandi può essere, per sicurezza, soggetta all'introduzione di una password.
TAB
Visualizza l'elenco delle label disponibili, cioè dei sistemi operativi e delle versioni del kernel selezionabili al boot.
linux rescue
Carica l'immagine con label linux in modalità single user mode (init 1) per interventi di amministrazione straordinaria sul sistema.
linux single
Come rescue, con la differenza che viene tentato il boot da disco.
root=/dev/...
Come nel file lilo.conf, definisce il dispositivo di boot permettendo di bootare, per esempio dal CDROM senza modificare il BIOS.
vga=80x25
Definisce la modalità video della console: colonne x righe.
Non è raro sentire di utenti che hanno provato, animati da ottime intenzioni e buona volontà, ad installare Linux sul proprio PC, con Windows già installato, e per qualche errore o svista o inesperienza in fase di installazione non riescono più a "vedere" e caricare il proprio Windows.
In questi casi, arrabbiature, delusione, disillusione e sconforto fanno diventare un potenziale nuovo utente di Linux in un suo acceso detrattore.
Le distribuzioni recenti ormai sono piuttosto efficaci nel riconoscere e preservare l'installazione Windows esistente e far pacificamente convivere i due sistemi operativi, al punto che è sempre consigliabile, se si vuole un sistema Dual Boot, installare prima Windows e poi Linux (i SO di Microsoft sono generalmente più invadenti, sotto questo aspetto, e non tollerano/prevedono facilmente coesistenze).
Di fatto, comunque, è possibile fare 2 tipi di danni sul Windows pre esistente quando si prova ad installare il pinguino:
- Cancellare completamente il vecchio Windows, distruggendone o sovrascrivendo la partizione in cui è installato (era il caso di prestare più attenzione i WARNING segnalati durante l'installazione di Linux)
- Sovrascrivere il Master Boot Record del proprio hard disk con LILO o GRUB o altri Linux Loader senza aver l'opzione di caricare Windows: in questo caso non viene propriamente cancellato Windows dal proprio hard disk, ma soltanto la possibilità di caricarlo al boot.
In questo caso il ripristino dello status quo è relativamente semplice:
Procurarsi un floppy di boot o di ripristino o un CDROM di Windows.
Se è un Windows 95, 98, Me, digitare dal DOS: fdisk /mbr
Se si è sulla console di ripristino di Windows 2000, scrivere: fixmbr
In entrambi i casi si sovrascrive e si azzera il MBR dove verosimilmente è stato installato un Linux Loader come LILO e si potrà ritrovare il proprio Windows.
L'effetto collaterale di questa operazione è che a questo punto non sarà più accessible il Linux appena installato: se si sono creati dei floppy di ripristino durante l'installazione di Linux potrà essere possibile caricare Linux con quelli ed eventualmente configurare /etc/lilo.conf (o analoghi file di configurazione del Linux Loader) in modo corretto. Altrimenti è generalmente possibile operare il ripristino bootando dal CDROM usato per l'installazione.
GRUB è un boot loader multipiattaforma estremamente flessibile e potente.
Ha una propria CLI in cui inserire a mano i parametri di boot o può presentare un'interfaccia a menu configurabile tramite il file /etc/grub.conf
.
Per installare grub sul settore di avvio basta dare il comando:
grub-install /dev/hda
(o altro nome di device di boot valido).
A differenza di LILO non c'è bisogno di ridare il comando ogni volta che si cambia la configurazione.
Per la sintassi di /etc/grub.conf
si rimanda alla relativa sezione: si consideri che avendo le stesse funzioni di Lilo, la sua logica è affine a /etc/lilo.conf
.
Solitamente all'avvio Grub si presenta con un menu da cui è possibile scegliere quale sistema operativo caricare, ma è possibile entrare in modalità comandi, simile ad una shell, in si possono eseguire svariate operazioni: dalla scelta del path del kernel, al boot via rete.
Il file /boot/grub/grub.conf
(spesso referenziato con il symlink /etc/grub.conf
) è il file di configurazione del boot loader GRUB.
La sua logica è simile a quella del classico lilo.conf, ma la sintassi è leggermente diversa e le opzioni più numerose.
Di fatto permette di predefinire gli stessi comandi che possono essere inseriti a mano quando Grub viene avviato, rendendo ovviamente più rapida ed automatica la fase di boot.
Il file presenta una struttura di questo tipo (esempio da un RedHat standard dual boot Win-Linux):
boot=/dev/hda
Device dal quale bootare
default=0
Label (sezione) selezionata di default (0 è la prima visualizzata, in questo caso Red Hat Linux)
timeout=10
Tempo, in secondi, dopo il quale se non si effettua alcuna azione grub boota la label di default
splashimage=(hd0,2)/boot/grub/splash.xpm.gz
Path della immagine di sfondo mostrata da grub al boot
password --md5 $1$6ðòüZßXÈ$bXTLL8IbDhnwmjyaNNcPG.
Password (criptata) per poter modificare i parametri di avvio al boot
title Red Hat Linux (2.4.9-31)
Titolo della prima label, può essere un testo arbrario
root (hd0,2)
Disco (0, 1, 2...) (e partizione, dove 0 è la prima partizione e le altre a seguire) dove si trova la root directory ( / ). Notare che Grub ha una propria naming conventon sugli hard disk diversa da quella tipica di Linux: hd0 può corrispondere sia a /dev/hda che a /dev/sda.
kernel /boot/vmlinuz-2.4.9-31 ro root=/dev/hda3
Path dell'immagine del kernel. Qui possono essere definite eventuali opzioni da passare al kernel (es: vga=ext)
initrd /boot/initrd-2.4.9-31.img
Path dell'immagine da mettere in un RamDisk nelle prime fase del boot (necessario se il supporto di driver fondamentali per il caricamento del kernel (device SCSI, filesystem di / e /boot) è gestito tramite moduli).
title Win2K
Titolo della seconda label
rootnoverify (hd0,0)
Disco (e partizione) su cui procedere per il boot di un sistema operativo non supportato (lascia al settore di boot della partizione indicata l'onere del bootstrap dell'OS)
chainloader +1
Passa il compito di bootare ad un altro boot loader (in questo caso quello di Windows)
A differenza di Lilo, con Grub quanto scritto in questo file di configurazione è immediatamente attivo e non va eseguito alcun comando per rendere definitive le modifiche (con Lilo va eseguito il comando lilo
ogni volta che si modifica lilo.conf
(riscrive il MBR)).
Grub ha una nomenclatura tutta sua per indicare i diversi devices e partizioni, e questo puo creare problemi, soprattutto se si edita per la prima volta il suo file di configurazione.
Differenze tra la nomenclatura standard di Unix e quella di Grub:
Primary Master IDE: hdaN (Unix) hd0,N (Grub)
Primary Slave IDE: hdbN (Unix) hd2,N (Grub)
Secondary Master IDE: hdcN (Unix) hd1,N (Grub)
Secondary Slave IDE: hddN (Unix) hd3,N (Grub)
dove N sta per il numero della partizione interessata.
Per quanto riguarda i dischi SCSI vale la stessa logica (sdaN di Unix equivale a sd0,N di Grub e cosi via).