Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Cestino/Grub/Legacy"
Differenze tra le versioni 29 e 80 (in 51 versioni)
Versione 29 del 05/05/2007 16.14.48
Dimensione: 16745
Autore: DavideLuigi
Commento:
Versione 80 del 04/04/2021 14.04.36
Dimensione: 15484
Autore: wilecoyote
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from AmministrazioneSistema/Grub/Legacy
## page was renamed from AmministrazioneSistema/Grub
## page was renamed from Grub
Linea 2: Linea 5:
#format wiki
Linea 3: Linea 7:
[[BR]]
||<tablestyle="float: right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">[[TableOfContents(1)]]||

<<BR>>
<<Indice(depth=1)>>
<<Include(StrumentiWiki/MacroCestino)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=82907"; rilasci="9.04 8.04")>>
Linea 9: Linea 13:
'''Grand Unified Bootloader''' (GRUB) è il boot loader predefinito di Ubuntu. Il boot loader è il programma che viene richiamato direttamente dal BIOS durante l'accensione del computer, e si preoccupa di scegliere e avviare un sistema operativo fra quelli presenti nel computer. In genere GRUB riconosce automaticamente i sistemi operativi presenti e li inserisce in un menù iniziale, ma volendo si può modificare manualmente questo menu, ad esempio nel caso raro in cui un sistema non venga riconosciuto correttamente oppure se si vuole personalizzare le impostazioni d'avvio.

= L'installazione di GRUB =

'''GRUB''' viene automaticamente installato da Ubuntu. Se però in seguito si è installato un Sistema Operativo (come MS-Windows) che sovrascrive GRUB e ignora la presenza di altri sistemi operativi, o se si è installato un secondo boot loader e ora si vuole tornare a GRUB, ci si trova nella necessità di ripristinare '''GRUB''', seguendo la guida [:RipristinoGrub].

