Guida a Grub: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Nessun cambiamento nella dimensione ,  6 set 2005
Riga 1: Riga 1:
{{Debianized}}
{{Debianized}}
== Introduzione ==
== Introduzione ==


Riga 8: Riga 7:
i principianti. La guida � rivolta quindi a tutti coloro i quali per
i principianti. La guida � rivolta quindi a tutti coloro i quali per
necessit� o diletto vogliano imparare ad usare questo
necessit� o diletto vogliano imparare ad usare questo
versatile [[boot loader]].
versatile bootloader.


== Perch� Grub ==
== Perch� Grub ==
Riga 24: Riga 23:
sicuri di non sbagliare il percorsi o i nomi dei file. In questo modo � facile fare velocemente molte prove con kernel o
sicuri di non sbagliare il percorsi 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.
parametri di boot diversi, al volo, senza dover modificare alcun file.
Per confronto, con lilo (altro [[boot loader]] diffuso), per modificare un
Per confronto, con lilo (altro bootloader diffuso), per modificare un
parametro di boot o fare partire un nuovo kernel (anche solo per prova)
parametro di boot o fare partire un nuovo kernel (anche solo per prova)
� necessario avviare il sitema, modificare
� necessario avviare il sitema, modificare
<tt>lilo.conf</tt>, eseguire il comado lilo e riavviare. Con '''Grub''' basta invece scrivere le modifiche al boot: se c'� un errore ed il kernel non si
lilo.conf, eseguire il comado lilo e riavviare. Con '''Grub''' basta invece scrivere le modifiche al boot e se c'� un errore ed il kernel non si
carica basta resettare il sistema e provare di nuovo. Trovati i
carica basta resettare il sistema e provare di nuovo. Trovati i
parametri giusti si possono salvare in '''<tt>/boot/grub/menu.lst</tt>''' in modo che non sia pi� necessario inserirli a mano.
parametri giusti si possono salvare in '''<tt>/boot/grub/menu.lst</tt>''' in modo che non sia pi� necessario inserirli a mano.
Riga 33: Riga 32:
== Installazione di Grub ==
== Installazione di Grub ==


Normalmente '''Grub''' � gi� installato in Debian. Se per� si �
Nomalmente '''Grub''' � gi� installato in Debian. Se per� si �
installato, per ultimo, un S.O. (come MS-Windows) che ignora la presenza di altri
installato un S.O. (come MS-Windows) che ignora la presenza di altri
sistemi sul disco e vuole monopolizzare il nostro pc, ci si trova nella
sistemi sul disco e vuole monopolizzare il nostro pc, ci si trova nella
necessit� di installare nuovamente '''Grub''' per riappropriarci della libert� di scegliere. Pu� anche succedere di aver provato un altro boot loader e di voler ritornare a '''Grub''': anche in questo caso basta seguire quanto segue.
necessit� di installare nuovamente '''Grub''' per riappropriarci della libert� di scegliere. Pu� anche succedere di aver provato un altro boot loader e di voler ritornare a '''Grub''': anche in questo caso basta seguire quanto segue.


