• Immutable Page
  • Info
  • Attachments



Problemi in questa pagina? Segnalali in questa discussione.

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 situati 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.
Grub 2 è modulare e tali file sono necessari al caricamento del programma stesso. 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 partizione /boot più grande.

Il file grub.cfg (/boot/grub/grub.cfg)

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

Questo file, al contrario del file menu.lst, NON va assolutamente modificato.

Il file grub.cfg è generato e aggiornato automaticamente attraverso l'esecuzione dei comandi update-grub o update-grub2, comandi che necessitano dei privilegi di amministrazione per essere eseguiti correttamente.

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

Il file è diviso in diverse sezioni, ognuna delineata dalla riga di intestazione:

### BEGIN

Questa riga indica il file, nella directory /etc/grub.d, usato per recuperare le informazioni.

In modo predefinito, e con ogni esecuzione del comando update-grub2, questo file è impostato a sola lettura. Questo viene fatto in modo che il file non sia modificabile manualmente dall'utente. 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 ###

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 privilegi di amministrazione per modificare le impostazioni; modifiche che verranno importate nel file grub.cfg quando viene eseguito il comando 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_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# 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.

Opzione

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.
È anche possibile utilizzare l'opzione in questo modo:
GRUB_DEFAULT=saved
In questo caso l'ultimo sistema avviato sarà quello selezionato al boot.
In alternativa indicare il nome del sistema da avviare così come visto nel file /boot/grub/grub.cfg, ad esempio:
GRUB_DEFAULT=Microsoft Windows XP Home Edition (on /dev/sda1)
Per la gestione dei submenu vedere il relativo paragrafo.

GRUB_TIMEOUT=10

Imposta il numero di secondi del conto alla rovescia dopo il quale sarà caricata la voce predefinita del menù.
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.
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ù (Ubuntu, Xubuntu, Debian...)

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.
Per esempio, per avere solo lo schermo nero con i messaggi di boot, rimuovere il valore «quiet splash»; per avere uno splash screen con limitati messaggi al di sotto del logo di Ubuntu, inserire solo «splash» (l'impostazione «splash» non funziona in Ubuntu 9.10, i messaggi vengono visualizzati solo durante la fase di arresto)

#GRUB_TERMINAL=console

Togliere il commento per disabilitare il terminale grafico (solo grub-pc)

#GRUB_DISABLE_LINUX_UUID=true

Togliere il commento per disablitare 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

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 submenu contenente un kernel precedente:

Nell'immagine sono stati aggiunti i numeri in verde per facilitare il modo in cui vengono numerate le versioni.

Per rendere predefinito uno dei kernel contenuti nel submenu:

  1. Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/default/grub.

  2. Supponendo di rendere predefinito il Kernel 3.2.0-18-generic-pae è possibile modificare il parametro GRUB_DEFAULT a scelta nei seguenti modi:

    • 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"

  3. Salvare il file e chiuderlo. Qunidi digitare nel terminale:

    sudo update-grub

La directory /etc/grub.d/

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

I file vengono lanciati 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.

Ogni nuovo file creato deve essere reso eseguibile per garantirne l'inclusione in grub.cfg durante l'esecuzione del comando update-grub2.

Per rendere eseguibile il file, da riga di comando digitare:

sudo chmod u+x /etc/grub.d/NOME_FILE

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

File

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


CategoryAmministrazione CategoryDaRevisionare