LILO, GRUB e MBR

Precedente
Programma
Seguente
Bastard Operator From Hell!
dmesg -c
  ripulisce il buffer dopo aver stampato i messaggi
Linux et cetera...
Se si è installato LILO sul MBR di un computer multiboot con Linux e Windows e non si riesce più accedere a Windows è possibile cancellare dal MBR il LILO dando il comando DOS:
fdisk /mbr
Ovviamente ciò si può fare bootando con un floppy di emergenza DOS.
Ovviamente per tornare ad usare Linux sarà necessario fare il boot con un floppy di emergenza LINUX.
Tips & Tricks

No prompt?
E' possibile ottenere il prompt di LILO anche quando non è configurato nel file di cont premendo SHIFT o CRTL o ALT lasciando il CAPS LOCK attivato.

NON attivare mai l'opzione prompt senza aver definito un timeout, soprattutto su server unattended.
Questa combinazione infatti, in caso di reboot del sistema, interrompe il processo di boot al LILO, in attesa dell'input da parte dell'utente.

Attenzione a non fare confusione fra /sbin/lilo e LILO
Il primo non è il boot loader vero e proprio ma il comando che installa e aggiorna il LILO sul device di boot secondo le indicazioni scritte in /etc/lilo.conf

Nel command prompt del LILO premere TAB per visualizzare l'elenco delle label disponibili.

Nel command prompt di LILO è possibile dare alcuni comandi particolarmente utili:
linux rescue - Per caricare 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.

LILO
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 impostazioni di Lilo.
Tutte le impostazioni di LILO 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.
Al momento del boot LILO inoltre presenta la possibilità di dare comandi vari e di scegliere cosa lanciare
ATTENZIONE: Operare maldestramente con LILO e il MBR può impedire il boot del sistema operativo, si suggerisce sempre di avere un dischetto di boot disponibile da utilizzare in caso di danni o problemi con l'MBR.
Un esempio di /etc/lilo.conf
# Global Options  
prompt Fa visualizzare un prompt in cui l'utente, al boot, può scegliere cosa bootare, come bootare e dare parametri al kernel.
timeout=50 Definisce il tempo in decimi di secondi che lilo aspetta prima di caricare l'immagine di default.
default=linux Definisce quale immagine del kernel (o partizione di un altro OS) LILO carica di default.
boot=/dev/hda Definisce dove LILO viene installato (in questo caso nell'MBR del primary master).
map=/boot/map Definisce la posizione del map file, che contiene la posizione fisica dei kernel in un formato interpretabile da LILO. /boot/map è il valore di default.
install=/boot/boot.b Definisce il file che il comando /sbin/lilo installa sul settore di boot. Di fatto è il binario vero e proprio di LILO. /boot/boot.b è il valore di default.
message=/boot/message Definisce un file contenente del testo personabilizzabile da visualizzare al boot.
linear Genera indirizzi di settore lineari invece di indirizzi di settore/head/cilinder, che possono dare problemi. In breve, è meglio che ci sia.
# Label Options  
image=/boot/vmlinuz-2.4.7-10 Indica dove risiede l'immagine del kernel da caricare.
label=linux Definisce il nome della label associato a questa immagine, è quello che si deve scrivere nel LILO command prompt all'avvio.
initrd=/boot/initrd-2.4.7-10.img Definisce la posizione dell'immagine dell'Initial RAM disk. Il kernel questo file system come RAM disk, ne esegue il file linuxrc e poi monta il vero file system su Hard Disk. Serve, per esempio, per installare un kernel modulare su Hard Disk SCSI, per i quali i driver sono disponibili come moduli e non possono essere caricati direttamente.
read-only Indica al kernel di montare la root, sotto definita, in Read-Only durante la fase di boot. In questo modo è possibile eseguire un file system check durante il boot senza rischi. Prima di passare il controllo delle operazioni all'init, il kernel monta la root in Read-Write.
root=/dev/hda3 Definisce in quale partizione sta la root del sistema.
# Label Options  
other=/dev/hda1 Indica la partizione in cui risiede un sistema operativo diverso da Linux.
optional Omette l'immagine del kernel se non è disponibile at momento della creazione del map file.
label=DOS Definisce il nome della label associata a questo OS (nello specifico era Window 2000)
Opzioni aggiuntive di LILO

LILO prevede molte altre opzioni definibili in /etc/lilo.conf. La maggior parte riguarda parametri riguardanti l'hardware specifico della macchina e servono per comunicare al kernel quale hardware è presente quando non lo riconosce.
In fatto di riconoscimento delle risorse hardware, Linux ha fatto notevoli progressi, ma può ancora essere utile una riga come, per esempio:
append = "ether=10,0x210,eth0"
che ha funzione di passare al kernel le informazioni sulla scheda di rete eth0, che in questo caso usa l'IRQ 10 e l'indirizzo di I/O 210 (potrebbe essere necessario per schede di rete EISA).

Opzioni importanti per la sicurezza sono:
password=pippo Indica che è necessaria una password (pippo) per poter dare comandi al prompt di LILO
restricted Indica che la password serve solo quando si devono passare dei parametri al boot, ma non per scegliere la label da caricare.

GRUB

GRUB è un boot loader multipiattaforma estremamente flessibile e potente.
Ha un 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 valido)
A differenza di LILO non c'è bisogno di ridare il comando ogni volta che si cambia la configurazione.
Segue un esempio di /etc/grub.conf che fa le stesso cose del /etc/lilo.conf commentato sopra.
default=0 Imposta come default la prima "label" sotto indicata
timeout=10 Imposta a 10 secondi il tempo di attesa prima di caricare automaticamente l'entry di default.
splashimage=(hd0,2)/boot/grub/splash.xpm.gz Indica dove trovare l'immagine che visualizza nella schermata di boot
password --md5 $1$6ðòüZßXÈ$bXTLL8IbDhnwmjyaNNcPG. Imposta una password, criptata, da fornire per poter accedere al menu o alla command-line.
title Red Hat Linux (2.4.7-10) Il titolo della prima scelta del menu ("label")
root (hd0,2) Hard disk (primary master) e partizione (terza) del device di root.
kernel /boot/vmlinuz-2.4.7-10 ro root=/dev/hda3 Il path per il kernel
initrd /boot/initrd-2.4.7-10.img Il path per il file system da montare su Ram Disk al boot.
title DOS Il titolo della seconda scelta del menu
rootnoverify (hd0,0) Hard disk (primary master) e partizione (prima) del device di root.
Non tenta di montare la partizione.
chainloader +1 Prova a caricare in cascata il primo blocco della partizione sopra definita.

WEB RESOURCES
http://www.redhat.com/docs/manuals/linux/RHL-7.1-Manual/custom-guide/dualboot.html Ottime istruzioni su come configurare un sistema Dual boot Linux-Windows
http://www.gnu.org/software/grub/ Home Page ufficiale di GRUB
http://www.linuxdoc.org/HOWTO/mini/LILO.html The LILO Mini HOWTO