Gentoo Logo

Disclaimer : Questo manuale è stato sostituito da una nuova versione e non è più mantenuto.


[ << ] [ < ] [ 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 che utilizza l'immagine del kernel kernel-2.6.11-gentoo-r3. 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

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

title=Gentoo Linux 2.6.10-r6
# La partizione dove si trova l'immagine del kernel (o il sistema operativo)
root (hd0,0)
kernel /kernel-2.6.11-gentoo-r3 root=/dev/hda3

# Le prossime tre righe vanno messe solo se si ha un dualboot con Windows.
# In questo caso, Windows è in /dev/hda6.
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)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.10-r6
root (hd0,0)
kernel /kernel-2.6.11-gentoo-r3 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.6.10-gentoo-r6

# Solo nel caso si desideri il dual-boot
title=Windows XP
root (hd0,5)
makeactive
chainloader +1

Nota: 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)/grub/splash.xpm.gz è /boot/grub/splash.xpm.gz poichè (hd0,0) è /boot.

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 modod semplice di farlo, copiando /proc/mounts in /etc/mtab:

Codice 2.5: Aggiornamento di /etc/mtab

# cp /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)          (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 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 --usepkg 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 suppone che il nome dell'immagine sia kernel-2.6.11-gentoo-r3. In questo esempio 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             # Installa LILO nel MBR
prompt                    # Dà possibilità di selezionare un'altra sezione
delay=50                  # Aspetta 5 secondi prima di avviare il default
default=gentoo            # Passato il timeout, avvia la sezione "gentoo"

# Per utenti che non hanno usato genkernel
image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo            # Il nome dato alla sezione
  read-only               # Avvio con root di sola lettura. Non modificare!
  root=/dev/hda3          # Posizione del filesystem root

# Per utenti che hanno usato genkernel
image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
  initrd=/boot/initrd-2.6.10-gentoo-r6

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


Stampa

Visualizza tutto

Aggiornato il 9 giugno 2005

Questa traduzione non è più mantenuta

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

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

Grant Goodyear
Revisione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Rossi
Traduzione

Enrico Morelli
Traduzione

Donate to support our development efforts.

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