[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
10. Configurazione del Bootloader
Indice:
10.a. La scelta
Introduzione
Dopo aver configurato e compilato il kernel e inserito i necessari file di
configurazione, è venuto il momento di installare il programma che esegue il
kernel nel momento in cui si avvia il sistema. Tale programma è chiamato
bootloader. Per la piattaforma x86, Gentoo Linux fornisce GRUB e LILO.
ma prima di installare uno di questi due bootloader si spiega come configurare
il framebuffer (nel caso lo si desideri ovviamente). Con il framebuffer è
possibile
eseguire la linea di comando Linux con alcune caratteristiche grafiche (come
lo sfondo che viene fornito da Gentoo).
Opzionale: Framebuffer
Se si è configurato il kernel con il supporto framebuffer (o si è usata
la configurazione di default genkernel, è possibile attivarlo aggiungendo
una istruzione vga e/o video al file di configurazione del
bootloader.
Innanzitutto è necessario sapere che tipo di dispositivo framebuffer si sta
utilizzando.
Se si utilizza un kernel Gentoo (come gentoo-sources) è possibile
scegliere
vesafb-tng come VESA driver type (impostazione di default per quel
tipo
di kernel). Se è questo il caso, con l'utilizzo di vesafb-tng non è
necessario
l'utilizzo della direttiva vga. In caso contrario si può utilizzare il
driver
vesafb ed è necessario impostare la direttiva vga.
La direttiva vga controlla la risoluzione e la definizione del solore
del proprio schermo framebuffer vesafb. Come è possibile leggere in
/usr/src/linux/Documentation/fb/vesafb.txt (che viene installato
insieme ai pacchetti del kernel) è necessario passare il numero VESA
corrispondente
alle impsotazioni di risoluzione e definizione desidereate.
la seguente tabella elenca le diverse risoluzioni e definizioni di colore ed
evidenzia
il valore da passare con la direttiva vga.
|
640x480 |
800x600 |
1024x768 |
1280x1024 |
| 256 |
0x301 |
0x303 |
0x305 |
0x307 |
| 32k |
0x310 |
0x313 |
0x316 |
0x319 |
| 64k |
0x311 |
0x314 |
0x317 |
0x31A |
| 16M |
0x312 |
0x315 |
0x318 |
0x31B |
La direttiva video controlla le opzioni di visualizzazione framebuffer.
Necessita
del driver framebuffer (vesafb per i kernel 2.6, o vesa per i
kernel
2.4) seguito dalle impostazioni da abilitare. Tutte le variabili coinvolte sono
elencate
in /usr/src/linux/Documentation/fb/vesafb.txt, ma di seguito
vengono riportate
le più usate:
| Impostazione |
Descrizione |
| ywrap |
Assume che la scheda grafica possa utilizzare la memoria come una coda
circolare e
tornare all'inzio quando è arrivato alla fine
|
| mtrr |
Imposta i registri MTRR
|
| mode |
(solo vesafb-tng)
Imposta la risoluzione, la profondità di colore e il periodo di refresh. Ad
esempio
1024x768-32@85 per una risoluzione 1024x768, 32 bit di colore ed un
refresh di 85 Hz.
|
Il risultato di queste due impostazioni può risultare in qualcosa del tipo
vga=0x318
video=vesafb:mtrr,ywrap o video=vesafb:mtrr,ywrap,1024x768-32@85.
E' necessario annotare queste impostazioni per usarle più tardi.
Continuare ora con l'installazione di GRUB o LILO.
10.b. Default: Usare GRUB
Comprendere la terminologia di GRUB
La parte più critica da capire di GRUB, è quella nella quale si deve prendere
confidenza con il modo in cui GRUB si riferisce ai dischi e alle partizioni. La
partizione di Linux /dev/hda1 è chiamata da GRUB
(hd0,0). Prestare attenzione alle parentesi tra hd0,0,
sono necessarie.
I dischi vengono contati da zero invece che da "a", e le partizioni partono da
zero invece che da uno. Prestare ancora attenzione al fatto che tra le
periferiche hd vengono inclusi solo gli hard disk e non le periferiche atapi-ide
come i lettori cdrom e i masterizzatori. Lo stesso vale per i dischi SCSI.
(Normalmente questi prendono numeri più alti rispetto a quelli ide, eccetto
quando il bios è configurato per fare il boot dai dischi SCSI.) Quando si
imposta il BIOS per avviare da un hard disk differente, questo hard disk
è visto come hd0.
Avendo quindi un hard disk in /dev/hda, un lettore cdrom in
/dev/hdb, un masterizzatore in /dev/hdc, un secondo
hard disk in /dev/hdd e nessun disco SCSI, /dev/hdd7
viene trasformato in (hd1,6). Potrebbe suonare complicato e lo è in
effetti, ma come si vedrà, GRUB offre un meccanismo di completamento con il
tasto TAB che si dimostra comodo per coloro che hanno un numero elevato di hard
disk e partizioni, e per coloro che sono a disagio con lo schema numerico di
GRUB.
Dopo essere entrati nello spirito è il momento di installare GRUB.
Installare GRUB
Per installare GRUB, si deve prima emergerlo:
Codice 2.1: Installare GRUB |
# emerge grub
|
Nonostante GRUB sia installato, si deve ancora modificare un file di
configurazione perchè GRUB
venga installato nel MBR in modo che possa avviare il nuovo kernel. Creare
/boot/grub/grub.conf con nano (o con un altro editor):
Codice 2.2: Creare /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
Ora è necessario modificare grub.conf. Seguono due possibili
grub.conf per l'esempio di partizione usato in questa guida. Viene
però analizzato a fondo solo il primo grub.conf. Assicurarsi di
personalizzare le impostazioni indicando la
propria immagine del kernel e il proprio initrd.
-
Il primo grub.conf è per chi non ha usato genkernel per
compilare il kernel
-
Il secondo grub.conf è per chi ha usato genkernel
Nota:
Se il filesystem root utilizza JFS si deve aggiungere "ro" alla linea del
kernel perchè JFS necessita di replicare il proprio log prima di poter
accedere anche in scrittura.
|
Codice 2.3: grub.conf per utenti che non hanno usato genkernel |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux 2.6.12-r10
root (hd0,0)
kernel /boot/kernel-2.6.12-gentoo-r10 root=/dev/hda3
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Codice 2.4: grub.conf per utenti che hanno usato genkernel |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux 2.6.12-r10
root (hd0,0)
kernel /boot/kernel-2.6.12-gentoo-r10 root=/dev/ram0
init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /boot/initrd-2.6.12-gentoo-r10
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Se si usa uno schema di partizioni e/o un'immagine del kernel differenti da
quelli dell'esempio, cambiare le impostazioni di conseguenza. Assicurarsi che
qualsiasi cosa che segue un GRUB-device (come (hd0,0)), sia
relativa al mountpoint, e non a root. In altre parole,
(hd0,0)/boot/grub/splash.xpm.gz è
/boot/grub/splash.xpm.gz poichè (hd0,0) è
/boot.
Inoltre, se si sceglie di utilizzare uno schema di partizionamento diverso e
non si è posto /boot in una partizione separata l'aggiunta
di /boot negli esempi precedenti è davvero essenziale. Se
invece si è seguito lo schema suggerito l'utilizzo del prefisso
/boot non è richiesto ma può essere utilizzato con un link
simbolico a boot. In breve, gli esempi proposti sono
funzionanti sia che si sia definta una partizione separata per
/boot che no.
Se si ha bisogno di inserire opzioni ulteriori al kernel, si deve aggiungerle
alla fine del comando kernel. Si è già inserita una opzione
(root=/dev/hda3 o real_root=/dev/hda3), ma se ne possono inserire
altre, ad esempio l'istruzione video e/o vga per il framebuffer,
di cui si è parlato precedentemente.
Se si utilizza un kernel successivo al 2.6.7 e il proprio BIOS non riconosce
i drive grandi è necessario aggiungere l'istruzione
hdx=stroke.
Coloro che usano genkernel devono sapere che i loro kernel hanno le
stesse opzioni di boot del CD di Installazione. Per esempio, se si disponde di
un disco SCSI, si dovrebbe aggiungere doSCSI come opzione del kernel.
Salvare ora il file grub.conf e uscire. Bisogna ancora installare
GRUB nel MBR (Master Boot Record) in modo che GRUB venga eseguito
automaticamente al boot del sistema.
Gli sviluppatori di GRUB raccomandano l'utilizzo di grub-install.
In ogni caso, se per qualche ragione grub-install non funzionasse
è ancora possibile installare GRUB manualmente.
Continuare la lettura con Default: Impostare GRUB
con
grub-install o Alternativa: Impostare
GRUB manualmente.
Default: Impostare GRUB con grub-install
Per installare GRUB è necessario lanciare il comando grub-install. In
questo caso però
grub-install non può funzionare come al solito, perchè siamo in un
ambiente in chroot.
Dobbiamo prima aggiornare /etc/mtab (il file contenente le
informazioni sui filesystem montati): fortunatamente c'è un modo semplice di
farlo, copiando /proc/mounts in /etc/mtab ed
escludendo rootfs se non è stata creata una partizione di boot separata.
Il seguente comando è valido in ogni caso:
Codice 2.5: Aggiornamento di /etc/mtab |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Ora è possibile installare GRUB con grub-install:
Codice 2.6: Eseguire grub-install |
# grub-install /dev/hda
|
Per ulteriori informazioni riguardanti GRUB consultare le GRUB FAQ o il GRUB Manual.
Continuare la lettura con il Reboot del sistema.
Alternativa: Impostare GRUB manualmente
Per iniziare la configurazione di GRUB, digitare grub. Viene visualizzato
il prompt della linea di comando di grub, grub>. Ora si può
procedere a digitare i comandi corretti per installare il boot record di GRUB
sull'hard disk.
Codice 2.7: Avviare la shell di GRUB |
# grub
|
Nota:
Se il sistema non dispone di un lettore floppy, aggiungere l'opzione
--no-floppy
al comando precedente per evitare che grub lo cerchi.
|
Nella configurazione di esempio, si desidera installare GRUB in modo che legga
le proprie informazioni dalla partizione di boot /dev/hda1 e
installare il boot record di GRUB nel MBR (master boot record) dell'hard disk,
in modo che la prima cosa che si veda, quando si accende il computer, sia il
prompt di GRUB. Se non si è seguita la configurazione di esempio durante
l'installazione, è necessario cambiare i comandi di conseguenza.
Il meccanismo di completamento con il tasto TAB, può essere usato da dentro
GRUB. Per esempio, se si digita "root (" seguito da TAB, viene elencata
una lista degli hard disk disponibili (come hd0). Se si digita
"root (hd0," seguito da TAB, viene invece elencata una lista delle
partizioni disponibili nel disco (come hd0,0).
Con il tasto TAB non dovrebbe essere difficile impostare GRUB. Ecco ora la vera
e propria configurazione di GRUB.
Codice 2.8: Installare GRUB nel MBR |
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
|
Nota:
Se si desidera installare GRUB in un'altra partizione, invece che nel MBR, è
necessario cambiare il comando setup, in modo che esso punti alla
partizione corretta. Per esempio, se si vuole installare GRUB in
/dev/hda3, allora il comando diventa setup (hd0,2). Ma
questo non è un caso molto comune.
|
Per ulteriori informazioni riguardanti GRUB consultare le GRUB FAQ o il GRUB Manual.
Nota:
Quando si reinstalla un kernel, non è più necessario copiare i file.
E' sufficiente eseguire make install dopo la compilazione del kernel e
automaticamente vengono copiati i file e reimpostata la configurazione
di grub.
|
Continuare la lettura con il Reboot del sistema.
10.c. Alternativa: Usare LILO
Installare LILO
LILO, il LInuxLOader, è il più provato e il più usato tra i bootloader di Linux.
Però a LILO mancano alcune caratteristiche che non mancano a GRUB (è per questo
che GRUB sta guadagnando sempre più popolarità). Tuttavia LILO è ancora usato
perchè, su alcuni sistemi, GRUB non funziona, mentre LILO funziona. LILO è usato
anche perchè le persone che lo usano non vogliono abbandonarlo. Gentoo li
supporta entrambi ed ecco come si usa LILO.
Installare LILO è veloce, utilizzare emerge così:
Codice 3.1: Installare LILO |
# emerge lilo
|
Configurare LILO
Per configurare LILO si deve creare /etc/lilo.conf. Aprire l'editor
preferito (in questo manuale si usa nano) e creare il file.
Codice 3.2: Creare /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
In una sezione precedente, si è chiesto di ricordare il nome dell'immagine del
kernel che si è creata. Nel prossimo esempio di lilo.conf si usa
anche lo schema di partizioni dell'esempio precedente. Ci sono due sezioni
separate:
-
Una per chi non ha usato genkernel per compilare il kernel
-
Una per chi ha usato genkernel per compilare il kernel
E' importante assicurarsi di usare la propria immagine del kernel ed
eventualmente
il proprio initrd.
Codice 3.3: Esempio di /etc/lilo.conf |
boot=/dev/hda
prompt
delay=50
default=gentoo
image=/boot/kernel-2.6.12-gentoo-r10
label=gentoo
read-only
root=/dev/hda3
image=/boot/kernel-2.6.12-gentoo-r10
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
initrd=/boot/initrd-2.6.12-gentoo-r10
other=/dev/hda6
label=windows
|
Nota:
Se si usa uno schema di partizioni differente e/o un'immagine del kernel non
uguale a quella dell'esempio, cambiare le impostazioni di conseguenza.
|
Se si ha bisogno di inserire ulteriori opzioni al kernel, si deve aggiungere
append alla sezione. Come esempio, si usa video per abilitare il
framebuffer:
Codice 3.4: Usare append per aggiungere opzioni al kernel |
image=/boot/kernel-2.6.12-gentoo-r10
label=gentoo
read-only
root=/dev/hda3
append="video=vesafb:mtrr,ywrap,1024x768-32@85"
|
Se il BIOS non riconosce
i drive grandi e si utilizza un kernel 2.6.7 o superiore è necessario aggiungere
l'istruzione
hdx=stroke.
Coloro che usano genkernel devono sapere che i loro kernel hanno le
stesse opzioni di boot del CD di Installazione. Per esempio, se si disponde di
un disco SCSI, si deve aggiungere doSCSI come opzione del kernel.
Ora salvare il file e uscire. Per finire, si deve eseguire /sbin/lilo,
così LILO può applicare /etc/lilo.conf al sistema (per esempio,
installarsi sul disco). E' importante ricordare di eseguire /sbin/lilo
ogni volta che si
installa un nuovo kernel o si cambiano le impostazioni del menu.
Codice 3.5: Finire l'installazione di LILO |
# /sbin/lilo
|
Nota:
Quando si reinstalla un kernel, non è più necessario copiare i file.
E' sufficiente eseguire make install dopo la compilazione del kernel e
automaticamente vengono copiati i file e reimpostata la configurazione
di LILO.
|
Continuare ora con il Reboot del sistema.
10.d. Reboot del sistema
Uscire dall'ambiente in chroot e smontare tutte le partizioni. Ed eseguire poi
l'ultimo comando, reboot.
Codice 4.1: Umount della partizioni e reboot |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc
/mnt/gentoo
cdimage ~# reboot
|
Non dimenticare di rimuovere il CD bootabile, altrimenti verrà di nuovo
avviato il CD al posto del sistema appena installato.
Una volta effettuato il reboot nella nuova installazione Gentoo, concludere con
Termine dell'installazione di Gentoo.
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|