14.5. Installazione del nuovo kernel

Adesso che il vostro nuovo kernel è stato compilato senza intoppi, tutto quello che vi resta da fare è installarlo. Di nuovo, per amor di precisione e per identificare in maniera chiara i vostri kernel, è preferibile attenersi a una convenzione precisa per quanto riguarda i nomi di questi ultimi. Supponiamo che stiate per installare un kernel 2.2.17. I comandi da digitare sono i seguenti:

$ make install

Dopo questo comando, dovete ancora effettuare l'aggiornamento del Boot Loader usato sul vostro sistema. Ci sono due possibilità: GRUB o LILO. Notate che al momento il Boot Loader standard utilizzato da Linux-Mandrake è GRUB.

14.5.1. Aggiornamento di GRUB

Adesso dovete modificare il file /boot/grub/menu.lst. Questo è l'aspetto tipico di un file menu.lst subito dopo aver installato una distribuzione Linux-Mandrake e prima di qualsiasi modifica:

timeout 5
color black/cyan yellow/cyan
i18n (hd0,4)/boot/grub/messages
keytable (hd0,4)/boot/fr-latin1.klt
default 0

title linux
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5

title failsafe
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5  failsafe 

title Windows
root (hd0,0)
makeactive
chainloader  +1 

title floppy
root (fd0)
chainloader +1

Questo file si compone di due parti: l'intestazione, che contiene le opzioni più comuni (le prime cinque righe), e le diverse sezioni (o entrate), ciascuna delle quali corrisponde a un diverso kernel di GNU/Linux oppure a un altro OS specificato. timeout 5 determina la quantità di tempo che avete a disposizione prima che GRUB lanci il sistema operativo (o il kernel) predefinito. Questa opzione predefinita è determinata da default 0, che significa che la prima sezione è quella di default. La riga color specifica i colori da usare per i menu. La riga i18n, invece, comunica al sistema dove si trova il messaggio di benvenuto da presentare all'utente: (hd0,4) significa che si trova sulla quinta partizione del primo disco rigido. keytable (hd0,4)/boot/fr-latin1.klt informa GRUB riguardo il tipo di tastiera nel caso abbiate bisogno di passare manualmente delle opzioni al momento del boot.

Quindi incontriamo la parte contenente le sezioni. In totale sono quattro: linux, failsafe, windows, e floppy.

  1. La riga di opzioni per la sezione linux comunica a GRUB che vogliamo sia caricata l'immagine di boot che si chiama vmlinuz e si trova nella directory /boot/ nella quarta partizione del primo disco rigido. L'opzione root=/dev/hda5 non è un'opzione relativa a GRUB, si tratta in effetti di un'informazione passata al kernel per informarlo che il filesystem di root (/) si trova nella partizione /dev/hda5.

  2. La sezione failsafe assomiglia molto alla precedente, fatta eccezione per il fatto che verrà comunicato un argomento al kernel (failsafe) per ordinargli di entrare in modalità single user ("monoutente") o rescue ("salvataggio").

  3. La sezione Windows semplicemente ordina a GRUB il settore di boot della prima partizione, che probabilmente contiene un settore di boot di Windows.

  4. L'ultima sezione, floppy, non fa altro che eseguire il boot a partire da un floppy disk inserito nel primo lettore, qualunque sia il sistema operativo installato su di esso.

Nota

A seconda del livello di sicurezza che usate sul vostro sistema, alcune delle voci qui descritte potrebbero non essere presenti nel vostro file di configurazione.

Adesso arriviamo al nocciolo della questione: dobbiamo aggiungere un'altra sezione GNU/Linux, in modo da poter effettuare il boot con il nuovo kernel. In questo esempio verrà inserita prima delle altre entrate, ma niente vi impedisce di collocarla in un'altra posizione[1]:

title linux-experimental
kernel (hd0,4)/boot/vmlinuz-2.2.17 root=/dev/hda5

