GRUB Legacy (Italiano)

From ArchWiki
Revision as of 17:45, 25 June 2010 by Simandr (talk | contribs) (Tips and tricks)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Installare il pacchetto GRUB

Innanzitutto, andrà installato il pacchetto grub

pacman -S grub

Sarà necessario modificare poi il file menu.lst con le vostre impostazioni

nano /boot/grub/menu.lst

Nota: usare hd[a-z] per i dischi ide e sd[a-z] per i dischi scsi e sata

Eccone uno come esempio:

# Config file for GRUB - The GNU GRand Unified Bootloader
# /boot/grub/menu.lst

# DEVICE NAME CONVERSIONS 
#
#  Linux           Grub
# -------------------------
#  /dev/fd0        (fd0)
#  /dev/hda        (hd0)
#  /dev/hdb2       (hd1,1)
#  /dev/hda3       (hd0,2)
#

#  FRAMEBUFFER RESOLUTION SETTINGS
#     +-------------------------------------------------+
#          | 640x480    800x600    1024x768   1280x1024
#      ----+--------------------------------------------
#      256 | 0x301=769  0x303=771  0x305=773   0x307=775
#      32K | 0x310=784  0x313=787  0x316=790   0x319=793
#      64K | 0x311=785  0x314=788  0x317=791   0x31A=794
#      16M | 0x312=786  0x315=789  0x318=792   0x31B=795
#     +-------------------------------------------------+

# general configuration:
timeout   5
default   1
color light-blue/black light-cyan/blue
 
# boot sections follow
# each is implicitly numbered from 1 in the order of appearance below
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*

# (0) Arch Linux
title  Arch Linux  [cpio]
root   (hd0,0)
kernel /boot/vmlinuz26 root=/dev/sda6 ro vga=773
initrd /boot/kernel26.img

title  Arch Linux  [thinkpad]
root   (hd0,0)
kernel /boot/vmlinuz26thinkpad root=/dev/sda6 ro video=vesafb:off acpi_sleep=s3_bios
resume=swap:/dev/sda5
initrd /boot/kernel26thinkpad.img

Copiate infine i mounts nell'mtab

grep -v rootfs /proc/mounts > /etc/mtab

Installare o ripristinare GRUB nel Master Boot Record

GRUB può essere installato direttamente dal sistema Arch in uso, oppure da un ambiente live.

In entrambi i casi, a sistema avviato digitare come root:

# grub

Si aprirà il prompt dei comandi di GRUB.

Specificare la partizione in cui si trova la directory /boot (solitamente la partizione contenente la directory radice del sistema, a meno che non si usi una partizione separata per /boot):

grub> root (hdx,y)

Per sapere in quale partizione si trova /boot è possibile usare il comando find.

Se /boot si trova nella stessa partizione di /, usare:

grub> find /boot/grub/stage1

Se /boot si trova in una partizione separata, usare:

grub> find /grub/stage1

Il risultato sarà simile al seguente:

(hd1,0)

Usare questo risultato con il comando root sopraindicato.

Infine, (re)installare GRUB in un boot sector del disco. Il seguente esempio installa GRUB nel MBR (Master Boot Record) del disco contenente /boot:

grub> setup (hd1)

