1 760
contributi
m (→Far partire un secondo sistema: typo) |
|||
Riga 1: | Riga 1: | ||
{{Debianized}} | {{Debianized}} | ||
== Introduzione == | == Introduzione == | ||
Riga 7: | Riga 8: | ||
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 | versatile [[boot loader]]. | ||
== Perch� Grub == | == Perch� Grub == | ||
Riga 23: | Riga 24: | ||
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 | Per confronto, con lilo (altro [[boot loader]] 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 | ||
lilo.conf, eseguire il comado lilo e riavviare. Con '''Grub''' basta invece scrivere le modifiche al boot | <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 | ||
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 32: | Riga 33: | ||
== Installazione di Grub == | == Installazione di Grub == | ||
Normalmente '''Grub''' � gi� installato in Debian. Se per� si � | |||
installato un S.O. (come MS-Windows) che ignora la presenza di altri | installato, per ultimo, 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 | 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: | ||
<pre> | <pre> | ||
# grub-install -- | # grub-install --no-floppy /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, | |||
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 | |||
stage1) risiede nel MBR | 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: | ||
<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 53: | Riga 73: | ||
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 60: | Riga 80: | ||
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. | ||
'' | 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 69: | Riga 89: | ||
</pre> | </pre> | ||
vedete? Partendo dalla ''root di grub'', che � '''/boot''' sotto linux, il file del kernel � semplicemente in '''/'''. In ogni caso � | 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: | ||
* '''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 76: | Riga 96: | ||
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 == | ||
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' | 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 distro risiede in un'altra | Se invece il file del kernel della seconda distro risiede in un'altra | ||
partizione che non sia la boot della prima distro (potrebbe essere una | partizione che non sia la boot della prima distro (potrebbe essere una | ||
Riga 108: | Riga 129: | ||
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 | |||
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 == |
contributi