Non dimenticate di modificare questa entrata in base alla vostra effettiva configurazione hardware! Il filesystem root di GNU/Linux qui si trova in /dev/hda5, ma molto probabilmente sulla vostra macchina risiede altrove. Il vostro sistema è pronto, potete effettuare un riavvio del computer e godervi il vostro kernel nuovo di zecca!

Se avete compilato il kernel abilitando l'opzione relativa al framebuffer, probabilmente vorrete usarlo: in tal caso, dovete istruire il kernel riguardo la risoluzione di partenza. La lista di modi video è disponibile nel file /usr/src/linux/Documentation/fb/vesafb.txt (soltanto nell'eventualità che si tratti del framebuffer VESA! Altrimenti, fate riferimento al file corrispondente). Per il modo 800x600 a 32 bit[2], il numero della modalità video è 0x315, perciò dovete aggiungere la direttiva:
vga=0x315
in maniera tale che la sezione diventi più o meno così:
title linux-experimental
kernel (hd0,4)/boot/vmlinuz-2.2.17 root=/dev/hda5 vga=0x315 

Per avere ulteriori informazioni, per favore consultate le pagine info relative a GRUB (info grub).

14.5.2. Aggiornamento di LILO

Il modo più semplice di aggiornare LILO è usare DrakBoot (si veda il capitolo DrakBoot: modifica della configurazione di boot nel Manuale utente). In alternativa, potete modificare a mano il file di configurazione secondo le istruzioni che troverete qui di seguito.

Per quanto riguarda LILO, dovrete aggiornare il file /etc/lilo.conf. Quello che segue è un tipico esempio di lilo.conf subito dopo aver installato il pacchetto LILO e prima di ogni modifica:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.9-19mdk
        label=linux
        root=/dev/hda1
        read-only
other=/dev/hda2
        label=dos
        table=/dev/hda

Attenzione

Questo esempio presuppone che voi usiate LILO come boot loader principale! Se invece utilizzate System Commander, la direttiva boot= sarà diversa, e probabilmente non ci sarà nessuna sezione other.

Un file di configurazione lilo.conf consiste di una sezione principale seguita da una sezione per ogni sistema operativo (o kernel) dal quale si può effettuare il boot. Nell'esempio visto in precedenza, la sezione principale consiste delle seguenti istruzioni:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50

La direttiva boot= comunica a LILO dove deve installare il suo settore di boot; nel nostro esempio si tratta del MBR (Master Boot Record) del primo disco rigido IDE. Se desiderate creare un floppy disk basato su LILO, non dovete far altro che sostituire /dev/hda con /dev/fd0 :-) la direttiva prompt impone a LILO di mostrare il prompt al momento del boot e di continuare con la procedura normale dopo 5 secondi (timeout=50). Se cancellate la direttiva timeout=, LILO attenderà finché non avrete digitato qualcosa.

Segue poi una sezione linux:

image=/boot/vmlinuz-2.2.9-19mdk
        label=linux
        root=/dev/hda1
        read-only

Una sezione linux comincia sempre con la direttiva image=, seguita dal percorso completo di un kernel GNU/Linux. Come ogni altra sezione, contiene un'etichetta label= che funge da identificatore univoco. La direttiva root= comunica a LILO qual è la partizione che ospita il filesystem root per questo sistema GNU/Linux. Ovviamente potrebbe essere diverso nel vostro caso. La direttiva read-only ordina a LILO di montare questo filesystem root in modalità di sola lettura al momento dell'avvio del sistema: se questa direttiva non è presente, il fatto vi verrà segnalato con un messaggio di errore.

Subito dopo viene la sezione relativa a Windows:

other=/dev/hda2
        label=dos
        table=/dev/hda

Una sezione che comincia con other=, in effetti, viene usata da LILO per avviare qualsiasi sistema operativo diverso da GNU/Linux: l'argomento passato a questa direttiva è il luogo in cui si trova il settore di boot di questo sistema operativo, e nel caso specifico si tratta di un sistema Windows. Per trovare il settore di boot, situato all'inizio della partizione che ospita questo secondo sistema operativo, GNU/Linux ha anche bisogno di sapere dove si trova la tabella delle partizioni, che gli permetterà di individuare la partizione in questione: questa informazione la ottiene grazie alla direttiva table=. La direttiva label=, esattamente come in una sezione linux, serve per identificare il tipo di sistema operativo.

