Gestione boot Fedora

Raccogliamo in questa guida diverse opzioni per configurare GRUB 2, il bootloader installato da Fedora.

1. Aggiornare GRUB 2

GRUB 2 è il bootloader che viene installato in automatico da anaconda per lanciare Fedora e altri sistemi operativi all’accensione della macchina: solitamente non c’è bisogno di modificarlo, in quanto ad ogni installazione di un nuovo kernel viene aggiornato automaticamente con le istruzioni per lanciare Fedora tramite il nuovo kernel.
Per alcuni utenti può essere invece necessario mettere mano a GRUB, ad es. per modificare i parametri di boot dopo l’installazione di certi drivers, oppure dopo aver modificato il timeout in /etc/default/grub.

Fedora 34 e superiori

Con l’uscita di Fedora 34 la configurazione di GRUB 2 è stata unificata tra BIOS e UEFI, e si utilizza un solo percorso. L’unico comando da dare per entrambi i sistemi di boot sarà:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Fedora 33 e precedenti

Per le versioni di Fedora 33 e inferiori invece si usano due percorsi differenti a seconda della tipologia di interfaccia all’hardware.

Per sistemi UEFI

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Per sistemi legacy

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

2. Modificare temporaneamente i parametri del kernel

Per modificare temporaneamente i parametri di avvio di Fedora, ad es. per testare alcuni driver senza dover creare una configurazione separata, accendere il computer e far caricare il menù del bootloader di GRUB 2; selezionare la riga desiderata, e premere il tasto E per modificarla; spostarsi alla riga che inizia con linux, e adattarla ai propri bisogni.
Una volta completate le modifiche premere CTRL e X per avviare il sistema con questa configurazione temporanea.

3. Modificare permanentemente i parametri di avvio del kernel

Da Fedora 30 in poi, viene usato BootLoader Spec per la gestione dei vari kernel installati, a cui ci possiamo interfacciare tramite l’utility grubby.
Ad esempio per impostare il parametro foo al valore bar usare:

sudo grubby --update-kernel=ALL --args="foo=bar"

Per rimuovere completamente l’argomento foo=bar invece:

sudo grubby --update-kernel=ALL --remove-args="foo=bar"

4. Impostare un parametro predefinito da passare a tutti i futuri kernel

Tramite grubby possiamo modificare solo i kernel attualmente installati, ma ciò non avrà alcun effetto sui kernel installati in futuro, che useranno la configurazione di default. Per modificare la configurazione di default bisogna modificare il file /etc/default/grub, ad es. con nano:

sudo nano /etc/default/grub

E cercare la stringa che inizia con GRUB_CMDLINE_LINUX=, che va quindi modificata aggiungendo/modificando/cancellando i parametri come desiderato.
Infine aggiornare GRUB 2 come mostrato precedentemente.

5. Determinare i parametri usati per il kernel corrente

cat /proc/cmdline

6. Determinare i moduli del kernel attualmente caricati

Con il comando lsmod possiamo visualizzare tutti i moduli del kernel attualmente caricati:

lsmod

Usando lspci mostreremo i moduli utilizzati dai vari dispositivi connessi al computer:

lspci -nnk

7. Elencare i parametri opzionali supportati da uno specifico modulo

Per ottenere maggiori informazioni sui parametri supportati dal modulo foo, utilizzare:

modinfo foo

8. Determinare quale sistema operativo avviare tramite UEFI

Il comando efibootmgr restituisce l’ordine di boot e la lista dei sistemi operativi e dei dispositivi da cui fare il boot; ad es:

sudo efibootmgr

BootCurrent: 000E
Timeout: 1 seconds

BootOrder: 000E,0000,0008,000A,000B
Boot0000* Fedora
Boot0008* Hard Drive
Boot000A* CD/DVD Drive
Boot000B* Fedora
Boot000E* Ubuntu

9. Modificare l’ordine di avvio in UEFI Boot

Usare efibootmgr per visualizzare l’ordine corrente, quindi aggiungere -o per poter specificare il nuovo ordine desiderato.
Usando l’esempio sopra e volendo mettere Ubuntu come seconda scelta al boot, dopo Fedora ma prima del boot da disco, del boot da lettore CD/DVD e prima dell’ulteriore entry per Fedora, usare:

sudo efibootmgr -o 0000,000E,0008,000A,000B

10. Per rimuovere una voce dal menu di avvio UEFI

Controllare prima di tutto l’ordine corrente sul proprio sistema tramite il comando efibootmgr.
Rispetto all’esempio di sopra, per rimuovere la voce con indice 000E basta dare:

sudo efibootmgr -b 000E -B
1 Mi Piace