Guida a GRUB 2: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Riga 4: Riga 4:
{{ Warningbox | La presente guida è solo una bozza e deve essere ancora revisionata. Attenzione a impartire gli ordini a GRUB, un errato input potrebbe rendere il sistema non più caricabile. }}
{{ Warningbox | La presente guida è solo una bozza e deve essere ancora revisionata. Attenzione a impartire gli ordini a GRUB, un errato input potrebbe rendere il sistema non più caricabile. }}


Con questa guida si intende analizzare la versione di Grub 1.x nota anche come GRUB2. Per la versione precedente, rinominata ora Grub Legacy, fare riferimento all'altra guida.
Con questa guida si intende analizzare la versione di Grub 1.x nota anche come GRUB2. Per la versione precedente, rinominata ora [[Guida a Grub | Grub Legacy]], fare riferimento all'altra guida.
Per un rapido scorcio sulle differenze tra i due ed i possibili comandi utilizzabili da shell rimando [http://grub.enbug.org/CommandList qui]
Per un rapido scorcio sulle differenze tra i due ed i possibili comandi utilizzabili da shell rimando [http://grub.enbug.org/CommandList qui]
Il presente HOWTO nasce dalla traduzione del [http://grub.enbug.org/Manual#head-ac682374c934903ada4062842a0f92ac5d0ec8df wiki di GRUB 2] poi successivamente rivisto ed integrato con altri spunti tratti dalla rete.


Grub è uno strumento molto potente che dovrebbe essere sempre presente nella scatola degli attrezzi di ogni amante del Free Software. Con Grub è possibile avviare qualsiasi Sistema Operativo ed anche altri bootloader.
Grub è uno strumento molto potente che dovrebbe essere sempre presente nella scatola degli attrezzi di ogni amante del Free Software. Con Grub è possibile avviare qualsiasi Sistema Operativo ed anche altri bootloader.
Riga 35: Riga 37:


==I comandi per la gestione di GRUB==
==I comandi per la gestione di GRUB==
Ora che abbiamo una idea di cosa sia e come funzioni GRUB2 passiamo all'analisi dei comandi da invocare per il settaggio. I comandi da dare culmineranno con grub-install che esegue l'effettiva modifica del punto di boot (Master Boot Record).
Ora che abbiamo una idea di cosa sia e come funzioni GRUB2 passiamo all'analisi dei comandi da invocare per il settaggio. I comandi da dare culmineranno con <tt>grub-install</tt> che esegue l'effettiva modifica del punto di boot (Master Boot Record).


grub-probe: per indicare dove cercare i kernel, quali moduli utilizzare, cosa attualmente è presente.
* grub-probe: per indicare dove cercare i kernel, quali moduli utilizzare, cosa attualmente è presente.


grub-mkconfig: genera il file di configurazione grub.cfg
* grub-mkconfig: genera il file di configurazione grub.cfg


grub-mkimage: crea immagine binaria di GRUB bootabile.
* grub-mkimage: crea immagine binaria di GRUB bootabile.


grub-setup: scrive sul HD GRUB
* grub-setup: scrive GRUB sull'HD specificato.


grub-install:  
* grub-install: esegue una serie di operazioni tale da rendere il sistema avviabile, come specificato in seguito.


===Analisi di grub-install===
===Analisi di grub-install===
 
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:
#* veridica che i comandi grub-setup, grub-mkimage e grub-mkdevicemap siano stati eseguiti con successo e correttamente;
#* se non presente crea la cartella /boot/grub e la riempie;
#* crea, qualora non presente, la device.map.
# Lancia grub-probe (usando i moduli presenti in /boot/grub) per generare core.img (secondo la variabile --root-directory=):
#* individua il File System;
#* legge la tabella di partizioni sul supporto da scrivere;
#* individua su di esso altre possibili astrazioni (LVM, RAID...).
# Grub-mkimage crea core.img secondo le opzioni finora individuate.
# È lanciato grub-setup per la scrittura sul Master Boot Record.
====Installare GRUB 2====
====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)
<pre># grub-install --root-directory=~/usbdrive/ /dev/sdb</pre>
Per maggiori informazioni, leggere [http://grub.enbug.org/UseCases/Ubuntu qui].
=Comandi shell, come risolvere i problemi=
=Comandi shell, come risolvere i problemi=
Quando qualcosa va storto configurazione indicata nel menù di avvio di GRUB (ad esempio non trova il kernel), allora abbandona con il seguente promt:
<pre>grub></pre>
Vengono resi disponibili una serie di comandi tale da rendere possibile l'analisi dell'errore e rendere un sistema caricabile.
==lista comandi==
==lista comandi==
==esegui il boot==
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;
* ls: come in bash (LiSt) mostra i file presenti. Il comando <tt>ls /</tt> 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;
* set root=/dev/sda2: identifica la cartella di root, il parametro può essere dato assieme al comando linux come segue;
* 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);
* linux16 /memtest86+: 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);
* boot: avvia il kernel caricato in memoria
 
Inoltre si segnala:
* insmode <modulo>: carica il modulo indicato, utile sia per caricare i moduli del RAID o LVM, sia per passare dal promt 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.
 
===Si vedono i drive ma non vengono caricati===
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 BIOS can't seem to find an OS on the drive, aka
* GRUB non sembra trovare il bootloader.
 
Cause:
* È presente un primo loader che punta in un posto errato (raro);
* Il menù è stato eliminato e/o la sua voce principale è erranea.
 
Soluzioni:
* Entrare nel menù di GRUB e provare un'altra voce.
* Boot da un LiveCD.
 
===Carica direttamente un OS senza passare da GRUB===
Sintomi:
* Dovrei vedere il menù di GRUB, ma viene caricato direttamente l'OS.
 
Cause:
* 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?
 
Soluzioni:
* Provare ad entrare nel GRUB menù/shell.
* Boot da un LiveCD.
* Reinstallare GRUB dall'altro OS.
 
===Si ferma a <tt>grub></tt>===
Sintomi:
* Visualizzo il solo grub prompt
<pre> Welcome to GRUB!
 
grub>
 
oppure
 
grub rescue></pre>
 
Cause:
* GRUB 2 non riesce a trovare il file grub.cfg.
* Il file grub.cfg è completamente inutilizzabile.
 
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.
* 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.
 
Menu failures / Stanza Problems
 
Symptom(s):
* I see a menu, but it just sits there, aka
* A menu appears for a few seconds, it tries to load something, but complains and drops back to the menu.
* I briefly see some kind of complaint (such as what) and it kicks me into GRUB
 
Cause(s):
* The more subtle items, like the caveats above.
* Also end up here when utilities don't guess/create menu entries correctly.
* UUID problems
* path/drive differences between what was seen at write and what is seen now.
 
Solution(s):
* Use 'e' to edit an entry to something that will boot.
 
===Nulla funziona===
Ricorrere allora ad [[Ripristinare GRUB 2 da una live CD/USB | una live e ripristinare da lì GRUB]].
 
Restore Windows boot-menu entry
 
Sometimes upgrading to grub2 removes your windows partition from the grub menu.
 
Follow this to get your gaming platform back: ChainLoadWindows
 
=Ripristinare GRUB 2 da una live CD/USB=
 
http://grub.enbug.org/Grub2LiveCdInstallGuide
 
=Sitografia=
=Sitografia=
Ecco alcuni link utili dove possibile reperire maggiori informazioni:
Ecco alcuni link utili dove possibile reperire maggiori informazioni:
* [http://grub.enbug.org/FrontPage Pagina del progetto GRUB]
* [http://grub.enbug.org/FrontPage Pagina del progetto GRUB]