Gentoo Logo

[ << ] [ < ] [ 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

# Quale opzione viene avviata in modo predefinito. 0 è la prima, 1 la seconda, ecc.
default 0
# Quanti secondi attenedere prima di avviare l'opzione predefinita.
timeout 30
# Un'immagine gradevole da commentare se non si dispone di scheda grafica
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 3.3.8
# La partizione dove si trova l'immagine del kernel (o il sistema operativo)
root (hd0,0)
kernel /boot/kernel-3.3.8-gentoo root=/dev/sda3

title Gentoo Linux 3.3.8 (rescue)
# Partizione dove si trova l'immagine del kernel o il sistema operativo
root (hd0,0)
kernel /boot/kernel-3.3.8-gentoo root=/dev/sda3 init=/bin/bb

# Le prossime tre righe vanno messe solo se si ha un dualboot con Windows.
# In questo caso, Windows è in /dev/sda6.
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)          (Specifica dove è la partizione /boot)
grub> setup (hd0)           (Installa GRUB nel MBR)
grub> quit                  (Esce dalla shell di GRUB)

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             # Installa LILO nel MBR
prompt                    # Dà possibilità di selezionare un'altra sezione
delay=50                  # Aspetta 5 secondi prima di avviare la scelta predefinita
default=gentoo            # Passato il timeout, avvia la sezione "gentoo"

image=/boot/kernel-3.3.8-gentoo
  label=gentoo            # Il nome dato alla sezione
  read-only               # Avvio con root di sola lettura. Non modificare!
  root=/dev/sda3          # Posizione del filesystem root

image=/boot/kernel-3.3.8-gentoo
  label=gentoo.rescue     # Il nome dato alla sezione
  read-only               # Avvio con root di sola lettura. Non modificare!
  root=/dev/sda3          # Posizione del filesystem root
  append="init=/bin/bb"   # Lancia la shell statica di emergenza

# Le due righe seguenti sono necessarie solo per un dualboot con Windows.
# In questo caso, Windows è in /dev/sda6.
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 ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 11 settembre 2012

La versione originale di questo documento è più recente ed è stata aggiornata il 17 agosto 2014

Oggetto: Esistono svariati Bootloader per l'architettura x86. Ognuno di essi viene configurato in maniera differente. In questo capitolo si descrivono le possibilità disponibili e si illustra come configurare il Bootloader secondo le proprie necessità.

Sven Vermeulen
Autore

Grant Goodyear
Autore

Roy Marples
Autore

Daniel Robbins
Autore

Chris Houser
Autore

Jerry Alexandratos
Autore

Seemant Kulleen
Sviluppo x86

Tavis Ormandy
Sviluppo Alpha

Jason Huebel
Sviluppo AMD64

Guy Martin
Sviluppo HPPA

Pieter Van den Abeele
Sviluppo PPC

Joe Kallar
Sviluppo SPARC

John P. Davis
Redazione

Pierre-Henri Jondot
Redazione

Eric Stockbridge
Redazione

Rajiv Manglani
Redazione

Jungmin Seo
Redazione

Stoyan Zhekov
Redazione

Jared Hudson
Redazione

Colin Morey
Redazione

Jorge Paulo
Redazione

Carl Anderson
Redazione

Jon Portnoy
Redazione

Zack Gilburd
Redazione

Jack Morgan
Redazione

Benny Chuang
Redazione

Erwin
Redazione

Joshua Kinard
Redazione

Tobias Scherbaum
Redazione

Xavier Neys
Redazione

Joshua Saddler
Redazione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Pacella
Traduzione

Enrico Morelli
Traduzione

Davide Cendron
Traduzione

Sergio Vaccaro
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.