[ << ]
[ < ]
[ 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 il bootloader ecco 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 il kernel è stato configurato con supporto al framebuffer (o è stato
utilizzata la configurazione predefinita di genkernel), è possibile
attivarne l'utilizzo aggiungendo l'opzione video al file di
configurazione del bootloader.
Innanzitutto è necessario conoscere la propria periferica framebuffer. Si
dovrebbe utilizzare uvesafb come driver VESA.
L'opzione video controlla i parametri del framebuffer. Necessita di avere
il driver del framebuffer seguito dalle impostazioni da abilitare. Tutte le
impostazioni attivabili sono elencate in
/usr/src/linux/Documentation/fb/uvesafb.txt. Quelle più utilizzate
sono:
| Parametro |
Descrizione |
| ywrap |
Assume che la scheda grafica possa accedere circolarmente alla memoria e
continuare dall'inizio una volta arrivati alla fine
|
| mtrr:n
|
Imposta i registri MTRR. n può essere:
0 - disabled
1 - uncachable
2 - write-back
3 - write-combining
4 - write-through
|
| mode |
Imposta la risoluzione, il numero di colori e la frequenza di refresh. Ad
esempio 1024x768-32@85 per una risoluzione di 1024x768, 32 bit di
colori e una frequenza di refresh di 85 Hz.
|
Il risultato di queste due impostazioni può essere del tipo
video=uvesafb:mtrr,ywrap,1024x768-32@85. E' importante ricordare questa
riga perchè sarà utile in seguito.
Continuare ora con l'installazione di GRUB o LILO.
10.b. Predefinito: 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/sda1 (per le periferiche IDE) o
/dev/sda1 (per le periferiche SATA/SCSI) è probabilmente chiamata
da GRUB (hd0,0). Prestare attenzione alle parentesi intorno ad
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 fare boot da un disco diverso (ad esempio il primary slave)
quel disco viene visto come hd0.
Avendo quindi un hard disk in /dev/sda, 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. Assicurarsi di
personalizzare le impostazioni indicando la propria immagine del kernel e il
proprio initrd.
Nota:
Grub assegna i dispositivi prendendo la configurazione dal BIOS. Se si cambiano
le impostazioni di quest'ultimo, le lettere e la numerazione dei propri
dispositivi potrebbero anche cambiare. Per esempio, se si cambia l'ordine di
avvio dei dispositivi, potrebbe essere necessario cambiare la propria
configurazione di grub.
|
Nota:
Se il proprio filesystem root è JFS è necessario aggiungere "ro" alla
linea kernel perchè JFS ha bisogno di esaminare il proprio log prima di
concedere il mount in scrittura.
|
Codice 2.3: Esempio di grub.conf |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 3.3.8
root (hd0,0)
kernel /boot/kernel-3.3.8-gentoo root=/dev/sda3
title Gentoo Linux 3.3.8 (rescue)
root (hd0,0)
kernel /boot/kernel-3.3.8-gentoo root=/dev/sda3 init=/bin/bb
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Se durante la compilazione del kernel, hai optato per includere un initramfs all'avvio,
sarà necessario modificare la configurazione facendo riferimento a questo initramfs e 'dire'
dove la tua reale radice è situata
Codice 2.4: Esempio di GRUB per initramfs |
title Gentoo Linux 3.3.8
root (hd0,0)
kernel /boot/3.3.8 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-3.3.8-gentoo
|
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 dispositivo GRUB (come (hd0,0)), sia
relativa al punto di mount, 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 /boot sia stata definita come partizione separata sia no.
Se si ha bisogno di inserire opzioni ulteriori al kernel, aggiungerle alla fine
del comando kernel. Si è già inserita una opzione (root=/dev/sda3 o
real_root=/dev/sda3), ma se ne possono inserire altre, ad esempio
l'istruzione video per il framebuffer, di cui si è parlato
precedentemente:
Se il proprio file di configurazione del bootloader contiene il parametro
real_root usare il parametro rootflags per impostare le opzioni di montaggio
del filesystem di root.
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 Predefinito: Impostare
GRUB con grub-install o Alternativa:
Impostare GRUB manualmente.
Predefinito: 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 per 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 --no-floppy /dev/sda
|
Per ulteriori informazioni riguardanti GRUB consultare le domande frequenti su GRUB
(FAQ) (in inglese, ndt), il Wiki di GRUB (in inglese, ndt) o
leggere info grub dal proprio terminale.
Continuare la lettura con il Riavvio 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 --no-floppy
|
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/sda1 ed 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 una specifica partizione invece che nell'MBR,
bisogna alterare il comando setup per farlo puntare alla partizione
corretta. Per esempio, se si vuole installare GRUB in /dev/sda3,
allora il comando diventa setup (hd0,2). Tuttavia pochi utenti
potrebbero avere questa necessità.
|
Per ulteriori informazioni riguardanti GRUB consultare le domande frequenti su GRUB
(FAQ) (in inglese, ndt), il Wiki di GRUB (in inglese, ndt) o
leggere info grub dal proprio terminale.
Continuare la lettura con il Riavvio 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: 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 il
l'esempio di partizionamento.
E' importante assicurarsi di usare la propria immagine del kernel ed
eventualmente il proprio initrd.
Nota:
Se il proprio filesystem root è JFS, è necessario aggiungere una riga
append="ro" alla fine di ogni elemento boot perchè JFS deve poter
esaminare il suo log prima di concedere il mount in scrittura.
|
Codice 3.3: Esempio di /etc/lilo.conf |
boot=/dev/sda
prompt
delay=50
default=gentoo
image=/boot/kernel-3.3.8-gentoo
label=gentoo
read-only
root=/dev/sda3
image=/boot/kernel-3.3.8-gentoo
label=gentoo.rescue
read-only
root=/dev/sda3
append="init=/bin/bb"
other=/dev/sda6
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 durante la compilazione del kernel, hai optato per includere un initramfs all'avvio,
sarà necessario modificare la configurazione facendo riferimento a questo initramfs e 'dire'
dove la tua reale radice è situata:
Codice 3.4: Esempio di LILO per initramfs |
image=/boot/kernel-3.3.8-gentoo
label=gentoo
read-only
append="real_root=/dev/sda3"
initrd=/boot/initramfs-genkernel-x86-3.3.8-gentoo
|
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.5: Usare append per aggiungere opzioni al kernel |
image=/boot/kernel-3.3.8-gentoo
label=gentoo
read-only
root=/dev/sda3
>append="video=uvesafb:mtrr,ywrap,1024x768-32@85"
|
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 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.6: Finire l'installazione di LILO |
# /sbin/lilo
|
Per ulteriori dubbi o perplessità riguardanti LILO è possibile consultare la
pagina
wikipedia dedicata
Continuare ora con il Riavvio del sistema.
10.d. Riavvio del sistema
Uscire dall'ambiente in chroot e smontare tutte le partizioni. Ed eseguire poi
l'ultimo comando, reboot.
Codice 4.1: Umount delle partizioni e reboot |
# exit
cdimage ~# cd
cdimage ~# umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~# umount -l /mnt/gentoo{/boot,/proc,}
cdimage ~# reboot
|
Non dimenticare di rimuovere il CD avviabile, altrimenti verrà di nuovo avviato
il CD al posto del sistema appena installato.
Una volta effettuato il riavvio 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.
|