Configurazione del boot loader

In breve, un boot loader è il primo programma software che viene eseguito quando viene acceso il computer; questo è responsabile di caricare e trasferire il controllo al kernel del sistema operativo. Il kernel si occuperà del resto...

Nel mondo GNU/Linux ci sono essenzialmente due bootloader: LILO e GRUB. Il motivo principale per cui utilizzo GRUB è la flessibilità che questo offre; a differenza di LILO, GRUB riconosce diversi file system e il modo in cui eseguire il kernel. In questo modo può essere caricato un qualsiasi sistema operativo, senza scrivere la posizione fisica del kernel sul disco. Basterà specificare il nome del file che contiene il kernel e la partizione in cui risiede. Quando si avvia il sistema con GRUB si può scegliere se utilizzare il menù grafico con l'elenco dei sistemi operativi, oppure utilizzare un interfaccia a riga di comando. Quest'ultimo caso, risulta essere molto comodo nel momento in cui ci siano problemi nell'utilizzare l'interfaccia a menù o al verificarsi di problemi relativi al boot del sistema operativo.

Avendo installato GRUB precedentemente nella distribuzione host, ho continuato ad utilizzarlo apportanto le opportune modifiche al file di configurazione. Questo si trova nella partizione dove risiede il sistema host25 in /boot/grub/menu.lst:

# Attesa di 10 secondi prima di avviare il sistama operativo di default
timeout 10

# Colori del menù
color black/cyan yellow/cyan

# Sistama operativo di default è LFS con framebuffer
default 4

# Mandrake 10
title linux-mdk10
kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 devfs=mount splash=silent vga=788
initrd (hd0,6)/boot/initrd.img

# Mandrake 10 failsafe
title failsafe
kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 failsafe acpi=ht devfs=nomount
initrd (hd0,6)/boot/initrd.img

#Windows XP
title windows
root (hd0,0)
chainloader +1

# LFS
title lfs-5.1.1
kernel (hd0,5)/boot/lfskernel root=/dev/hda6

# LFS con supporto frambuffer
title lfs-5.1.1-fb
kernel (hd0,5)/boot/lfskernel root=/dev/hda6 vga=0x318
Ho aggiornato il file menu.lst aggiungendo i record relativi al nuovo sistema LFS commentati con # LFS e # LFS con supporto frambuffer. La riga
title lfs-5.1.1
corrisponde al nome che vogliamo dare al sistema operativo ed è quello che ci viene mostrato all'avvio del GRUB. La riga
kernel (hd0,5)/boot/lfskernel root=/dev/hda6
indica la partizione26 , il path in cui è situato il kernel e il nome del file che lo contiene; il secondo paramentro indica quale partizione deve essere montata come root. Con queste impostazioni, all'avvio del sistema, se tutto è andato bene, ci ritroveremo la schermata di login. Siamo nella modalità text mode. In questa modalità la shell ci appare ad una risoluzione molto bassa. Possiamo abilitare la modalità grafica utilizzando il dispositivo framebuffer. In questo modo possiamo avere una console con una risoluzione più elevata (fino ad un massimo di 1280x1024) e anche molti più colori, anche se la modalità grafica risulta essere un pò più lenta di quella testuale.

Per poter abilitare la modalità grafica ad una determinata risoluzione dobbiamo utilizzare parametro vga=0x### da passare al kernel in fase di boot. Questo può essere fatto semplicemente aggiungendo il nuovo parametro al record corrispondente al kernel da avviare nel file di GRUB menu.lst. Abbiamo a disposizione diverse modalità grafiche, in base alla risoluzione ed al numero di colori che vogliamo avere; questa è la tabella riassuntiva che ci permette di scegliere la modalità:

    | 640x480  800x600  1024x768 1280x1024
----+-------------------------------------
256 |  0x301    0x303    0x305    0x307   
32k |  0x310    0x313    0x316    0x319   
64k |  0x311    0x314    0x317    0x31A
16M |  0x312    0x315    0x318    0x31B



Footnotes

... host25
Nel mio caso in /dev/hda7
... partizione26
(hd0,5) indica il primo disco e la sesta partizione. La prima partizione è la numero 0.
Daniele Salamina, Relazione di Laurea, Progettazione e realizzazione di una distribuzione GNU/Linux, Settembre 2004