Il prossimo esempio installa invece GRUB nel VBR (Volume Boot Record) della prima partizione (invece che nel MBR dell'intero disco):

grub> setup (hd1,0)

Per esempio è possibile avere un disco diviso in 4 partizioni, ognuna con un sistema operativo installato, e avere tre installazioni di GRUB in tre VBR diversi, con il quarto installato nel MBR. All'avvio del computer verrà caricato il quarto GRUB, che si trova nel MBR, e da questo si può avviare direttamente ognuno dei quattro sistemi operativi, oppure si può richiamare un altro GRUB fra i rimanenti tre installati nei VBR, grazie al cosiddetto chain loading.

Usare il comando quit per uscire dal prompt dei comandi di GRUB:

grub> quit

Configurazione del bootloader

La configurazione di grub è fatta mediante questo file:

/boot/grub/menu.lst
  • (hdn,m) indica la partizione m sul disco n, iniziando a numerare da 0
  • splashimage (hdn,m)/grub/Name.xpm.gz è il file immagine di splash
  • default n è la voce di boot predefinita, scelta al termine del tempo per la selezione da parte dell'utente
  • timeout m tempo m in secondi per effettuare una selezione, prima che sia lanciata la predefinita
  • password -md5 str password cifrata di boot 'str'
  • title str stringa di titolo 'str' per una voce di boot
  • root (hdn,m) partizione basilare, dove è alloggiato il kernel
  • kernel /path ro root=/dev/device initrd /initrd.img usare l'opzione root se il kernel non si trova in /
  • makeactive
    chainloader +1
    marca come attivo il root e da le procedure di caricamento al suo bootloader (ad es. Windows)
  • map (hd0) (hd1)
    map (hd1) (hd0)
    cambia dischi primari e secondari per il boot, necessario per lanciare Windows da un disco secondario
  • root (hdn,m,z)
    kernel /boot/loader
    lancia la partizione Free-BSD x
  • default saved ricorda ogni corrente selezione di boot e la rende la nuova predefinita. Mettere "savedefault" alla fine di ogni sezione di boot per le caratteristiche che si vogliono usare.

Per abbellire il tutto esiste anche Graphical GRUB.

Dual booting

Ci sono due modi molto diffusi di configurare il file menu.lst. Per usi più complessi vedasi qui.

Dual booting con Windows

Aggiungere questo alla fine di /boot/grub/menu.lst, assumendo che la partizione di Windows sia /dev/sda2.

# (2) Windows XP
title Windows XP
rootnoverify (hd0,1)
makeactive
chainloader +1

Da notare che, nonostante l'opinione comune, Windows 2000 e versioni successive non necessitano diessere le prime partizioni da caricare. Se la partizione di Windows cambia di numero (ad es. se è stata aggiunta una partizione prima di quella di Windows), sarà necessario modificare il file boot.ini di Windows per applicare le modifiche (vedasi questo articolo per i dettagli su come farlo).

Dual booting con Windows su un altro hard disk

Aggiungere questo alla fine di /boot/grub/menu.lst assumendo che la partizione di Windows sia /dev/sdb1.

# (2) Windows XP
title Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1

La funzione map inganna Windows facendogli credere che l'hard disk secondario sia il primario.

Dual booting con altre distribuzioni linux

Ciò è fatto allo stesso modo in cui Arch è caricato. Assumendo che l'altra distribuzione sia nella partizione /dev/sda3.

title Other Linux
root (hd0,2)
kernel /boot/vmlinuz (add other options here as required)
initrd /boot/initrd.img (if the other kernel uses/needs one)

Dual booting con un altra distribuzione linux (Chainloading)

Per evitare incubi di manutenzione, potreste voler sfruttare la funzione di chainload (caricamento a catena) nel GRUB installato nell'MBR per caricare un altro bootloader che potreste aver installato nel bootrecord di una partizione [(hd0,2) nell'esempio] invece che nell'MBR. Questo metodo permette eventualmente ad un altra distribuzione di gestire il "suo" GRUB tramite il menu.lst della propria partizione (sempre se si stia utilizzando GRUB) così da poterla caricare con tutte le opzioni necessarie (ad esempio, con il kernel più recente) senza dover andare a modificare il menu.lst "principale" copiando e incollando dei pezzi da quello secondario. Nell'esempio [1], GRUB è nell' MBR e un altro bootloader (BL) (che sia grub oppure lilo) è nel Boot Record della partizione (hd0,2).

-------------------------------------------------
|   |           |           |    %   (hd0,2)     |
| M |           |           | B  %               |
| B |  (hd0,0)  |  (hd0,1)  | L  %  Other        |
| R |           |           |    %  Distro       |
|   |           |           |    %               |
-------------------------------------------------
  |                            ^
  |     chainloading           |
  -----------------------------

Quindi, nel vostro menu.lst potreste semplicemente mettere una cosa tipo:

title Altra Distro Linux
root (hd0,2)
chainloader +1

Questo funziona anche al contrario: ad esempio se la root di Arch è (hd0,2)/sda2 e scegliete di installare il GRUB di Arch li dentro, invece che nell'MBR, poichè per voi Arch è la seconda distro che installate, il codice precedente andrà inserito nel menu.lst della distro principale che avete già sul sistema.

Tips and tricks

Avvio grafico

Coloro che desiderano una veste grafica più curata, possono dare un'occhiata a grub-gfx. Anche gub2 possiede capacità grafiche avanzate, come le immagini di sfondo o i font ad alta qualità (bitmap fonts).

Riavviare con una scelta definita

Se vi rendete conto di aver bisogno di passare ad un altro SO non di default, ad esempio Windows, dover riavviare ed aspettare che appaia il menù GRUB è tediante. GRUB mette a disposizione un modo semplice per registrare la vostra scelta del SO al riavvio invece di attendere il menù, semplicemente designando un nuovo default temporaneo che sarà reimpostato (al 'default di default') non appena è stato usato.

Supponendo un semplice menu.lst come questo:

# general configuration:
timeout   10
default 0
color light-blue/black light-cyan/blue

# (0) Arch
title  Arch Linux
root   (hd0,1)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/a29113d7-2204-49e9-be69-d94699eba466 ro
initrd /boot/kernel26.img

# (1) Windows
title Microsoft Windows XP Pro
rootnoverify (hd0,0)
makeactive
chainloader +1