Prima di aggiungere la nostra sezione linux, vogliamo prendere due uccelli con una fava :-) Il prossimo passo sarà la composizione di un messaggio che venga mostrato prima che compaia il prompt di LILO, per spiegare come usare LILO:

$ cat >/boot/message <<EOF 
> Benvenuti, questo è LILO (LInux LOader). 
> Per elencare le scelte possibili, premi il tasto TAB.
> Sono disponibili: 
> * esp : avvia Linux-Mandrake con un nuovo kernel 
> * linux : il kernel originale di Linux-Mandrake 
> * dos : Windows 
> Premendo INVIO senza specificare un nome verrà effettuato 
> il boot usando la prima immagine della lista, cioè esp.
> EOF 
$

E voilà! Per mostrare questo messaggio ogni volta che si avvia il sistema dovete soltanto aggiungere la direttiva:

message=/boot/message

nella sezione principale del file lilo.conf. Adesso però è necessario aggiungere la sezione GNU/Linux che provvede ad avviare il sistema usando il nuovo kernel. In questo esempio la inseriremo in cima alla lista, ma nulla vi impedisce di scegliere un'altra posizione:

image=/boot/vmlinuz-2.2.17
        label=exp
        root=/dev/hda1
        read-only

Se avete compilato il vostro kernel abilitando l'opzione relativa al framebuffer, fate riferimento al paragrafo corrispondente, visto in precedenza, relativo a GRUB, la differenza adesso è che l'opzione si trova su una propria riga:

vga=0x315

Ecco l'aspetto che il nostro lilo.conf dovrebbe avere dopo tutte le modifiche apportate, compreso l'inserimento di qualche commento supplementare (tutte le righe che cominciano con un #), che verrà ignorato da LILO:

#
# Sezione principale
#
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
# Il nostro messaggio di benvenuto
message=/boot/message
# Mostra il prompt...
prompt
# ... aspetta 5 secondi
timeout=50
#
# Il nostro nuovo kernel è l'immagine predefinita
#
image=/boot/vmlinuz-2.2.17
        label=exp
        root=/dev/hda1
        read-only
# Se viene usato il framebuffer VESA:
        vga=0x315
#
# Il kernel originale
#
image=/boot/vmlinuz-2.2.15-19mdk
        label=linux
        root=/dev/hda1
        read-only
#
# Sezione Windows
#
other=/dev/hda2
        label=dos
        table=/dev/hda

Non dimenticate di adattare il file in modo che corrisponda alla vostra effettiva configurazione! Il filesystem root di GNU/Linux qui si trova in/dev/hda1, ma certo potrebbe risiedere altrove sul vostro sistema; lo stesso vale per il sistema operativo Windows. Adesso che il file di configurazione è stato modificato in maniera appropriata, dovete dire a LILO di cambiare il settore di boot:

$ lilo 
Added exp *
Added linux
Added dos
$

In questo modo avete la possibilità di compilare tutti i kernel che volete, e di aggiungere le sezioni GNU/Linux necessarie per utilizzarli. Adesso non vi resta che riavviare il sistema per provare il nuovo kernel.

Note

[1]

N.d.T.: Giusto per precauzione, conviene non usare il nuovo kernel come quello predefinito per il boot.

[2]

8 bit significa 28 colori, cioè 256; 16 bit significa 216 colori, cioè 64k, o 65536, colori; alla risoluzione di 24 bit, come pure di 32, i colori sono codificati utilizzando 24 bit, cioè 224 colori possibili, in altre parole 16M, o un po' più di 16 milioni di colori.


Tux on Star from MandrakeSoft Linux è un trademark registrato di Linus Torvalds. Tutti gli altri copyright e trademark appartengono ai rispettivi proprietari.
A meno che non sia specificato diversamente, tutto il contenuto di queste pagine e tutte le immagini sono Copyright MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/