L'installazione predefinita di GRUB prevede la modifica dell'MBR (Master Boot Record, il primo settore del disco fisso), in modo che GRUB sia il primo boot loader ad essere caricato, e la creazione dei file necessari all'avvio nella directory `/boot`, che diventa la '''directory radice di GRUB''' (da non confondere con la '''directory di root del sistema /'''). Il file di configurazione di GRUB è `/boot/grub/menu.lst`, basta modificarlo e al successivo avvio '''GRUB''' si comporterà di conseguenza.

[[Anchor(avvio_interattivo)]]
= Avvio interattivo del sistema =

I comandi necessari per fare partire un sistema possono essere inseriti interattivamente all'avvio di GRUB. All'avvio comparirà il classico menù con una voce per ogni sistema operativo installato. Spostandosi su una voce a scelta e premendo il tasto "'''e'''" si entra in modalità editing e si possono modificare le opzioni di avvio per quella voce, oppure premendo il tasto "'''c'''" si ha accesso alla linea di comando di GRUB, in cui si possono inserire da zero i comandi per far partire un sistema operativo qualunque. '''GRUB''' può leggere le varie partizioni e visualizzare i nomi dei file, e grazie all'autocompletamento si è sicuri di non sbagliare il percorso o i nomi dei file. In questo modo è facile fare velocemente molte prove con kernel o parametri di boot diversi, al volo, senza dover modificare alcun file; se si verifica un errore che blocca il caricamento del kernel basta riavviare il sistema e provare un'opzione diversa. Trovati i parametri giusti si possono [#modifiche_permanenti rendere permanenti le modifiche] in modo che non sia più necessario inserirli a mano.

== Far partire un sistema Linux ==

Il primo comando da dare è '''root''', che imposta il disco fisso e la partizione in cui si trova la directory radice di GRUB. Trovate questa informazione nel file `/etc/fstab`. Se fosse `/dev/hda3`, dovremmo scrivere al prompt di GRUB : {{{
{{{#!wiki important
Questa guida fa rifermento a una versione obsoleta di GRUB. Può essere utile trovandosi di fronte a installazioni molto vecchie di sistemi Linux. In ogni altro caso fare riferimento alla guida [[AmministrazioneSistema/Grub|GRUB]].
}}}

'''GRUB''' ('''''G'''rand '''U'''nified '''B'''ootloader'') è il ''boot loader'' predefinito di '''Ubuntu''', viene avviato subito dopo le operazioni POST del BIOS e si preoccupa di scegliere e avviare un sistema operativo fra quelli presenti nel computer oppure avviare in cascata un secondo boot loader. In genere '''GRUB''' riconosce automaticamente i sistemi operativi presenti e li inserisce nel menù iniziale. È possibile personalizzare o modificare la configurazione, modificare l'elenco dei sistemi operativi, il tempo di avvio e molti altri aspetti.

= Installazione =

== Installazione predefinita ==

'''GRUB''' viene automaticamente installato e posizionato nel primo settore del MBR in modo da essere il ''boot loader'' primario durante la fase di avvio.

== Installazione su floppy ==

L'installando '''GRUB''' su un floppy si avrà la possibilità di avviare qualsiasi sistema anche in caso di MBR danneggiato. Per installare '''GRUB''' su un floppy è necessario inserire un dischetto vuoto nel lettore, dunque digitare i seguenti comandi in una finestra di terminale:
{{{
sudo mke2fs /dev/fd0
sudo mount -t ext2 /dev/fd0 /mnt
sudo grub-install --root-directory=/mnt fd0
sudo umount /mnt
}}}

Sostituire la dicitura «/dev/fd0» con una adatta alla propria configurazione.

= Ripristino =

Quando si installa un sistema operativo come Windows che va a cancellare e sovrascrivere l'MBR ignorando completamente altri sistemi operativi presenti nel computer, '''GRUB''' non sarà più il ''boot loader'' principale del sistema e all'avvio del computer verrà avviato Windows e non più Linux. Per ripristinare '''GRUB''' come boot loader predefinito, consultare la [[/Ripristino|relativa guida]].

<<Anchor(avvio)>>
= Avvio =

Per poter modificare le opzioni di '''GRUB''' o scegliere un kernel diverso da avviare, è sufficiente premere il tasto «'''Esc'''». Sono messi a disposizione dell'utente dei tasti per accedere in modo rapido alla configurazione oppure alla riga di comando.

||<style="background-color:#F6D358;":>'''Tasti di scelta rapida''' ||<style="background-color:#F6D358;":>'''Funzione''' ||
||<style="text-align:center">«'''c'''» || Accede alla riga di comando della console di '''GRUB'''. ||
||<style="text-align:center">«'''e'''» || Apre un editor dove è possibile modificare la voce del menù selezionata. ||
||<style="text-align:center">«'''b'''» || Avvia il sistema sulla riga selezionata. ||
||<style="text-align:center">«'''o'''» || Crea una nuova riga. ||
||<style="text-align:center">«'''d'''» || Elimina la riga selezionata. ||
= Configurazione =

Tutti i file di configurazione di '''GRUB''' sono contenuti nella cartella `/boot`. Tutte le modifiche dovranno essere apportate al file `/boot/grub/menu.lst`.

Seguirà un elenco di possibili modifiche che si possono effettuare a '''GRUB'''. Tutte le modifiche dovranno essere effettuate con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministratore]] al file `/boot/grub/menu.lst`.

== Tempo di selezione ==

'''GRUB''' è in grado di avviare automaticamente un sistema operativo predefinito qualora entro un certo lasso di tempo non venga premuto alcun tasto. Per aumentare il tempo a disposizione, modificare il valore del parametro «timeout»:
{{{
timeout 3
}}}

== Scelta del kernel predefinito ==

'''GRUB''' dopo un lasso di tempo avvia automaticamente il primo sistema operativo presente nel suo file di configurazione. Per cambiare l'ordine dei kernel presenti nel file di configurazione, modificare il valore del parametro «Default»:
{{{
Default 0
}}}

== Visibilità del menù ==

Ubuntu nasconde in modo predefinito il menù d'avvio di '''GRUB'''. Per rendere visibile il menù, premere il tasto «'''Esc'''» alla schermata '''Press ESC to enter the menu...'''. Per far apparire sempre il menù all'avvio cercare la seguente stringa nel file di configurazione:
{{{
hiddenmenu
}}}

Modificarla come nel seguente esempio:
{{{
#hiddenmenu
}}}

== Personalizzare le voci ==

Per modificare una voce di menù, modificare il parametro «title» relativo al kernel scelto inserendo il testo desiderato.

== Aggiungere un sistema operativo all'elenco ==

=== Aggiungere un kernel ===

Il primo parametro da aggiungere è «'''title'''» che permette di inserire la voce del menù relativa al sistema operativo che verrà visualizzato nel menù:
{{{
title Ubuntu Hardy Heron
}}}

Successivamente inserire il parametro «root» che permette di impostare il disco fisso e la partizione in cui si trova l'immagine del kernel. Se, per esempio, il disco si trova in `/dev/sda3`, l'istruzione da impostare nel file di configurazione di '''GRUB''' è la seguente:
{{{
Linea 27: Linea 101:
Premere invio per accettare il comando e poter inserire il prossimo comando.
Attenzione che '''GRUB''' numera le partizione partendo da 0, quindi il numero della partizione è 1 in meno rispetto al numero sotto linux.

[[Immagine(Icone/Piccole/note.png,,left)]] [[BR]] Ricordate che con la tastiera italiana, all'avvio, le parentesi si fanno con '''Maiusc+0''' e '''Maiusc+1''', mentre lo slash con '''Maiusc+-''' ed il segno di uguale con '''Maiusc+ì'''. [[BR]] [[BR]]

Il secondo comando è '''kernel''' e indica il percorso del file contenente l'immagine del kernel e le varie opzioni da passare ad esso. Poniamo che il file sia '''/boot/vmlinuz-2.6.20-15-generic'''. Supponiamo che la partizione contenente la directory di root del sistema sia '''/dev/hda1''', scriveremo nel prompt di grub come secondo comando: {{{
kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/hda1 ro locale=it_IT quiet splash
}}}

Partendo dalla ''root di GRUB'', che è '''/boot''' sotto linux, il file del kernel è semplicemente in '''/'''. In ogni caso l'autocompletamento permette di scegliere il file corretto. Gli ultimi due parametri sono:

 * '''ro''': accede inizialmente alle partizioni in sola lettura. È buona norma inserirlo sempre.

 * '''vga=791''': fa partire il sistema in ''frame buffer'' (console ad alta risoluzione). Per maggiore informazione consultare la sezione [#framebuffer Riconoscimento modalità video].

A questo punto basta dare il comando '''boot''' per fare partire il sistema: {{{
boot
}}}



Se avete il kernel di una seconda distro sempre nella partizione di boot `/dev/hda3` basta cambiare il nome del file del kernel e l'opzione '''root=/dev/hda4''' per indicare la corretta ''partizione di root della seconda distro''.

Se invece il file del kernel della seconda distribuzione risiede in una directory diversa da `/boot` presente nella partizione `/dev/hda3` (per esempio la partizione di root della seconda distribuzione), basta indicare il percorso completo a grub. Supponiamo che la partizione contenente il kernel della seconda distribuzione sia `/dev/hda7` e che questa sia la root della seconda distro, per caricare il kernel scriveremo:

{{{
kernel (hd0,6)/boot/vmlinuz-2.6.6-altra-distro root=/dev/hda7 ro vga=791
}}}

ovviamente avvalendoci il più possibile dell'autocompletamento per facilitare le cose. Notate come in questo caso abbiamo inserito '''/boot''' perchè non c'è una partizione di boot ma essa è una sotto-directory di root ovvero '''(hd0,6)''' ('''/dev/hda7''' in gergo linux).

Se avete un kernel che usa l'initrd (di solito tutti i kernel ufficiali delle distro, ma io sconsiglio di usare l'initrd se invece vi ricompilate il kernel) prima di dare il comando '''boot''' dovrete caricare anche l'immagine del ramdisk. Ovvero scrivere (dopo aver caricato il kernel) il seguente comando nel prompt di grub (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c'): {{{
initrd /initrd.img-2.6.6-s26-mio-kernel
}}} oppure: {{{
initrd (hd0,6)/initrd.img-2.6.6-altra-distro
}}} a seconda di dove si trova l'immagine (si trova sempre nella stessa partizione/directory del suo kernel). [[BR]]

[[Immagine(Icone/Piccole/warning.png,,left)]] Un kernel partirà solo con la sua immagine initrd; quindi, se provate ad usare immagini initrd di altri kernel, o a far partire senza initrd un kernel che necessita di esso,il sistema non partirà dando un ''Kernel Panic''. [[BR]] [[BR]]

== Windows, BeOS, OpenBSD ==

Alcuni sistemi operativi hanno requisiti particolari, per esempio possono richiedere che la loro partizione sia contrassegnata come "attiva", o che sia una partizione primaria; oltretutto questi sistemi operativi hanno routine specifiche che si occupano dell'avvio, quindi con essi non funziona il comando "kernel" di Grub.

Fondamentalmente, tre sistemi operativi richiedono attenzioni particolari: Windows, BeOS e OpenBSD. Per avviare uno di questi sistemi operativi bisogna usare (prendiamo come esempio Windows):

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''La numerazione delle partizioni parte da 0, quindi il numero da inserire nel file di configurazione è di una posizione minore rispetto al numero della partizione.'' ||

Il terzo parametro da aggiungere è «kernel» che permette di inserire il percorso del file contenente l'immagine del kernel con i relativi argomenti, evitando così dei ''kernel panic'' all'avvio del sistema. Quello che segue è un esempio di cosa inserire nel parametro:
{{{
kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/sda3 ro locale=it_IT quiet splash
}}}

Le opzioni più comuni sono le seguenti:

||<style="background-color:#F6D358;":> '''Opzione'''||<style="background-color:#F6D358;":> '''Descrizione'''||
||<style="text-align:center">'''root''' || Indica al kernel qual è la partizione contenente la directory radice del sistema.||
||<style="text-align:center">'''ro''' || Accede in sola lettura alla partizione contenente la directory radice. Per motivi di sicurezza è consigliato impostare questa opzione.||
||<style="text-align:center">'''splash''' || Mostra a video un'immagine durante il caricamento del sistema.||
||<style="text-align:center">'''locale''' || Indica la lingua da utilizzare.||
||<style="text-align:center">'''vga''' || Esegue il sistema in ''framebuffer''.||

Se il kernel che si desidera avviare utilizza '''initrd''' per il caricamento dei moduli all'avvio, come i kernel preinstallati in '''Ubuntu''', è necessario impostare anche il percorso dell'immagine '''ramdisk''' iniziale. In tal caso è utile aggiungere al file di configurazione la seguente istruzione:
{{{
initrd /boot/initrd.img-2.6.20-15-generic
}}}

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Generalmente l'immagine si trova nella stessa cartella del kernel.'' ||

Quello che segue è un esempio di configurazione da inserire in `/boot/grub/menu.lst`:
{{{
title Ubuntu Hardy Heron
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/hda1 ro locale=it_IT quiet splash
initrd /boot/initrd.img-2.6.20-15-generic
boot
}}}

=== Aggiungere sistemi Windows, BeOS e OpenBSD ===

Alcuni sistemi operativi come Windows od OpenBSD necessitano di una configurazione particolare per essere avviati, per esempio, la partizione dev'essere contrassegnata come ''attiva'' o come ''partizione primaria''. Questi sistemi operativi hanno routine specifiche che si occupano dell'avvio, di conseguenza parametri come «kernel» non vengono riconosciuti da '''GRUB'''.

Per avviare uno di questi sistemi operativi è necessario impostare i seguiti parametri:

||<style="background-color:#F6D358;":> '''Parametro'''||<style="background-color:#F6D358;":> '''Descrizione'''||
||<style="text-align:center">'''rootnoverify''' || Accede in sola lettura alla partizione contenente la directory radice. Per motivi di sicurezza è consigliato impostare questa opzione.||
||<style="text-align:center">'''makeactive''' || Rende la partizione ''attiva'' (necessario per Windows).||
||<style="text-align:center">'''chainloader''' || Legge la prima traccia della partizione, la quale conterrà un secondo boot loader da avviare in cascata.||
||<style="text-align:center">'''boot''' || Avvia il sistema.||

Quello che segue è un esempio di elenco completo da inserire nel file di configurazione di '''GRUB''':
Linea 79: Linea 154:
{{{rootnoverify}}} specifica qual è la partizione di Windows (nel nostro caso la prima partizione del secondo disco è hd1,0, corrispondente in Linux a /dev/hdb1);[[BR]]
{{{makeactive}}} rende la partizione attiva (condizione essenziale per Windows);[[BR]]
{{{chainloader}}} istruisce sul fatto di leggere la prima traccia di tale partizione;[[BR]]
{{{boot}}} fa partire il sistema.

== FreeBSD ==

Uno dei motivi per cui GRUB ha una nomenclatura tutta particolare dei dischi è dovuto al fatto che il programma è stato pensato per avviare anche kernel non-linux, uno su tutti, quello di FreeBSD.

FreeBSD ha, infatti, un sistema di organizzazione delle directory abbastanza particolare. Nell'esempio assumiamo che FreeBSD sia installato nella seconda partizione del secondo disco:
=== Aggiungere un sistema FreeBSD ===

FreeBSD ha un sistema particolare di organizzazione delle cartelle. Nel seguente esempio si presume che il sistema sia installato nella seconda partizione del secondo disco:
Linea 95: Linea 162:
Per approfondire il sistema di partizionamento di FreeBSD consultare la BSD-FAQ-it.

[[Anchor(modifiche_permanenti)]]
= Rendere permanenti le modifiche =

Tutte le opzioni qui esposte vanno inserite nel file di configurazione di '''GRUB''', identificato dal percorso `/boot/grub/menu.lst` e modificabile tramite un qualunque editor di testo, a patto che si abbiano i privilegi amministrativi. Per esempio, è possibile digitare in un terminale il comando: {{{
sudo nano /boot/grub/menu.lst
}}}

== Configurare il comportamento di GRUB ==

'''GRUB''' è in grado di avviare automaticamente un sistema operativo prescelto qualora entro un certo lasso di tempo non venga premuto alcun tasto sulla tastiera: {{{
default 0
timeout 5
}}}
Nell'esempio, GRUB attende la pressione di un tasto per cinque secondi (timeout 5), dopodiché avvia il primo sistema operativo (default 0) incontrato nel suo file di configurazione (percorso dall'alto verso il basso). Modificare queste impostazioni secondo le proprie esigenze.

È possibile far comparire il menu d'avvio oppure nasconderlo alla vista, nel qual caso comparirà solo la scritta "Press 'ESC' to enter the menu..." e bisognerà appunto premere il tasto `Esc` per far comparire il menu: {{{
hiddenmenu
}}}
per nascondere il menu, assicurarsi che non ci siano caratteri cancelletto "#" all'inizio della riga; per visualizzare il menu, è sufficiente aggiungere un carattere cancelletto a inizio riga.

== Configurare le voci del menu d'avvio ==

Per ogni sistema operativo bisogna scrivere un blocco di comandi corrispondente. Il primo comando da inserire nel blocco è '''title''' che specifica il nome che apparirà nel menu d'avvio per quel sistema; seguono i comandi già visti nella sezione [#avvio_interattivo avvio interattivo].
Per esempio: {{{
title Prima Distribuzione (puoi scrivere quello che vuoi)
root (hd0,2)
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
boot

title Seconda Distribuzione (puoi scrivere quello che vuoi)
root (hd0,2)
kernel (hd0,6)/boot/vmlinuz-2.6.6-altra-distro root=/dev/hda7 ro vga=791
initrd (hd0,6)/initrd.img-2.6.6-altra-distro
boot
}}}

Seguendo questo schema si possono aggiungere voci a piacere, ma si consiglia di provare prima i comandi interattivamente dal prompt di grub. Se in ogni blocco viene inserito, prima del comando '''boot''', il comando '''savedefault''' e il comando '''default 0''' viene modificato in '''default save''', all'avvio GRUB (dopo il timeout) sceglierà il sistema scelto nel precedente avvio.


== Impostare una password ==

'''GRUB''' permette di impostare una password per diversi scopi. Prima di tutto, occorre creare la password digitando in un terminale il comando {{{grub-md5-crypt}}}, il quale chiederà di inserire due volte la password (una è di conferma), e restituirà a video la password cifrata con algoritmo MD5. Copiare il risultato ottenuto, quindi aprire il file di configurazione di GRUB usando i privilegi amministrativi.

[[Anchor(proteggere_avvio_interattivo)]]
=== Proteggere l'accesso all'avvio interattivo ===

Per far sì che venga chiesta la password ogni qual volta si tenti di accedere all'avvio interattivo di GRUB (digitando il tasto "e"), è sufficiente inserire la seguente riga prima delle voci del menu: {{{
password --md5 VostraPasswordCifrata
}}}
Per esempio: {{{
password --md5 $1$DrTDy1$nPlz3ke5jkS6rX8M3/3zA.
}}}
Si potranno avviare liberamente i sistemi operativi corrispondenti alle voci già presenti, ma per modificare le opzioni di avvio verrà chiesta la password.

=== Proteggere l'avvio dei sistemi operativi ===

Se si vuole proteggere con una password l'avvio di un sistema operativo, aggiungere il comando password dopo la parola chiave title della voce che si desidera proteggere, come nell'esempio: {{{
title Prima Distribuzione (puoi scrivere quello che vuoi)
= Sicurezza =

== Proteggere l'avvio del sistema ==

'''GRUB''' permette di impostare una password di sicurezza quando si cerca di avviare un kernel.

Per creare la password è sufficiente digitare in una finestra di terminale il seguente comando:
{{{
sudo grub-md5-crypt
}}}

Inserire due volte la password. Verrà restituita la password cifrata con l'algoritmo MD5 da copiare nel file di configurazione.

Dunque, aggiungere il parametro «password» nel blocco della voce che si desidera proteggere, come nel seguente esempio:
{{{
title Ubuntu Hardy Heron
Linea 158: Linea 181:
savedefault
password --md5 VostraPasswordCifrata
boot
}}}
È possibile scegliere una diversa password per ogni sistema operativo di cui si desidera proteggere l'avvio.

In alternativa, è possibile far sì che la stessa password che [#proteggere_avvio_interattivo protegge il menu interattivo] protegga anche l'avvio di sistemi operativi a scelta. È sufficiente inserire il comando `lock` nei blocchi relativi ai i sistemi operativi che si desidera proteggere, come da esempio: {{{
title Prima Distribuzione (puoi scrivere quello che vuoi)
password --md5 PasswordCifrata
boot
}}}

Infine, sostituire la dicitura «!PasswordCifrata» con il risultato del comando precedente; è possibile scegliere una diversa password per ogni sistema operativo del quale si desidera proteggere l'avvio.

È possibile proteggere con la stessa password l'avvio di diversi sistemi operativi e di diversi kernel; a tale scopo è sufficiente aggiungere il parametro «lock» nei blocchi che si desiderano proteggere, come nel seguente esempio:
{{{
title Ubuntu Hardy Heron
Linea 173: Linea 197:
= Usare update-grub =

Quando installate un nuovo kernel (binario o ricompilato che sia) contenuto in un pacchetto debian, verrà eseguito lo script '''update-grub''' che cercherà nuovi kernel in {{{/boot}}} e li inserirà in {{{menu.lst}}}.

Questo script può anche essere eseguito a mano se si ricompila un kernel senza creare un pacchetto debian o se vuole ripristinare velocemente il {{{menu.lst}}}.
Le voci per i vari kernel inserite da '''update-grub''' sono racchiuse tra la linea: {{{
== Proteggere l'accesso alle opzioni d'avvio ==

È possibile richiedere la password ogni volta che si tenta di accedere alle opzioni d'avvio di '''GRUB'''.

 0. Inserire la password nella riga che precede le voci del menù: {{{
password --md5 PasswordCifrata
}}}

 0. Sostituire la dicitura «!PasswordCifrata» con il risultato ottenuto dal seguente comando: {{{
grub-md5-crypt
}}}

Con questo parametro si potranno avviare liberamente i sistemi operativi corrispondenti alle voci già presenti, ma per modificare le opzioni di avvio verrà richiesta la password.

= Aggiornamento del menù di avvio =

Quando viene installato un nuovo kernel contenuto in un pacchetto `.deb`, viene eseguito in modo automatico il programma '''update-grub''' che cerca nuovi kernel nella directory `/boot` e li aggiunge nel file di configurazione `/boot/grub/menu.lst`.

Questo script può anche essere eseguito in manualmente nel caso in cui venga ricompilato un kernel che non è contenuto in un pacchetto `.deb` oppure se per ripristinare la la lista di avvio nel file `menu.lst`. Le voci per i vari kernel inserite dal comando '''update-grub''' sono contenute in una sezione che inizia con la seguente riga:
{{{
Linea 182: Linea 220:
e la linea: {{{ Tale sezione termina con la seguente riga:
{{{
Linea 186: Linea 225:
al di fuori di questo blocco potrete inserire tutte le vostre configurazioni che non volete siano modificate da '''update-grub''' (ad. kernel fissi, o qualsiasi altro comando grub).

Nel blocco "automagico" non vengono inseriti solo le voci dei vari kernel ma anche dei commenti che servono a personalizzare il comportamento di '''update-grub'''. Basterà modificare i commenti che cominciano con un solo '''#''' (quelli che cominciano con '''##''' vengono ignorati anche da update-grub). Se ad esempio vogliamo che ogni nuovo kernel sia inserito solo una volta (senza la seconda voce recovery) e che venga sempre usato il framebuffer basta modificare le apposite righe di {{{menu.lst}}} nel seguente modo: {{{
# kopt=root=/dev/hda9 ro vga=791

 ... ... ...
