## page was renamed from Grub2/FileCartelle
#format wiki
#language it
<<Indice(depth=2)>>
<<BR>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=82907"; rilasci="20.04 18.04 16.04 14.04")>>

= Introduzione =

Questa guida illustra i contenuti basilari dei file di configurazione del [[https://it.wikipedia.org/wiki/Boot_loader|bootloader]] [[AmministrazioneSistema/Grub|Grub2]].

= File e cartelle =

I file necessari al funzionamento di '''Grub''' continuano a risiedere nella directory `/boot/grub`, ma il file `menu.lst` è stato sostituito con `grub.cfg`, il nuovo file con le istruzioni per '''Grub 2'''.

Questo file è generato da diversi script attraverso l'uso dei comandi '''update-grub''' o '''update-grub2'''. I file responsabili del contenuto di `grub.cfg` sono `/etc/default/grub` e gli script individuali allocati nella directory `/etc/grub.d/`.

Molti dei file presenti in `/boot/grub` non saranno familiari agli utenti di '''Grub Legacy''', in particolar modo i file con estensione `.mod`.<<BR>>
'''Grub 2''' è modulare e tali file sono necessari al caricamento del programma stesso.<<BR>>
Nonostante l'aggiunta di questi file, la grandezza totale del contenuto di `/boot/grub` è abbastanza vicina a quella della vecchia versione del programma e non dovrebbe essere necessaria una [[Hardware/DispositiviPartizioni/Partizioni|partizione]] `/boot` più grande.

<<Anchor(grub_grub.cfg)>>
== Il file grub.cfg (/boot/grub/grub.cfg) ==

`grub.cfg` è il file principale di '''Grub 2''' che sostituisce il file `menu.lst` di '''Grub Legacy'''.

{{{#!wiki important
Questo file, al contrario del file `menu.lst`, __NON__ va assolutamente modificato.}}}

Per generare e aggiornare automaticamente il file `grub.cfg`, digitare nel [[AmministrazioneSistema/Terminale|terminale]] e coi [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] il comando '''update-grub''' o '''update-grub2'''.

Gli script usati per generare `grub.cfg` includono i file contenuti nella directory `/etc/grub.d` e le informazioni contenute nel file `/etc/default/grub`.

Il file è diviso in diverse sezioni, ognuna deliminata dalla riga di intestazione: {{{
### BEGIN /etc/grub.d/nomefile ###
}}}
E dalla riga di fine sezione:{{{
### END /etc/grub.d/nomefile ###
}}}

Il percorso `/etc/grub.d/nomefile` specifica a quale file presente nella directory `/etc/grub.d` si riferisce la sezione.

Da predefinito, a ogni esecuzione del comando '''update-grub''' o '''update-grub2''', questo file è impostato a sola lettura.<<BR>>
Questo viene fatto affinché il file __non sia modificabile__ manualmente dall'utente.<<BR>>
Se è proprio necessario modificare questo file, istruzioni su come procedere possono essere trovate nelle sezioni successive di questa pagina.

Quello che segue è un semplice esempio di `grub.cfg` che comprende:
 * due kernel di '''Ubuntu'''
 * '''memtest86+'''
 * Windows
 * una voce personalizzata («41_srcd») importata da uno script in `/etc/grub.d`

{{{
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a
if font /usr/share/grub/ascii.pff ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  terminal gfxterm
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###

### BEGIN /etc/grub.d/10_linux ###
set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a-be3a-9ff7d3e7e7ea
menuentry "Ubuntu, linux 2.6.28-13-generic" {
    linux   /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro  quiet splash vga800
    initrd  /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" {
    linux   /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro single 
    initrd  /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic" {
    linux   /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro  quiet splash vga800
    initrd  /boot/initrd.img-2.6.28-11-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" {
    linux   /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro single 
    initrd  /boot/initrd.img-2.6.28-11-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    linux   /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    linux   /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
    set root=(hd0,1)
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file is an example on how to add custom entries

### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_srcd ###
menuentry "SystemRescue CD on hard drive" {
        set root=(hd0,10)
        linux   /sysrcd/rescuecd subdir=sysrcd setkmap=us
        initrd  /sysrcd/initram.igz
} 
### END /etc/grub.d/41_srcd ###
}}}


<<Anchor(default_grub)>>
== Il file grub (/etc/default/grub) ==

Questo file contiene informazioni simili a quelle che si trovavano nella sezione più alta del vecchio file `menu.lst`. Contiene impostazioni che incidono sull'aspetto del menù del programma.

Questo file può essere modificato con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] per modificare le impostazioni; modifiche che verranno importate nel file `grub.cfg` quando viene eseguito il comando '''update-grub''' o '''update-grub2'''.

{{{
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=3
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX=""
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_BACKGROUND=/home/topogigio/Immagini/Grub/gruviera.png

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"
}}}

=== Opzioni ===

Segue una tabella esplicativa delle principali opzioni del file.

||<tablestyle="width:80%;" :30%>'''Opzione''' ||<:70%>'''Significato''' ||
||GRUB_DEFAULT=0||Imposta la voce del menù selezionata in modo predefinito. L'assegnamento è numerico in base alla posizione della voce nel menù stesso. La '''prima voce''' ha sempre numero uguale a '''0'''.<<BR>>È anche possibile utilizzare l'opzione in questo modo: <<BR>>'''GRUB_DEFAULT=saved'''<<BR>>In questo caso l'ultimo sistema avviato sarà quello selezionato al boot. <<BR>> In alternativa indicare il nome del sistema da avviare così come visto nel file `/boot/grub/grub.cfg`, ad esempio: <<BR>> '''GRUB_DEFAULT=Microsoft Windows XP Home Edition (on /dev/sda1)'''<<BR>>Per la gestione dei sottomenù vedere il [[#sottomenù|relativo paragrafo]].||
||GRUB_TIMEOUT=10||Imposta il numero di secondi del conto alla rovescia dopo il quale sarà caricata la voce predefinita del menù.<<BR>>Impostando il valore a '''-1''' verrà disabilitato il conto alla rovescia e il menù sarà visualizzato finché l'utente non effettuerà una scelta.||
||GRUB_HIDDEN_TIMEOUT=3||Se commentata (presenza del simbolo '''#''' all'inizio riga), viene mostrato il menù, altrimenti il menù viene nascosto e viene lanciata la voce predefinita allo scadere dei secondi impostati (in questo esempio '''3'''). Se viene impostato un numero di secondi pari a '''0''', l'utente può forzare la visualizzazione del menù all'avvio del computer tenendo premuto il tasto '''Maiusc'''. Durante l'avvio, il sistema controlla lo stato del tasto '''Maiusc''' . Se non è possibile determinarne lo stato, un breve lasso di tempo permetterà all'utente di visualizzare il menù premendo il tasto '''ESC'''.<<BR>>Se abilitata, la schermata iniziale '''05_debian_theme''' verrà visualizzata anche se il menu è nascosto||
||GRUB_HIDDEN_MENU_QUIET=true||Se impostata a '''true''', non viene mostrato alcun conto alla rovescia, lo schermo sarà vuoto. Se imposta a '''false''', viene mostrato un conto alla rovescia per la durata del valore GRUB_HIDDEN_TIMEOUT||
||GRUB_DISTRIBUTOR={{{`lsb_release -i -s 2> /dev/null || echo Debian`}}}||Determina il nome descrittivo della voce del menù, in caso di mancata identificazione predefinisce a '''Debian'''.<<BR>>Sostituire l'opzione '''-i''' coll'opzione '''-d''' per impostare l'avvio automatico dall'ultimo sistema avviato.||
||GRUB_CMDLINE_LINUX=""||Se esiste, questa impostazione inserisce delle opzioni alla fine della riga '''linux''' (in '''Grub Legacy''' era la riga '''kernel''') sia per il boot normale che per il '''recovery mode'''. Questa impostazione è simile ad '''altoptions''' del vecchio file `menu.lst`||
||GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"||Il valore di questa impostazione viene inserito alla fine della riga '''linux''' (in '''Grub Legacy''' era la riga '''kernel''') solo con il boot normale. Questa impostazione è simile a '''defoptions''' del vecchio file `menu.lst`.<<BR>>Per esempio, per avere solo lo schermo nero con i messaggi di boot, rimuovere il valore '''quiet splash'''; per avere un'immagine di sfondo con limitati messaggi al di sotto del logo di Ubuntu, inserire solo '''splash''', premere il tasto '''Esc''' per passare dallo sfondo ai messaggi e viceversa. ||
||GRUB_BACKGROUND=/percorso/file/immagine||In questa impostazione inserire il percorso all'immagine da mostrare nel caso nella precedente impostazione sia stata configurata lo '''splash'''.<<BR>>I formati d'immagine supportati dal '''menu-grub''' sono `.jpg`, `.jpeg,` `.png` e `.tga`.||
||#GRUB_TERMINAL=console||Togliere il commento per disabilitare il terminale grafico (solo '''grub-pc''')||
||#GRUB_DISABLE_LINUX_UUID=true||Togliere il commento per disabilitare la gestione degli UUID nei parametri del kernel||
||GRUB_DISABLE_LINUX_RECOVERY=true||Non mostra le voci '''recovery mode''' nel menù||
||GRUB_DISABLE_OS_PROBER=true||Abilita e disabilita un test sulle altre partizioni alla ricerca di altri sistemi operativi, inclusi Windows, Linux, OSX e Hurd||

<<Anchor(sottomenù)>>
== Sottomenù ==

In figura viene riportata la schemrmata di avvio di '''Grub''', nella quale in cima appare il kernel del sistema principale e di seguito (Previous Linux versions) il sottomenù contenente un kernel precedente:

<<Immagine(./grub-menu.png)>>

Nell'immagine sono stati aggiunti dei numeri in verde per facilitare la lettura di come vengono numerate le versioni.

Per rendere predefinito uno dei kernel contenuti nel sottomenù:

 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/default/grub`.
 0. Ad esempio per rendere predefinito il '''Kernel 3.2.0-18-generic-pae''' è possibile modificare il parametro '''GRUB_DEFAULT''' a scelta con una delle seguenti sinossi:
  * GRUB_DEFAULT="Previous Linux versions>Ubuntu, with Linux 3.2.0-18-generic-pae"
  * GRUB_DEFAULT="Previous Linux versions>0"
  * GRUB_DEFAULT="2>0"
  * GRUB_DEFAULT="2>Ubuntu, with Linux 3.2.0-18-generic-pae"
 0. Salvare e chiudere il file.
 0. Aggiornare il file `/boot/grub/grub.cfg` digitando nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{
sudo update-grub
}}}

<<Anchor(grub.d)>>
== La directory /etc/grub.d/ ==

I file presenti in questa directory sono letti durante l'esecuzione del comando '''update-grub''' o '''update-grub2'''. Gli script presenti in questi file esportano le informazioni che raccolgono nel file `/boot/grub/grub.cfg`.

I file vengono eseguiti in ordine sequenziale: prima i file il cui nome inizia con una cifra, poi quelli il cui nome inizia con una lettera. L'ordine con cui sono eseguiti i file determina la posizione degli elementi all'interno del menù di '''Grub'''.

Voci personalizzate possono essere aggiunte al file `40_custom` o inserite in un nuovo file.

{{{#!wiki note
[[AmministrazioneSistema/PermessiFile#Assegnare_i_permessi_di_esecuzione|Assegnare i permessi d'esecuzione]] al file creato per garantirne l'aggiunta nel file `grub.cfg` durante l'esecuzione del comando '''update-grub''' o '''update-grub2'''.}}}

Segue una tabella esplicativa dei principali file di `/etc/grub.d/`.

||<tablestyle="width:80%;" :30%>'''file''' ||<:70%>'''Significato''' ||
||00_header||Carica le impostazioni da `/etc/default/grub`, compresa la presentazione visiva, il conto alla rovescia e le opzioni del terminale ||
||05_debian_theme||Imposta lo sfondo, il colore del testo e i temi||
||10_hurd||Localizza eventuali kernel Hurd||
||10_linux||Localizza i kernel basati sull'ID del distributore determinato dal risultato del comando '''lsb_release -is'''||
||20_memtest86+||Se il file `/boot/memtest86+.bin` esiste, viene inclusa una voce per '''memtest86+'''||
||30_os-prober||Va alla ricerca di altri sistemi operativi e li include nel menù||
||40_custom||Rappresenta un modello per aggiungere voci personalizzate al menù||

= Ulteriori risorse =

 * [[https://help.ubuntu.com/community/Grub2/Submenus|Sottomenù di Grub nel wiki internazionale.]]

----
CategoryAmministrazione