Guida a GRUB 2: differenze tra le versioni

 
(14 versioni intermedie di uno stesso utente non sono mostrate)
Riga 213: Riga 213:
=== Modificare il menù di GRUB ===
=== Modificare il menù di GRUB ===


=Comandi shell per la gestione e l'installazione di GRUB=
== Comandi shell per la gestione e l'installazione di GRUB ==
Ora che abbiamo una idea di cosa sia e come funzioni GRUB2, in questa sezione analizzeremo l'interazione con i principali comandi shell disponibili per interfacciarsi con GRUB2.
Ora che abbiamo una idea di cosa sia e come funzioni GRUB2, in questa sezione analizzeremo l'interazione con i principali comandi shell disponibili per interfacciarsi con GRUB2.
==Lista comandi principali per settare GRUB2==
 
=== Lista comandi principali per settare GRUB2 ===
I seguenti comandi sono funzionali al settaggio ed installazione di GRUB2. I comandi da dare culmineranno con <code>grub-install</code> che esegue l'effettiva modifica del punto di boot (Master Boot Record).
I seguenti comandi sono funzionali al settaggio ed installazione di GRUB2. I comandi da dare culmineranno con <code>grub-install</code> che esegue l'effettiva modifica del punto di boot (Master Boot Record).
* <code>grub-probe</code>: per indicare dove cercare i kernel, quali moduli utilizzare, cosa attualmente è presente.
* <code>grub-mkconfig</code>: genera il file di configurazione grub.cfg
* <code>grub-mkimage</code>: crea immagine binaria di GRUB bootabile.
* <code>grub-setup</code>: scrive GRUB sull'HD specificato.
* <code>grub-install</code>: esegue una serie di operazioni tale da rendere il sistema avviabile, come specificato in seguito.
I comandi sopra elencati porteranno ad avere GRUB configurato ed installato sul proprio MBR.<br/>
Per avere più informazioni sui comandi elencati rimando alle man pages ed a internet. In particolare, per alcuni programmi, valgono le seguenti riflessioni.


* grub-probe: per indicare dove cercare i kernel, quali moduli utilizzare, cosa attualmente è presente.
==== <code>grub-mkconfig</code> ====
 
* grub-mkconfig: genera il file di configurazione grub.cfg
 
* grub-mkimage: crea immagine binaria di GRUB bootabile.
 
* grub-setup: scrive GRUB sull'HD specificato.
 
* grub-install: esegue una serie di operazioni tale da rendere il sistema avviabile, come specificato in seguito.
 
===Osservazioni===
I comandi elencati ci porteranno ad avere GRUB configurato ed installato sul proprio MBR. Per avere più informazioni sui comandi elencati rimando alle man pages ed a internet. In particolare, per alcuni programmi, valgono se seguenti riflessioni:
 
