## page was renamed from Grub2/FileCartelle #format wiki #language it <> <> <
> <> = Introduzione = 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'''.<
> 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 = {{{#!wiki important 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 [[AmministrazioneSistema/Terminale|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 [[AmministrazioneSistema/PriveDiAmministrazione/Sudo|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''' ||<: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'''.<
>È anche possibile utilizzare l'opzione in questo modo: <
>'''GRUB_DEFAULT=saved'''<
>In questo caso l'ultimo sistema avviato sarà quello selezionato al boot. Questa opzione va usata assieme a '''GRUB_SAVEDEFAULT=true'''<
> 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 [[#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ù.<
>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 '''Esc''' nei sistemi con UEFI o '''Maiusc''' su BIOS.<
>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''' || ||GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"||Il valore di questa impostazione viene inserito alla fine della riga '''linux''' solo con il boot normale. .<
>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_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. 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/default/grub`. 0. 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 }}} 0. Salvare e chiudere il file. 0. Per rendere le impostazioni definitive digitare nel [[AmministrazioneSistema/Terminale|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"`. 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 }}} <> = 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. {{{#!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'''. }}} Segue una tabella esplicativa dei principali file di `/etc/grub.d/`. ||'''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 CategoryDaRevisionare