Arch è il default (0). Vogliamo riavviare in Windows. Cambiare il default a saved ("default saved") - questo registrerà il default corrente in un file 'default' nella directory di grub finquando il comando grub 'savedefault' non sarà usato. Ora aggiungere la linea "savedefault 0" alla fine del blocco Windows. Non appena Windows verrà avviato, essa reimposterà il default ad Arch, cambiado così il default in Windows temporaneamente.

Ora tutto quello di cui abbiamo bisogno è una maniera per cambiare facilmente il default 'manualmente'. Questo può essere ottenuto usando il comando 'grub-set-default [numero del blocco (partendo da 0)]'. Così per riavviare in Windows, inserire il seguente comando:

 sudo grub-set-default 1 && sudo shutdown -r now

Per semplicità d'uso, potreste voler implementare il "fix Permettere agli utenti di fare shutdown" (includendo /sbin/grub-set-default tra i comandi che l'utente è autorizzato ad eseguire senza fornire una password).

Identificazione tramite etichette

Se alterate (o pensate di dover alterare) la dimensione delle partizioni di consueto, potreste prendere in considerazione la definizione di etichette (label) per le vostre partizioni. Potete etichettare partizioni ext2, ext3, ext4 attraverso il comando:

e2label </dev/drive|partizione> nome_etichetta

Il nome dell'etichetta può essere lungo fino a 16 caratteri, ma non può contenere spazi, in modo tale che l'etichetta venga riconosciuta da GRUB. A questo punto modificate /boot/grub/menu.lst:

kernel /boot/vmlinuz26 root=/dev/disk/by-label/nome_etichetta ro

Interazioni tra GRUB e LiLO

Se stavate usando lilo ricordatevi di rimuoverlo dando da terminale

pacman -R lilo

dato che alcune operazioni (ad es. compilazione kernel usando make all) chiameranno lilo, sovrascrivendolo su grub. Va notato che questo comando non rimuove lilo dallo MBR, esso sarà sovrascritto quando verrà installato un altro bootloader.

Risoluzione del framebuffer

Potreste usare la risoluzione indicata nel file menu.lst di grub. Ma potreste anche voler usare il vostro maxi schermo LCD alla sua massia risoluzione nativa. Ecco cosa potete fare per ottenerlo.

Su wikipedia, c'è una lista di risoluzioni estese del framebuffer (quelle al di fuori dello standard VBE, ad esempio). Ma quella che vorreste usare, ad esempio, è 1440x900 e vga=867 non funziona. Forse perchè quella risoluzione non è standard ed ogni produttore di schede grafiche adotta il codice che preferisce.

Così invece di usare quella tabella, suggerisco di adottare questo medodo:

Come trovare il codice corretto per la risoluzione che desiderate

  1. installare il pacchetto lrmi dal repository [community]
  2. eseguire vbetest come utente root in una console che già stia lavorando sul framebuffer. Non funzionerà' in un terminale per X.
  3. annotare il numero tra [ ] corrispondente alla risoluzione desiderata
  4. premere 'q' per uscire dal prompt interattivo di vbetest. Se desiderate provare la risoluzione che avete appena scelto, potete eseguire vbtest -m vostrocodice per controllare la risoluzione. Vedrete l'immagine di una scacchiera colorata sulla vostra console. Ritornerà nera dopo qualche secondo. Se il testo della vostra console non si ripristinerà dovrete passare ad un'altra console e ritornare alla precedente per ripristinarla. (minor glitch)
  5. aggiungere 512 al numero ottenuto in precedenza ed usare il totale come codice da usare per l'opzione vga= in menu.lst.
  6. riavviare e voilà !

Ad esempio, quello che avete ottenuto con vbetest è :

[356] 1440x900 (256 color palette)
[357] 1440x900 (8:8:8)

così il numero che volevate è 357. Fate 357 + 512 = 869, così userete vga=869.

Ora, avrete una console alla massima risoluzione nativa del vostro schermo. Il prossimo passo è di usare un altro font per la console della dimesione corretta. Nel mio caso uso il font terminus chiamato ter-120b.

Nota:

  • (8:8:8) è per colori a 24-bit (o 32-bit ?)
  • (5:6:5) è per colori a 16-bit
  • (5:5:5) è per colori a 15-bit

Troubleshooting

GRUB error 15

Assicuratevi che la linea del kernel abbia ro in menu.lst.

Il menù a tendina di reboot in KDE non ha nessun effetto

Se avete aperto un sottomenu con la lista di tutti i sistemi operativi configurati in grub, selezionatone uno e dopo il riavvio avete ancora ottenuto il sistema operativo di default, allora potrese voler controllare se avete la linea

default   saved

nel file /boot/grub/menu.lst.

Risorse esterne