====Analisi di grub-mkconfig====
Questo comando ha la finalità di creare [[#I file principali|il file grub.cfg]]. Quest'ultimo è comunque editabile a mano (ad esempio si può invertire l'ordine di boot) ma si sconsiglia vivamente di intervenire con modifiche eccessive, specialmente se non si è più che sicuri di quello che si sta facendo.
Questo comando ha la finalità di creare [[#I file principali|il file grub.cfg]]. Quest'ultimo è comunque editabile a mano (ad esempio si può invertire l'ordine di boot) ma si sconsiglia vivamente di intervenire con modifiche eccessive, specialmente se non si è più che sicuri di quello che si sta facendo.


Riga 238: Riga 233:
Pertanto il risultato che si otterrà con grub-mkconfig sarà la creazione del file /boot/grub/grub.cfg con le opzioni indicate nella cartella /etc/grub.d/ e con inseriti nell'elenco di GRUB tutti i SO che sono stati individuati sulle partizioni montate.
Pertanto il risultato che si otterrà con grub-mkconfig sarà la creazione del file /boot/grub/grub.cfg con le opzioni indicate nella cartella /etc/grub.d/ e con inseriti nell'elenco di GRUB tutti i SO che sono stati individuati sulle partizioni montate.


====Analisi di grub-install====
==== <code>grub-install</code> ====
Il programma grub-install è uno script abbastanza articolato con la funzione di rendere il nostro sistema bootabile. A grandi linee i compiti che svolge sono i seguenti:
Il programma grub-install è uno script abbastanza articolato con la funzione di rendere il nostro sistema bootabile. A grandi linee i compiti che svolge sono i seguenti:
# Serie di comandi di verifica quali:
# Serie di comandi di verifica quali:
Riga 250: Riga 245:
# Grub-mkimage crea core.img secondo le opzioni finora individuate.
# Grub-mkimage crea core.img secondo le opzioni finora individuate.
# È lanciato grub-setup per la scrittura sul Master Boot Record.
# È lanciato grub-setup per la scrittura sul Master Boot Record.
=====Installare GRUB 2=====
 
=====Installare GRUB 2 su chiavetta USB=====
===== Installare GRUB 2 su chiavetta USB =====
Nel seguente esempio viene installato GRUB2 su una chiavetta USB (nel specifico caso /dev/sdb) per caricare il sistema operativo installato sulla chiavetta stessa (la cui root è temporaneamente montata in ~/usbdrive)
Nel seguente esempio viene installato GRUB2 su una chiavetta USB (nel specifico caso /dev/sdb) per caricare il sistema operativo installato sulla chiavetta stessa (la cui root è temporaneamente montata in ~/usbdrive)
<pre># grub-install --root-directory=~/usbdrive/ /dev/sdb</pre>
<pre># grub-install --root-directory=~/usbdrive/ /dev/sdb</pre>
Per maggiori informazioni, leggere [http://www.pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux/ qui].
Per maggiori informazioni, leggere [http://www.pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux/ qui].


=Prompt di GRUB, come risolvere i problemi=
== Prompt di GRUB, come risolvere eventuali problemi ==
Quando qualcosa va storto con la configurazione indicata nel menù di avvio di GRUB (ad esempio non trova il kernel), allora bisogna accedere al seguente prompt:
Quando qualcosa va storto con la configurazione indicata nel menù di avvio di GRUB (ad esempio non trova il kernel), allora bisogna accedere al seguente prompt:
<pre>grub></pre>
<pre>grub></pre>
Vengono resi disponibili una serie di comandi tale da rendere possibile l'analisi dell'errore e rendere un sistema caricabile.
Vengono resi disponibili una serie di comandi tale da rendere possibile l'analisi dell'errore e rendere un sistema caricabile.
==lista comandi==
 
=== lista comandi ===
Ecco un riassunto dei principali comandi da sapere per risolvere gli eventuali problemi. Eseguendo i comandi nell'ordine riportato dovrebbe essere possibile avviare il proprio sistema operativo.
Ecco un riassunto dei principali comandi da sapere per risolvere gli eventuali problemi. Eseguendo i comandi nell'ordine riportato dovrebbe essere possibile avviare il proprio sistema operativo.
* help: mostra tutti i comandi disponibili;
* <code>help</code>: mostra tutti i comandi disponibili;
* ls: come in bash (LiSt) mostra i file presenti. Il comando <code>ls /</code> mostra cosa grub utilizza quale /boot. Se correttamente indicata dovrebbe esserci almeno un kernel presente...
* <code>ls</code>: come in bash (LiSt) mostra i file presenti. Il comando <code>ls /</code> mostra cosa grub utilizza quale /boot. Se correttamente indicata dovrebbe esserci almeno un kernel presente...
* cat (/boot/)grub/grub.cfg: legge il file grub.cfg, utile per comprendere l'errore avvenuto in fase di boot;
* <code>cat (/boot/)grub/grub.cfg</code>: legge il file <code>grub.cfg</code>, utile per comprendere l'errore avvenuto in fase di boot;
* set root=/dev/sda2: identifica la cartella di root, il parametro può essere dato assieme al comando linux come segue;
* </code>set root=/dev/sda2</code>: dichiara la cartella di root (in questo esempio <code>/dev/sda2</code>), il parametro può essere dato assieme al comando <code>linux</code> come indicato nel prossimo punto;
* linux (hd0,2)/boot/vmlinuz-<alternate_version> root=/dev/sda2: il comando linux ha la funzione di caricare il kernel in ram. Nell'esempio riportato viene caricato il kernel presente sulla seconda partizione del primo device (hd0,2) utilizzando come cartella di root la medesima partizione (/dev/sda2);
* <code>linux (hd0,2)/boot/vmlinuz-<alternate_version> root=/dev/sda2</code>: il comando linux ha la funzione di caricare il kernel in ram. Nell'esempio riportato viene caricato il kernel presente sulla seconda partizione del primo device <code>(hd0,2)</code> utilizzando come cartella di root la medesima partizione (<code>/dev/sda2</code>);
* linux16 /memtest86+: comando simile a linux, ma per immagini a 16 bit quale ad esempio il memtest;
* <code>linux16 /memtest86+</code>: comando simile a linux, ma per immagini a 16 bit quale ad esempio il memtest;
* initrd /initrd-<your_initrd>: carica in memoria l'initrd (se necessario);
* <code>initrd /initrd-<your_initrd></code>: carica in memoria l'initrd (se necessario);
* boot: avvia il kernel caricato in memoria
* <code>boot</code>: avvia il kernel caricato in memoria


Inoltre si segnala:
Inoltre si segnala:
* insmode <modulo>: carica il modulo indicato, utile sia per caricare i moduli del RAID o LVM, sia per passare dal prompt grub-rescue a grub normale.
* <code>insmode nome_modulo</code>: carica il modulo indicato, utile sia per caricare i moduli del RAID o LVM, sia per passare dal prompt ''grub-rescue'' a ''grub normale''.
===Grub-rescue===
 
=Situazioni di panico!=
Penso capiti a tutti almeno una volta: il sistema non parte. Innanzi tutto state tranquilli, se il problema è legato a GRUB allora il vostro sistema è ancora salvo e non aspetta altro che essere lanciato. La situazione sarà facilmente ripristinabile senza dover ricorrere a soluzioni estreme.
 
Con i comandi finora elencati dovreste essere in grado di cavarvela in ogni situazione. Per dare un aiuto ecco un elenco di situazioni tipiche e di possibili modi di procedere.


NOTA: i motivi che possono causare un problema sono molteplici, dall'aggiunta di un nuovo hard disk all'installazione di un nuovo sistema operativo. I casi sono esposti per sintomi, senza fare riferimento alle possibili cause.
=== Situazioni di panico! ===
Penso capiti a tutti almeno una volta: il sistema non parte.<br/>
Innanzi tutto state tranquilli, se il problema è legato a GRUB allora il vostro sistema è ancora salvo e non aspetta altro che essere lanciato. La situazione sarà facilmente ripristinabile senza dover ricorrere a soluzioni estreme.<br/>
Con i comandi finora elencati dovreste essere in grado di cavarvela in ogni situazione.
{{Box|Nota|I motivi che possono causare un problema sono molteplici, dall'aggiunta di un nuovo hard disk all'installazione di un nuovo sistema operativo. I casi sono esposti per sintomi, senza fare riferimento alle possibili cause.}}
Per dare un aiuto ecco un elenco di situazioni tipiche e di possibili modi di procedere.


===Si vedono i drive ma non vengono caricati===
=== Si vedono i drive, ma questi non vengono caricati ===
Sintomi:
Sintomi:
* My machine came with another OS installed, I tried to install Linux/HURD/L4, and now it "won't boot at all", aka
* My machine came with another OS installed, I tried to install Linux/HURD/L4, and now it "won't boot at all", aka
* My BIOS can't seem to find an OS on the drive, aka
* My BIOS can't seem to find an OS on the drive, aka
* GRUB non sembra trovare il bootloader.
* GRUB non sembra trovare il bootloader.
Cause:
Cause:
* È presente un primo loader che punta in un posto errato (es. cambiato ordine degli Hard Disk);
* È presente un primo loader che punta in un posto errato (es. cambiato ordine degli Hard Disk);
* Il menù è stato eliminato e/o la sua voce principale è erranea.
* Il menù è stato eliminato e/o la sua voce principale è erranea.
Soluzioni:
Soluzioni:
* Entrare nel menù di GRUB e provare un'altra voce.
* Entrare nel menù di GRUB e provare un'altra voce.
* Boot da un LiveCD.  
* Boot da un LiveCD.  


===Carica direttamente un OS senza passare da GRUB===
=== Viene caricato direttamente un OS senza passare da GRUB ===
Sintomi:
Sintomi:
* Dovrei vedere il menù di GRUB, ma viene caricato direttamente l'OS.
* Dovrei vedere il menù di GRUB, ma viene caricato direttamente l'OS.
Cause:
Cause:
* Il menù è off/soppresso?
* Il menù è off/soppresso?
* È possibile che un OS di un'altra partizioni abbia (re)installato il un boatloader e per qualche ragione sovrascritto GRUB 2?  
* È possibile che un OS di un'altra partizioni abbia (re)installato il un boatloader e per qualche ragione sovrascritto GRUB 2?  
Soluzioni:
Soluzioni:
* Provare ad entrare nel GRUB menù/shell.
* Provare ad entrare nel GRUB menù/shell.
Riga 309: Riga 300:
* Reinstallare GRUB dall'OS ripristinando il menù.
* Reinstallare GRUB dall'OS ripristinando il menù.


===Si ferma a <code>grub></code>===
=== "No such device" error ===
Questo errore si presenterà probabilmente se si è creata una nuova partizione di root copiando tutti i dati dalla vecchia. Poiché l'<code>UUID</code> della nuova partizione è differente da quello della vecchia GRUB non trova più la partizione da avviare.
{{Cautionbox|È probabile che questo problema si verifiche anche se avete già provveduto ad aggiornare manualmente l'UUID sia in <code>/etc/fstab</code> che nella corrispondente sezione ''menu entry'' di <code>/boot/grub/grub.cfg</code>}}
Il primo passo è visualizzare tutti i dispositivi disponibili
<pre>grub_rescue> ls</pre>
che stamperà a video qualcosa di simile a:
<pre>(hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (md/0) ...</pre>
Ipotizzato che la partizione da avviare sia <code>(md/0)</code> digitare i seguenti comandi:
<pre>
set prefix="(md/0)/boot/grub"
set root="(md/0)"
insmod normal
normal
</pre>
Dopo aver digitato l'ultimo comando il sistema dovrebbe riavviarsi normalmente.<br/>
È molto probabile che il problema si ripresenti tale e quale dopo un riavvio, pertanto se così fosse ripetere i passi sopra elencati e dopo aver avviato normalmente reinstallare GRUB col senguente comando:
<pre># apt reinstall grub2-common grub-efi-amd64</pre>
A questo punto il sistema dovrebbe avviarsi normalmente ad ogni avvio.
 
=== L'avvio si arresta mostrando <code>grub></code> ===
Sintomi:
Sintomi:
* Visualizzo il solo grub prompt
* Visualizzo il solo grub prompt
<pre> Welcome to GRUB!
<pre> Welcome to GRUB!
grub>
grub>
 
</pre>
oppure
oppure
 
<pre>grub rescue></pre>
grub rescue></pre>
 
Cause:
Cause:
* GRUB 2 non riesce a trovare il file grub.cfg.
* GRUB 2 non riesce a trovare il file <code>grub.cfg</code>.
* Il file grub.cfg è completamente inutilizzabile.  
* Il file <code>grub.cfg</code> è completamente inutilizzabile.  
 
Soluzioni:
Soluzioni:
* cat /grub/grub.cfg. Se la parola 'title' compare da qualche parte in una "stanzas", allora qualcuno ha copiato le opzioni direttamente dal file menu.cfg di GRUB Legacy.
* cat <code>/grub/grub.cfg</code>. Se la parola 'title' compare da qualche parte in una "stanzas", allora qualcuno ha copiato le opzioni direttamente dal file menu.cfg di GRUB Legacy.
* Provare dei comandi di shell per verificare come sono visualizzati i drive in GRUB 2, vedere la configurazione e trovare qualche file (immagine del kernel) che sia caricabile.
* Provare dei comandi di shell per verificare come sono visualizzati i drive in GRUB 2, vedere la configurazione e trovare qualche file (immagine del kernel) che sia caricabile.


==Errori del menù / "Stanza Problems"==
=== Errori del menù (''Stanza Problems'') ===
Sintomi:
Sintomi:
* Si visualizza un menù ma non carica il sitema.
* Si visualizza un menù ma non carica il sitema.
* Compare un menù per alcuni secondi, prova ad eseguire il loading ma fallisce/torna al menù.
* Compare un menù per alcuni secondi, prova ad eseguire il loading ma fallisce/torna al menù.
* I briefly see some kind of complaint (such as what) and it kicks me into GRUB  
* I briefly see some kind of complaint (such as what) and it kicks me into GRUB  
Cause:
Cause:
* The more subtle items, like the caveats above.
* The more subtle items, like the caveats above.
Riga 339: Riga 344:
* Problemi di UUID
* Problemi di UUID
* Differenze di path/drive tra ciò che è indicato nel menù e cosa invece è stato indicato al momento dell'installazione di GRUB.
* Differenze di path/drive tra ciò che è indicato nel menù e cosa invece è stato indicato al momento dell'installazione di GRUB.
Soluzione:
Soluzione:
* Entrare, premendo 'e' quando compare il menù, nel prompt di GRUB e cercare di identificare un sistema bootabile.
* Entrare, premendo 'e' quando compare il menù, nel prompt di GRUB e cercare di identificare un sistema bootabile.


==Nulla funziona==
=== Nulla funziona ===
Ricorrere allora ad [[Ripristinare GRUB 2 da una live CD/USB | una live e ripristinare da lì GRUB]].
Ricorrere allora ad [[Ripristinare GRUB 2 da una live CD/USB | una live e ripristinare da lì GRUB]].


Restore Windows boot-menu entry
=== Restore Windows boot-menu entry ===
 
Sometimes upgrading to grub2 removes your windows partition from the grub menu.
Sometimes upgrading to grub2 removes your windows partition from the grub menu.
Follow this to get your gaming platform back: ChainLoadWindows
Follow this to get your gaming platform back: ChainLoadWindows


=Ripristinare GRUB 2 da una live CD/USB=
== Ripristinare GRUB 2 da una live CD/USB ==


https://help.ubuntu.com/community/Grub2/Installing#Fixing_a_Broken_System
[https://help.ubuntu.com/community/Grub2/Installing#Fixing_a_Broken_System Fixing a Broken System]


=Utilità=
== Utilità ==
Qui seguono alcune note che possono essere di aiuto in casi particolari.
Qui seguono alcune note che possono essere di aiuto in casi particolari.
==Tastiera italiana-americana==
 
=== Tastiera italiana-americana ===
Se ci si ritrova nel prompt di grub, la configurazione della tastiera disponibile sarà quella americana. Per fortuna sono entrambe del tipo QWERTY, ma vi sono alcune differenze con gli altri caratteri. Ad esempio:
Se ci si ritrova nel prompt di grub, la configurazione della tastiera disponibile sarà quella americana. Per fortuna sono entrambe del tipo QWERTY, ma vi sono alcune differenze con gli altri caratteri. Ad esempio:
{| class="wikitable"
{| class="wikitable"
Riga 378: Riga 381:
Per cambiare il layout della tastiera, si legga [[#Tastiera italiana|questo paragrafo]].
Per cambiare il layout della tastiera, si legga [[#Tastiera italiana|questo paragrafo]].


=Sitografia=
== Sitografia ==
Ecco alcuni link utili dove possibile reperire maggiori informazioni:
Ecco alcuni link utili dove possibile reperire maggiori informazioni:
* [http://www.gnu.org/software/grub/ Pagina del progetto GRUB]
* [http://www.gnu.org/software/grub/ Pagina del progetto GRUB]
* [https://superuser.com/questions/359417/linux-installation-wont-boot-due-to-grub-no-such-device-error/791825 Linux installation won't boot due to grub "no such device" error]


{{Autori
{{Autori
3 113

contributi