Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida illustra i contenuti basilari dei file di configurazione del bootloader 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.
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 file principale di Grub 2 che sostituisce il file menu.lst di Grub Legacy.

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

Per generare e aggiornare automaticamente il file grub.cfg, digitare nel terminale e coi 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.
Questo viene fatto affinché 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:

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

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 sottomenù 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ù, in caso di mancata identificazione predefinisce a Debian.
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.
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.
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

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:

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ù:

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

  2. 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"

  3. Salvare e chiudere il file.
  4. Aggiornare il file /boot/grub/grub.cfg digitando nel terminale il comando:

    sudo update-grub

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.

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

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

AmministrazioneSistema/Grub/FileCartelle (l'ultima modifica è del 23/11/2023 01.25.56, fatta da jeremie2)