Per usare '''Grub''' � necessario installarlo nel [[MBR]] (in realt� � anche possibile [[Guida_a_Grub#Installare_Grub_su_floppy|installarlo solo in un floppy]]) con il seguente comando:
Per usare '''Grub''' � necessario installarlo nel "Master Boot Record - Il primo settore dell'hard disk" (MBR) (in realt� � anche possibile installarlo solo in un floppy) con il seguente comando:


<pre>
<pre>
# grub-install --no-floppy /dev/hda
# grub-install --root-directory=/boot /dev/hda
</pre>
</pre>


in questo modo ogni altro [[boot loader]] verr� sovrascritto e all'avvio apparir� grub che permetter� di avviare ogni sistema presente su hard disk. Non � necessario avere tanti [[boot loader]] anche se si installano tante distribuzioni,
ma attenzione: ogni altro boot loader verr� eliminato. Non �
necessario avere tanti boot loader anche se si installano tante distribuzioni,
ne basta uno che le fa partire tutte.
ne basta uno che le fa partire tutte.
 
Il "primo pezzo di grub" (detto
Se si � installato windows, gli altri S.O. non saranno pi� avviabili. Come si fa allora a eseguire il precedente comando per ripristinare grub? Basta usare un livecd per avviare il sistema, non � neanche necessario che ci sia grub in tale cd. Dopo l'avvio, monteremo la partizione di root del sistema linux installato su hard disk:
stage1) risiede nel MBR (Master Boot Record - Il primo settore dell'hard disk), il "secondo pezzo di grub" (stage2) ed i file di configurazione risiedono nella '''partizione di root di grub''' che � <tt>/boot</tt> in questo caso (da non confondere con la '''partizione di root del sistema /'''). Il menu iniziale del '''Grub''' � configurato nel file <tt>/boot/grub/menu.lst</tt>, basta modificarlo ed all'avvio '''Grub''' legger� la nuova configurazione.
<pre>
# mkdir /mnt/root
# mount /dev/hda3 /mnt/root
</pre>
 
dove si � fatta l'ipotesi che sia <tt>/dev/hda3</tt> la partizione di root. Ora con <tt>chroot</tt> si pu� cambiare al volo la partizione di root del nostro livecd:
 
<pre>
# chroot /mnt/root
</pre>
 
Adesso abbiamo sotto di noi la root del sistema installato su disco. Montiamo anche la partizione di boot, se questa � posta in una partizione separata. A questo punto possiamo eseguire <tt>grub-install</tt> come visto prima per ripristinare grub. Se si vuole si pu� anche generare automaticamente un menu di avvio con il [[Guida_a_Grub#Usare_update-grub|comando <tt>update-grub</tt>]].
 
Vediamo ora di capire un poco meglio quali sono i vari componenti di grub.
 
Il "primo pezzo di grub" (detto stage1) risiede nel [[MBR]], il "secondo pezzo di grub" (stage2) ed i file di configurazione risiedono nella '''partizione di root di grub''': questa sar� la partizione montata in <tt>/boot</tt> se si ha una partizione separata per <tt>/boot</tt>, altrimenti sar� la '''partizione di root del sistema''' (montata in /). La ''cartella'' in cui risiede lo stage2 e tutti i file di configurazione di grub � in ogni caso <tt>/boot/grub/</tt>.
 
Il menu iniziale del '''Grub''' � configurato nel file <tt>/boot/grub/menu.lst</tt>, basta modificarlo ed all'avvio '''Grub''' legger� la nuova configurazione. Il [[Guida_a_Grub#Usare_update-grub|comando <tt>update-grub</tt>]] genera automaticamente questo appunto questo file, anche se con alcune limitazioni (per maggiori informazioni vedere la sezione [[Guida_a_Grub#Usare_update-grub|<tt>'''update-grub'''</tt>]]).
 
Dopo l'installazione di grub, lo stage1 rester� sempre immutato e punter� allo stage2. Lo stage2, caricher� i file di configurazione che potranno essere modificati a piacimento senza mai dover modificare il settore di avvio ([[MBR]]).


== Far partire il sistema principale ==
== Far partire il sistema principale ==
Riga 73: Riga 53:
Chiameremo sistema principale il sistema sotto il quale avete installato '''Grub'''. Vediamo i comandi necessari per fare partire un kernel, questi possono essere inseriti interattivamente all'avvio di '''Grub'''. Successivamente vedremo come inserirli in '''/boot/grub/menu.lst''' per creare una voce nel menu di grub.
Chiameremo sistema principale il sistema sotto il quale avete installato '''Grub'''. Vediamo i comandi necessari per fare partire un kernel, questi possono essere inseriti interattivamente all'avvio di '''Grub'''. Successivamente vedremo come inserirli in '''/boot/grub/menu.lst''' per creare una voce nel menu di grub.


Innanzi tutto dobbiamo dire a '''Grub''' qual'� la '''sua''' partizione di root, che � <tt>/boot</tt> (ci siamo?). Ma in che partizione � '''/boot'''? E' la partizione montata in '''/boot''' quando avete dato '''grub-install'''. Controllate il file '''/etc/fstab''' per vedere qual'�. Se fosse '''/dev/hda3''', dovremmo scrivere al ''prompt di grub'' (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c')
Innanzi tutto dobbiamo dire a '''Grub''' qual'� la '''sua''' partizione di root, che � <tt>/boot</tt> (ci siamo?). Ma in che partizione � '''/boot'''? E' la partizione montata in '''/boot''' quando avete dato '''grub-install'''. Controllate il file '''/etc/fstab''' per vedere qual'�. Se fosse '''/dev/hda3''', dovremmo scrivere al prompt di grub (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c')
<pre>
<pre>
root (hd0,2)
root (hd0,2)
Riga 79: Riga 59:


fate attenzione che le partizioni '''Grub''' le numera partendo da 0 quindi il numero della partizione � 1 in meno rispetto al numero che ha sotto linux.
fate attenzione che le partizioni '''Grub''' le numera partendo da 0 quindi il numero della partizione � 1 in meno rispetto al numero che ha sotto linux.
''Ricordate che con la tastiera italiana, all'avvio, le parentesi si fanno con ''shift+0'' e ''shift+'' mentre lo slash con - ed il segno di uguale con .''


Se fosse '''/dev/hda1''' dovremmo dare: '''root (hd0,0)''', chiaro?
Se fosse '''/dev/hda1''' dovremmo dare: '''root (hd0,0)''', chiaro?
{{Box | Nota |Ricordate che con la tastiera italiana, all'avvio, le parentesi si fanno con <big><tt>shift+0</tt></big> e <big><tt>shift+9</tt></big> mentre lo slash (<big><tt>/</tt></big>) con il tasto <big><tt>-</tt></big> ed il segno di uguale con .}}


Ora carichiamo il kernel. Poniamo che il file sia '''/boot/vmlinuz-2.6.6s26-mio-kernel'''. Supponiamo che la ''partizione di root del kernel'' (cio� proprio la root del sistema) sia '''/dev/hda4''', scriveremo nel prompt di grub (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c') come secondo comando:
Ora carichiamo il kernel. Poniamo che il file sia '''/boot/vmlinuz-2.6.6s26-mio-kernel'''. Supponiamo che la ''partizione di root del kernel'' (cio� proprio la root del sistema) sia '''/dev/hda4''', scriveremo nel prompt di grub (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c') come secondo comando:
Riga 89: Riga 69:
</pre>
</pre>


vedete? Partendo dalla ''root di grub'', che � '''/boot''' sotto linux, il file del kernel � semplicemente in '''/'''. In ogni caso � qui che l'autocompletamento (premendo <tt>TAB</tt>, lo sapete no?) gioca il suo ruolo migliore, e permette di scegliere il file corretto. Gli ultimi due parametri sono:
vedete? Partendo dalla ''root di grub'', che � '''/boot''' sotto linux, il file del kernel � semplicemente in '''/'''. In ogni caso � qu� che l'autocompletamento (premendo ''TAB'', lo sapete no?) gioca il suo ruolo migliore, e permette di scegliere il file corretto. Gli ultimi due parametri sono:


* '''ro''': accede inizialmente alle partizioni in sola lettura. E' buona norma inserirlo sempre.
* '''ro''': accede inizialmente alle partizioni in sola lettura. E' buona norma inserirlo sempre.
Riga 96: Riga 76:
A questo punto basta dare il comando '''boot''' per fare partire (si spera) il sistema.
A questo punto basta dare il comando '''boot''' per fare partire (si spera) il sistema.


{{Box| Nota |Se non si ha una partizione separata per <tt>/boot</tt>, bisogner indicare la partizione di root del sistema come root di grub. In questo caso per, il kernel non si trover in <tt>/vmlinuz</tt> ma in <tt>/boot/vmlinuz</tt>.}}


== Far partire un secondo sistema ==
== Far partire un secondo sistema ==
Riga 129: Riga 108:
a seconda di dove si trova l'immagine (si trova sempre nella stessa partizione/directory del suo kernel).
a seconda di dove si trova l'immagine (si trova sempre nella stessa partizione/directory del suo kernel).


{{Warningbox|Un kernel partir� solo con
http://www.ubuntulinux.org/wiki/IconWarning.png '''Attenzione:''' Un kernel partir� solo con
la sua immagine initrd, se provate ad usare immagini intrd di altri
la sua immagine initrd, se provate ad usare immagini intrd di altri
kernel il sistema non partir� dando un ''Kernel Panic''. Analogamente se cercate di fare partire un kernel che necessita di initrd, senza initrd il sistema andr� ancora in ''Kernel Panic''.}}
kernel il sistema non partir� dando un ''Kernel Panic''. Analogamente se cercate di fare partire un kernel che necessita di initrd, senza initrd il sistema andr� ancora in ''Kernel Panic''.


== Configurare il Men� di grub ==
== Configurare il Men� di grub ==
1 760

contributi

Menu di navigazione