|
Dimensione: 14448
Commento:
|
← Versione 100 del 28/11/2025 19.38.47 ⇥
Dimensione: 15808
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 5: | Linea 5: |
| <<Indice(depth=2)>> | <<Indice(depth=1)>> |
| Linea 11: | Linea 11: |
| Questa guida illustra i contenuti basilari dei file di configurazione del [[https://it.wikipedia.org/wiki/Boot_loader|bootloader]] [[AmministrazioneSistema/Grub|Grub]]. = File e cartelle = I file necessari al funzionamento di '''Grub''' risiedono nella directory `/boot/grub` in cui `grub.cfg` rappresenta il file principale ed è generato in modo automatico da diversi script attraverso il comando '''update-grub'''.<<BR>> |
I file necessari al funzionamento del [[https://it.wikipedia.org/wiki/Boot_loader|bootloader]] [[AmministrazioneSistema/Grub|Grub]] risiedono nella directory `/boot/grub` in cui `grub.cfg` rappresenta il file principale ed è generato in modo automatico da diversi script attraverso il comando '''update-grub'''.<<BR>> |
| Linea 22: | Linea 18: |
| == File /boot/grub/grub.cfg == | = File /boot/grub/grub.cfg = |
| Linea 128: | Linea 124: |
| == File /etc/default/grub == | = File /etc/default/grub = |
| Linea 178: | Linea 174: |
| === Opzioni === | == Opzioni == |
| Linea 196: | Linea 192: |
| == Esempio di update-grub == | = Esempio di update-grub = |
| Linea 220: | Linea 216: |
| <<Anchor(sottomenù)>> == Sistema predefinito all'avvio == |
= Sistema predefinito all'avvio = |
| Linea 245: | Linea 240: |
| <<Anchor(sottomenù)>> == Sottomenù == Nel '''grub menù''' si notano alcune righe indicate come '''Advanced option''' che permetterà di avviare il sistema con un kernel Linux alternativo ed eventualmente acceder in modalità ''recovery mode''. Nell'esempio riportato prima in figura, elezionando seconda riga '''Advanced options for Ubuntu''' appare: <<Immagine(./advanced_option.png,500,center)>> In figura sono stati riportati i numeri riga perchè torneranno nuovamente comodi per impostare un kernel alternativo per il sistema predefinito all'avvio.<<BR>> In questo esempio si suppone che al posto del kernel '''6.14.0-36''' ci sia la necessità di avviare la versione precedente '''6.14.0-35''' e la riga corrispondente è la '''riga 2'''. Ricapitolando: * nel '''grub menù''' interessa la '''riga 1''' per selezionare le opzioni avanzate; * nel menù delle opzioni avanzate interessa la '''riga 2''' per selezionare il kernel. Nel file `/etc/default/grub` alla voce `GRUB_DEFAULT` le righe saranno inserite seguendo la sintassi `"1>2"`. 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/default/grub`. 0. Impostare la voce '''GRUB_DEFAULT''' nel seguente modo:{{{ GRUB_DEFAULT="1>2" }}} 0. Salvare e chiudere il file. 0. Per rendere le impostazioni definitive digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ sudo update-grub }}} |
|
| Linea 246: | Linea 263: |
| == Directory /etc/grub.d/ == | = Directory /etc/grub.d/ = |
Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento. |
Guida verificata con Ubuntu: 22.04 24.04 25.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
I file necessari al funzionamento del bootloader Grub risiedono nella directory /boot/grub in cui grub.cfg rappresenta il file principale ed è generato in modo automatico da diversi script attraverso il comando update-grub.
I file responsabili del contenuto di grub.cfg sono:
/etc/default/grub;
gli script presenti nella directory /etc/grub.d/;
file con estensione .mod presenti in /boot/grub.
File /boot/grub/grub.cfg
Il file grub.cfg NON va assolutamente modificato. Viene generato e aggiornato in modo automatico.
Per generare e aggiornare automaticamente il file grub.cfg, digitare nel terminale:
sudo update-grub
Il file grub.cfg è diviso in diverse sezioni, ognuna delimitata dalle righedi intestazione BEGIN ed END:
### BEGIN /etc/grub.d/nomefile ### ... ### 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.
In modo predefinito grub.cfg non è direttamente modificabile. Eventuali modifiche avvengono su altri file, il comando update-grub andrà ad aggiornare in modo automatico il file grub.cfg.
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 ###
File /etc/default/grub
Questo file contiene impostazioni che incidono sull'aspetto del menù del programma. Può essere modificato con i privilegi di amministrazione per modificare le impostazioni che verranno rese permanenti grub.cfg solo dopo aver dato il comando:
sudo update-grub
Segue un esempio di file /etc/default/grub:
# If you change this file or any /etc/default/grub.d/*.cfg file,
# run 'update-grub' afterwards to update /boot/grub/grub.cfg.
# For full documentation of the options in these files, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`( . /etc/os-release && echo ${NAME} )`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
#GRUB_DISABLE_OS_PROBER=false
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE/GOP/UGA
# you can see them in real GRUB with the command `videoinfo'
#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_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
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. |
GRUB_TIMEOUT=10 |
Imposta il numero di secondi del conto alla rovescia dopo il quale sarà caricata la voce predefinita del menù. |
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 Esc nei sistemi con UEFI o Maiusc su BIOS. |
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. |
GRUB_CMDLINE_LINUX="" |
Se esiste, questa impostazione inserisce delle opzioni alla fine della riga linux |
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" |
Il valore di questa impostazione viene inserito alla fine della riga linux solo con il boot normale. . |
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. |
#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_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 e OSX. |
Esempio di update-grub
Qui viene mostrato un esempio di output del comando sudo update-grub:
Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/kdump-tools.cfg' Generating grub configuration file ... Found background image: puffin-n3.png Found linux image: /boot/vmlinuz-6.17.0-5-generic Found initrd image: /boot/initrd.img-6.17.0-5-generic Found memtest86+ 64bit EFI image: /boot/mt86+x64 Found memtest86+ 32bit EFI image: /boot/mt86+ia32 Found memtest86+ 64bit image: /boot/mt86+x64 Found memtest86+ 32bit image: /boot/mt86+ia32 Warning: os-prober will be executed to detect other bootable partitions. Its output will be used to detect bootable binaries on them and create new boot entries. Found Ubuntu 24.04.3 LTS (24.04) on /dev/nvme0n1p2 Found Ubuntu 25.10 (25.10) on /dev/nvme0n1p5 Found Ubuntu 25.04 (25.04) on /dev/nvme0n1p8 Found Debian GNU/Linux forky/sid on /dev/sda4 Found Fedora Linux 43 (Workstation Edition) on /dev/sdb2 Adding boot menu entry for UEFI Firmware Settings ... done
Si può notare come il comando vada a intercettare la presenza di altri sistemi operativi che saranno elencati nel menù di avvio.
Sistema predefinito all'avvio
In figura viene riportata la schermata di avvio di Grub, nella quale sono presenti:
Ubuntu (sistema predefinito all'avvio)
Windows
Ubuntu 25.10
Sono stati riportati dei numeri in giallo perchè al fine di impostare il sistema predefinito all'avvio sul file /etc/default/grub, è necessario sapere su quale riga si trova, contando da zero e partendo dall'alto.
Si suppone di voler impostare come sistema predefinito Ubuntu 25.10, cioè il sistema che nel menù appare sulla riga 5.
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/default/grub.
Alla voce GRUB_DEFAULT, solitamente impostata su zero:
GRUB_DEFAULT=0
impostare il numero riga di Ubuntu 25.10 individuato in precedenza, cioè 5:
GRUB_DEFAULT=5
- Salvare e chiudere il file.
Per rendere le impostazioni definitive digitare nel terminale:
sudo update-grub
Sottomenù
Nel grub menù si notano alcune righe indicate come Advanced option che permetterà di avviare il sistema con un kernel Linux alternativo ed eventualmente acceder in modalità recovery mode. Nell'esempio riportato prima in figura, elezionando seconda riga Advanced options for Ubuntu appare:
In figura sono stati riportati i numeri riga perchè torneranno nuovamente comodi per impostare un kernel alternativo per il sistema predefinito all'avvio.
In questo esempio si suppone che al posto del kernel 6.14.0-36 ci sia la necessità di avviare la versione precedente 6.14.0-35 e la riga corrispondente è la riga 2. Ricapitolando:
nel grub menù interessa la riga 1 per selezionare le opzioni avanzate;
nel menù delle opzioni avanzate interessa la riga 2 per selezionare il kernel.
Nel file /etc/default/grub alla voce GRUB_DEFAULT le righe saranno inserite seguendo la sintassi "1>2".
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/default/grub.
Impostare la voce GRUB_DEFAULT nel seguente modo:
GRUB_DEFAULT="1>2"
- Salvare e chiudere il file.
Per rendere le impostazioni definitive digitare nel terminale:
sudo update-grub
Directory /etc/grub.d/
I file presenti in questa directory sono letti durante l'esecuzione del comando update-grub. 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.
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ù. |