Al di fuori di questo blocco è possibile inserire tutte le configurazioni che non necessitano una modifica da parte di '''update-grub'''.

Nel blocco «AUTOMAGIC» vengono inseriti anche i commenti che servono a personalizzare il comportamento del programma di aggiornamento. Nel caso in cui si abbia la necessità di inserire un nuovo kernel senza il relativo «recovery mode» e che venga avviato sempre il ''framebuffer'', modificare le apposite righe del file di configurazione come nel seguente esempio:
{{{
# kopt=root=/dev/hdaX ro vga=791
Linea 196: Linea 234:
ovviamente quella partizione ({{{/dev/hda9}}}) deve essere la root dei kernel che si vuole inserire automagicamente. Notare che '''non''' si deve decommentare la linea altrimenti update-grub lo ignorerà e verrà considerato un comando grub.


[[Anchor(framebuffer)]]
= Riconoscimento modalità video =

Una funzionalità forse poco nota, ma utile in certi casi è la capacità di grub di riconoscere al volo le modalità supportate in ''frame buffer'' dalla scheda video tramite il comando '''vbeprobe'''. È anche possibile testare una modalità video tramite il comando '''testvbe''':

Grub mostrerà delle sfumature orizzontali multicolori che scorrono, alla risoluzione del modo scelto. Scelto un modo (ad esempio 0x103), potrà fare partire il sistema in quella modalità aggiungendo il parametro '''vga=''numero''''' alla linea del kernel, dove ''numero'' è il numero del modo più 200 esadecimale (indicato con 0x200). Questa operazione è molto semplice: basta aggiungere 2 alla prima cifra del modo, ad esempio se vogliamo il modo '''0x103''' dovremo passare al kernel '''vga=0x303'''.

Si può anche inserire la modalità video in decimale convertendo con una calcolatrice scientifica il numero passato al kernel: nell'esempio è equivalente scrivere '''vga=0x303''' o '''vga=771'''.

Ricordo che per usare il ''frame buffer'' deve essere abilitato il supporto nel kernel. Tutti i kernel binari delle distribuzioni hanno questo supporto attivato, ma se vi ricompilate un vostro kernel dovrete ricordarvi di attivare il supporto ''frame buffer''.

= Installare GRUB su un floppy =

Installare GRUB su un floppy permette di fare partire qualsiasi sistema anche con MBR (Master Boot Record - Il primo settore del disco fisso) corrotto. Per installare GRUB su di un floppy basta eseguire i seguenti comandi: {{{
sudo mke2fs /dev/fd0
sudo mount -t ext2 /dev/fd0 /mnt
sudo grub-install --root-directory=/mnt fd0
sudo umount /mnt
}}}
Sostituire la dicitura «/dev/hdaX» con il percorso della partizione contenente il kernel.

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Non togliere il commento alla riga, altrimenti'' '''update-grub''' ''la ignorerà e sarà considerata come un comando di'' '''GRUB'''. ||

<<Anchor(riconoscimentovga)>>
= Riconoscimento della modalità video =

'''GRUB''' riconosce le modalità supportate in [[Hardware/Video/FrameBuffer|framebuffer]] dalla scheda video.

Entrare nella [[#avvio|modalità console]] di GRUB e digitare il seguente comando:
{{{
vbeprobe
}}}

È anche possibile verificare il funzionamento di una modalità video, digitando il seguente comando:
{{{
testvbe
}}}
Per uscire dalla modalità console premere il tasto Esc.

Modificando il file `/boot/grub/menu.lst` è possibile avviare il sistema nella modalità desiderata aggiungendo il codice della modalità video alla linea del parametro «'''kernel'''»; quello che segue è un esempio:
{{{
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/sda4 ro vga=numero
}}}

Sostituire la dicitura «numero» con con il valore scelto in precedenza aggiungendo ad esso 200. Se per esempio il valore è 0x103 nel parametro «'''kernel'''» bisognerà inserire il valore «vga=0x303».

È possibile inserire la modalità video in numero decimale effettuando la conversione con una calcolatrice scientifica. Per esempio scrivere «vga=0x303» equivale a scrivere «vga=771».

Per utilizzare il '''framebuffer''' è necessario abilitarne il supporto nel kernel. Tutti i kernel binari delle distribuzioni hanno questo supporto attivato, ma se viene ricompilato manualmente è necessario attivare il supporto al ''framebuffer''.

= Riconoscimento della tastiera USB =

Nel caso in cui si utilizzi una tastiera USB e risulti impossibile selezionare le voci presenti nel menù di avvio, è probabile che '''GRUB''' abbia incontrato dei problemi nel riconoscimento della stessa. Per ovviare a questo problema è sufficiente abilitare il supporto USB ''legacy'' del BIOS della propria scheda madre.

= Personalizzare la splashimage =

Consultare la [[/Splashimage|relativa guida]].
Linea 221: Linea 275:
 * [http://www.gnu.org/software/grub/ Pagina web di GRUB]

 * [http://www.gnu.org/software/grub/manual/grub.html#Stage2-errors Guida agli errori di Grub]

 * [:Sudo:Guida all'utilizzo del comando sudo]

 * [:Nano:Guida all'editor di testo nano]
 * [[http://www.gnu.org/software/grub/|Sito ufficiale del progetto]]
 * [[http://www.gnu.org/software/grub/manual/grub.html#Stage2-errors|Guida agli errori di Grub]]
 * [[http://www.gentoo.org/doc/it/grub-error-guide.xml|Altra guida sugli errori di Grub]]
 * [[http://it.wikipedia.org/wiki/Power-on_self-test|Voce enciclopedica di POST]]
 * [[http://it.wikipedia.org/wiki/Master_boot_record|Voce enciclopedica di MBR]]
Linea 230: Linea 281:
 * Autore originario: ''Antonio Ingargiola'' ([[MailTo(debian@fastwebnet.it)]])
 * Si ringrazia: Fabrizio Ciacchi per aver scritto i paragrafi su come bootare sistemi non Linux e sull'uso della password.
CategoryDaCancellare


STOP! Perché questa guida si trova sotto la pagina Cestino?. Una guida può essere cestinata dal Gruppo Documentazione se contiene istruzioni compatibili solo con rilasci non più supportati di Ubuntu oppure perché non si ha certezza che lo siano per i rilasci attualmente supportati. Queste pagine richiedono un aggiornamento e una verifica delle istruzioni contenute. Se vuoi riesumare una di queste guide contatta il Gruppo Documentazione nella board sul forum.

Questa guida è stata verificata solo con versioni obsolete di Ubuntu, potrebbe non essere più valida. Vuoi contribuire ad aggiornarla? Clicca qui!

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida fa rifermento a una versione obsoleta di GRUB. Può essere utile trovandosi di fronte a installazioni molto vecchie di sistemi Linux. In ogni altro caso fare riferimento alla guida GRUB.

GRUB (Grand Unified Bootloader) è il boot loader predefinito di Ubuntu, viene avviato subito dopo le operazioni POST del BIOS e si preoccupa di scegliere e avviare un sistema operativo fra quelli presenti nel computer oppure avviare in cascata un secondo boot loader. In genere GRUB riconosce automaticamente i sistemi operativi presenti e li inserisce nel menù iniziale. È possibile personalizzare o modificare la configurazione, modificare l'elenco dei sistemi operativi, il tempo di avvio e molti altri aspetti.

Installazione

Installazione predefinita

GRUB viene automaticamente installato e posizionato nel primo settore del MBR in modo da essere il boot loader primario durante la fase di avvio.

Installazione su floppy

L'installando GRUB su un floppy si avrà la possibilità di avviare qualsiasi sistema anche in caso di MBR danneggiato. Per installare GRUB su un floppy è necessario inserire un dischetto vuoto nel lettore, dunque digitare i seguenti comandi in una finestra di terminale:

sudo mke2fs /dev/fd0
sudo mount -t ext2 /dev/fd0 /mnt
sudo grub-install --root-directory=/mnt fd0
sudo umount /mnt

Sostituire la dicitura «/dev/fd0» con una adatta alla propria configurazione.

Ripristino

Quando si installa un sistema operativo come Windows che va a cancellare e sovrascrivere l'MBR ignorando completamente altri sistemi operativi presenti nel computer, GRUB non sarà più il boot loader principale del sistema e all'avvio del computer verrà avviato Windows e non più Linux. Per ripristinare GRUB come boot loader predefinito, consultare la relativa guida.

Avvio

Per poter modificare le opzioni di GRUB o scegliere un kernel diverso da avviare, è sufficiente premere il tasto «Esc». Sono messi a disposizione dell'utente dei tasti per accedere in modo rapido alla configurazione oppure alla riga di comando.

Tasti di scelta rapida

Funzione

«c»

Accede alla riga di comando della console di GRUB.

«e»

Apre un editor dove è possibile modificare la voce del menù selezionata.

«b»

Avvia il sistema sulla riga selezionata.

«o»

Crea una nuova riga.

«d»

Elimina la riga selezionata.

Configurazione

Tutti i file di configurazione di GRUB sono contenuti nella cartella /boot. Tutte le modifiche dovranno essere apportate al file /boot/grub/menu.lst.

Seguirà un elenco di possibili modifiche che si possono effettuare a GRUB. Tutte le modifiche dovranno essere effettuate con un editor di testo e con i privilegi di amministratore al file /boot/grub/menu.lst.

Tempo di selezione

GRUB è in grado di avviare automaticamente un sistema operativo predefinito qualora entro un certo lasso di tempo non venga premuto alcun tasto. Per aumentare il tempo a disposizione, modificare il valore del parametro «timeout»:

timeout 3

Scelta del kernel predefinito

GRUB dopo un lasso di tempo avvia automaticamente il primo sistema operativo presente nel suo file di configurazione. Per cambiare l'ordine dei kernel presenti nel file di configurazione, modificare il valore del parametro «Default»:

Default   0

Visibilità del menù

Ubuntu nasconde in modo predefinito il menù d'avvio di GRUB. Per rendere visibile il menù, premere il tasto «Esc» alla schermata Press ESC to enter the menu.... Per far apparire sempre il menù all'avvio cercare la seguente stringa nel file di configurazione:

hiddenmenu

Modificarla come nel seguente esempio:

#hiddenmenu

Personalizzare le voci

Per modificare una voce di menù, modificare il parametro «title» relativo al kernel scelto inserendo il testo desiderato.

Aggiungere un sistema operativo all'elenco

Aggiungere un kernel

Il primo parametro da aggiungere è «title» che permette di inserire la voce del menù relativa al sistema operativo che verrà visualizzato nel menù:

title     Ubuntu Hardy Heron

Successivamente inserire il parametro «root» che permette di impostare il disco fisso e la partizione in cui si trova l'immagine del kernel. Se, per esempio, il disco si trova in /dev/sda3, l'istruzione da impostare nel file di configurazione di GRUB è la seguente:

root (hd0,2)

La numerazione delle partizioni parte da 0, quindi il numero da inserire nel file di configurazione è di una posizione minore rispetto al numero della partizione.

Il terzo parametro da aggiungere è «kernel» che permette di inserire il percorso del file contenente l'immagine del kernel con i relativi argomenti, evitando così dei kernel panic all'avvio del sistema. Quello che segue è un esempio di cosa inserire nel parametro:

kernel          /boot/vmlinuz-2.6.20-15-generic root=/dev/sda3 ro locale=it_IT quiet splash

Le opzioni più comuni sono le seguenti:

Opzione

Descrizione

root

Indica al kernel qual è la partizione contenente la directory radice del sistema.

ro

Accede in sola lettura alla partizione contenente la directory radice. Per motivi di sicurezza è consigliato impostare questa opzione.

splash

Mostra a video un'immagine durante il caricamento del sistema.

locale

Indica la lingua da utilizzare.

vga

Esegue il sistema in framebuffer.

Se il kernel che si desidera avviare utilizza initrd per il caricamento dei moduli all'avvio, come i kernel preinstallati in Ubuntu, è necessario impostare anche il percorso dell'immagine ramdisk iniziale. In tal caso è utile aggiungere al file di configurazione la seguente istruzione:

initrd /boot/initrd.img-2.6.20-15-generic

Generalmente l'immagine si trova nella stessa cartella del kernel.

Quello che segue è un esempio di configurazione da inserire in /boot/grub/menu.lst:

title     Ubuntu Hardy Heron
root      (hd0,0)
kernel    /boot/vmlinuz-2.6.20-15-generic root=/dev/hda1 ro locale=it_IT quiet splash
initrd    /boot/initrd.img-2.6.20-15-generic
boot

Aggiungere sistemi Windows, BeOS e OpenBSD

Alcuni sistemi operativi come Windows od OpenBSD necessitano di una configurazione particolare per essere avviati, per esempio, la partizione dev'essere contrassegnata come attiva o come partizione primaria. Questi sistemi operativi hanno routine specifiche che si occupano dell'avvio, di conseguenza parametri come «kernel» non vengono riconosciuti da GRUB.

Per avviare uno di questi sistemi operativi è necessario impostare i seguiti parametri:

Parametro

Descrizione

rootnoverify

Accede in sola lettura alla partizione contenente la directory radice. Per motivi di sicurezza è consigliato impostare questa opzione.

makeactive

Rende la partizione attiva (necessario per Windows).

chainloader

Legge la prima traccia della partizione, la quale conterrà un secondo boot loader da avviare in cascata.

boot

Avvia il sistema.

Quello che segue è un esempio di elenco completo da inserire nel file di configurazione di GRUB:

rootnoverify (hd1,0)
makeactive
chainloader +1
boot

Aggiungere un sistema FreeBSD

FreeBSD ha un sistema particolare di organizzazione delle cartelle. Nel seguente esempio si presume che il sistema sia installato nella seconda partizione del secondo disco:

root (hd1,1,a)
kernel /boot/loader

Sicurezza

Proteggere l'avvio del sistema

GRUB permette di impostare una password di sicurezza quando si cerca di avviare un kernel.

Per creare la password è sufficiente digitare in una finestra di terminale il seguente comando:

sudo grub-md5-crypt

Inserire due volte la password. Verrà restituita la password cifrata con l'algoritmo MD5 da copiare nel file di configurazione.

Dunque, aggiungere il parametro «password» nel blocco della voce che si desidera proteggere, come nel seguente esempio:

title Ubuntu Hardy Heron
root (hd0,2)
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
initrd /initrd.img-2.6.6-s26-mio-kernel
password --md5 PasswordCifrata
boot

Infine, sostituire la dicitura «PasswordCifrata» con il risultato del comando precedente; è possibile scegliere una diversa password per ogni sistema operativo del quale si desidera proteggere l'avvio.

È possibile proteggere con la stessa password l'avvio di diversi sistemi operativi e di diversi kernel; a tale scopo è sufficiente aggiungere il parametro «lock» nei blocchi che si desiderano proteggere, come nel seguente esempio:

title Ubuntu Hardy Heron
lock
root (hd0,2)
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
initrd /initrd.img-2.6.6-s26-mio-kernel
boot

Proteggere l'accesso alle opzioni d'avvio

È possibile richiedere la password ogni volta che si tenta di accedere alle opzioni d'avvio di GRUB.

  1. Inserire la password nella riga che precede le voci del menù:

    password --md5 PasswordCifrata
  2. Sostituire la dicitura «PasswordCifrata» con il risultato ottenuto dal seguente comando:

    grub-md5-crypt

Con questo parametro si potranno avviare liberamente i sistemi operativi corrispondenti alle voci già presenti, ma per modificare le opzioni di avvio verrà richiesta la password.

Aggiornamento del menù di avvio

Quando viene installato un nuovo kernel contenuto in un pacchetto .deb, viene eseguito in modo automatico il programma update-grub che cerca nuovi kernel nella directory /boot e li aggiunge nel file di configurazione /boot/grub/menu.lst.

Questo script può anche essere eseguito in manualmente nel caso in cui venga ricompilato un kernel che non è contenuto in un pacchetto .deb oppure se per ripristinare la la lista di avvio nel file menu.lst. Le voci per i vari kernel inserite dal comando update-grub sono contenute in una sezione che inizia con la seguente riga:

### BEGIN AUTOMAGIC KERNELS LIST

Tale sezione termina con la seguente riga:

### END DEBIAN AUTOMAGIC KERNELS LIST

Al di fuori di questo blocco è possibile inserire tutte le configurazioni che non necessitano una modifica da parte di update-grub.

Nel blocco «AUTOMAGIC» vengono inseriti anche i commenti che servono a personalizzare il comportamento del programma di aggiornamento. Nel caso in cui si abbia la necessità di inserire un nuovo kernel senza il relativo «recovery mode» e che venga avviato sempre il framebuffer, modificare le apposite righe del file di configurazione come nel seguente esempio:

# kopt=root=/dev/hdaX ro vga=791

# alternative=false

Sostituire la dicitura «/dev/hdaX» con il percorso della partizione contenente il kernel.

Non togliere il commento alla riga, altrimenti update-grub la ignorerà e sarà considerata come un comando di GRUB.

Riconoscimento della modalità video

GRUB riconosce le modalità supportate in framebuffer dalla scheda video.

Entrare nella modalità console di GRUB e digitare il seguente comando:

vbeprobe

È anche possibile verificare il funzionamento di una modalità video, digitando il seguente comando:

testvbe

Per uscire dalla modalità console premere il tasto Esc.

Modificando il file /boot/grub/menu.lst è possibile avviare il sistema nella modalità desiderata aggiungendo il codice della modalità video alla linea del parametro «kernel»; quello che segue è un esempio:

kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/sda4 ro vga=numero

Sostituire la dicitura «numero» con con il valore scelto in precedenza aggiungendo ad esso 200. Se per esempio il valore è 0x103 nel parametro «kernel» bisognerà inserire il valore «vga=0x303».

È possibile inserire la modalità video in numero decimale effettuando la conversione con una calcolatrice scientifica. Per esempio scrivere «vga=0x303» equivale a scrivere «vga=771».

Per utilizzare il framebuffer è necessario abilitarne il supporto nel kernel. Tutti i kernel binari delle distribuzioni hanno questo supporto attivato, ma se viene ricompilato manualmente è necessario attivare il supporto al framebuffer.

Riconoscimento della tastiera USB

Nel caso in cui si utilizzi una tastiera USB e risulti impossibile selezionare le voci presenti nel menù di avvio, è probabile che GRUB abbia incontrato dei problemi nel riconoscimento della stessa. Per ovviare a questo problema è sufficiente abilitare il supporto USB legacy del BIOS della propria scheda madre.

Personalizzare la splashimage

Consultare la relativa guida.

Ulteriori risorse


CategoryDaCancellare