Guida verificata con Ubuntu: 20.04 22.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa guida spiega come risolvere alcuni problemi noti che possono verificarsi con Grub.
Grub non viene visualizzato
La seguente procedura si applica nei casi in cui Ubuntu è l'unico sistema operativo installato nel computer. Nel caso invece siano presenti altri sistemi operativi consultare le possibili soluzioni nei paragrafi successivi.
Quando Ubuntu è l'unico sistema installato, il menù di avvio di Grub è nascosto per impostazione predefinita.
Per visualizzarlo una tantum è sufficiente premere, prima del caricamento del sistema, il tasto Esc su sistemi Uefi oppure Shift (Maiusc) su sistemi legacy BIOS.
Se invece si desidera visualizzare il menù di Grub ad ogni avvio attenersi alla seguente procedura:
Aprire il file /etc/default/grub con un editor di testo e i con privilegi di amministrazione.
Assegnare il valore menu alla voce GRUB_TIMEOUT_STYLE:
GRUB_TIMEOUT_STYLE=menu
Specificare un valore espresso in secondi per la voce GRUB_TIMEOUT, ad esempio 10:
GRUB_TIMEOUT=10
- Salvare e chiudere il file.
Aggiornare la configurazione di Grub digitando nel terminale il seguente comando:
sudo update-grub
Messaggio: «error: no such partition grub rescue»
Questo messaggio di errore potrebbe essere causato da un'errata configurazione di Grub oppure potrebbe indicare che quest'ultimo è stato corrotto. In tal caso procedere al ripristino come descritto in questa guida.
Messaggio: «error: sparse file not allowed»
Per risolvere il problema consultare questa guida.
Viene avviato un altro sistema operativo
Nei sistemi Uefi l'avvio dei sistemi operativi è gestito dal firmware della scheda madre. Normalmente Ubuntu viene impostato come primo sistema operativo durante l'installazione.
Può accadere però che il firmware della scheda madre non recepisca questa impostazione e quindi continui ad avviare un altro sistema operativo, senza visualizzare il menù di Grub.
Per correggere questo comportamento procedere come segue:
Avviare il computer con un supporto di installazione (Live USB o DVD) di Ubuntu 64 bit in modalità UEFI.
Scegliere Prova Ubuntu o Try Ubuntu without installing.
Una volta caricato il desktop, accertarsi che la sessione live sia stata avviata in modalità UEFI digitando nel terminale il seguente comando:
mount | grep efivarfs
Se la sessione live è stata correttamente avviata in modalità UEFI, l'output sarà simile al seguente:
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
In assenza di output o se vengono restituiti messaggi di errore, riavviare il computer accertandosi di avviare il supporto di installazione in modalità UEFI.
Verificare l'ordine di avvio digitando nel terminale il seguente comando:
efibootmgr
L'output sarà simile al seguente:
BootCurrent: 0000 Timeout: 10 seconds BootOrder: 0000,0001,0002 Boot0000* Windows Boot Manager Boot0001* ubuntu Boot0002* HDD
Identificare la voce di boot che fa riferimento a Ubuntu. In questo esempio è la 0001.
Modificare l'ordine di boot in modo che Ubuntu si trovi al primo posto. In questo esempio l'ordine sarà dunque 0001,0002,0000. Per applicarlo digitare nel terminale il seguente comando:
sudo efibootmgr -o 0001,0002,0000
Se questa procedura non dovesse avere effetto, sarà necessario modificare l'ordine di avvio nelle impostazioni del firmware della scheda madre. A tal fine consultare il manuale della scheda o del computer.
Viene avviato Ubuntu senza poter scegliere un altro sistema
Ubuntu 22.04
Con Ubuntu 22.04 potrebbe accadere che vengano nascoste nel menù di Grub le voci relativi all'avvio di altri sistemi operativi , se presenti. Questo problema è causato dal bug #1955109 , con la mancata esecuzione del programma Os-Prober. Per risolvere seguire la seguente procedura:
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/default/grub.
Aggiungere una riga contenente il seguente testo:
GRUB_DISABLE_OS_PROBER=false
- Salvare e chiudere l'editor.
Aggiornare le impostazioni di Grub digitando nel terminale il comando:
sudo update-grub
- Al termine riavviare il sistema.
Qualora il problema non venga risolto, tentare la soluzione per Ubuntu 20.04, esposta nel paragrafo successivo
Ubuntu 20.04
Su alcune configurazioni hardware con Ubuntu 20.04 e successivi in modalità Uefi, può accadere che il menu di Grub non venga visualizzato, nonostante siano installati più sistemi operativi correttamente riconosciuti da Grub. Ciò può accadere a causa del Bug #1863434.
Si raccomanda innanzitutto di eseguire un aggiornamento del firmware della scheda madre o del computer (consultare a tale scopo la manualistica fornita dal produttore). In molti casi tale operazione potrebbe risolvere il problema.
Qualora il problema non venga risolto adottare una delle soluzioni proposte di seguito.
Procedura con Secure Boot attivo
La procedura che segue consente di visualizzare il menu di Grub mantenendo Secure Boot attivo.
Adottando questa soluzione non sarà possibile utilizzare i temi grafici di Grub.
Aprire il file /etc/default/grub con un editor di testo e con privilegi di amministrazione.
Rimuovere il cancelletto all'inizio della riga #GRUB_TERMINAL=console:
GRUB_TERMINAL=console
- Salvare le modifiche e chiudere l'editor di testo.
Aggiornare la configurazione di Grub digitando nel terminale il seguente comando::
sudo update-grub
Procedura con Secure Boot disattivato
La procedura che segue consente di visualizzare il menu di Grub anche con un eventuale tema grafico. Tuttavia sarà necessario disabilitare Secure Boot.
Se era stata già adottata la procedura precedente, ripristinare la riga #GRUB_TERMINAL=console nel file /etc/default/grub (passaggi 1 e 2).
- Disattivare il Secure Boot nelle impostazioni del firmware (per maggiori informazioni consultare il manuale della scheda madre o del computer).
Verificare l'ordine di avvio digitando nel terminale il seguente comando:
efibootmgr -v
L'output sarà simile al seguente:
BootCurrent: 0001 Timeout: 10 seconds BootOrder: 0001,0000,0002 Boot0000* Windows Boot Manager HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,xxxxxxx,xxxxxxx)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC Boot0001* ubuntu HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,xxxxxxx,xxxxxxx)/File(\EFI\ubuntu\shimx64.efi) Boot0002 HDD: HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,xxxxxxx,xxxxxxx)/File(\EFI\ubuntu\grubx64.efi)RC
Identificare la voce di boot che fa riferimento al file grubx64.efi. In questo esempio è la 0002.
Modificare l'ordine di boot in modo che grubx64.efi si trovi al primo posto. In questo esempio l'ordine sarà dunque 0002,0001,0000. Per applicarlo digitare nel terminale il seguente comando:
sudo efibootmgr -o 0002,0001,0000