Usare grubby per gestire i kernel

Utilizzare il comando grubby per gestire la configurazione di GRUB 2 nel sistema, inclusa la selezione del kernel di boot predefinito o la configurazione di parametri di boot aggiuntivi dalla riga di comando del kernel da utilizzare al boot.

Per ulteriori informazioni, consultare la pagina del manuale grubby(8).

Controllo dei kernel disponibili sul sistema

I kernel sono denominati per includere il numero di versione a monte, la build di distribuzione e la famiglia di kernel.

Per ulteriori informazioni sul contesto, vedere Informazioni sui kernel Linux.

Sono disponibili diversi metodi per verificare quali kernel sono disponibili su un sistema:

  1. Elencare i kernel nella directory /boot.
    ls -1 /boot/vmlinuz*

    Il comando produce un elenco esatto di kernel disponibili nel sistema.

  2. Utilizzare il comando grubby su kernel specifici o l'opzione ALL.
    sudo grubby --info /boot/vmlinuz-kernel-version.kernel_suffix*
    sudo grubby --info ALL

    Il comando fornisce informazioni più complete sulla configurazione di boot associata a ciascun kernel nella directory /boot del sistema. I dettagli si basano sulla configurazione del titolo di GRUB.

Confronto del kernel predefinito con il kernel in esecuzione

Il kernel in esecuzione e il kernel configurato come il kernel predefinito in cui GRUB 2 seleziona di eseguire il boot dopo un periodo di timeout per il menu di avvio possono differire.

Se la versione predefinita del kernel e la versione in esecuzione del kernel non sono identiche, i motivi sottostanti potrebbero essere uno dei seguenti:

  • È installato un kernel più recente, ma il sistema non è stato riavviato.

  • Durante un reboot del sistema, un kernel diverso è stato selezionato manualmente per essere il kernel operativo.

  • Il kernel predefinito è stato aggiornato manualmente, ma il sistema non è stato riavviato dopo l'aggiornamento.

Per confrontare il kernel configurato predefinito con il kernel in esecuzione, effettuare le operazioni riportate di seguito.
  1. Controllare il kernel predefinito configurato in GRUB 2.

    Per verificare quale kernel è già configurato come kernel predefinito corrente da utilizzare al boot, eseguire:

    sudo grubby --default-kernel
  2. Controllare la versione del kernel in esecuzione.

    Per verificare il kernel in esecuzione in un sistema, eseguire le operazioni riportate di seguito.

    uname -r

Modifica del kernel predefinito

Utilizzare grubby per impostare il kernel predefinito in cui si esegue il boot di GRUB2 dopo il raggiungimento di un periodo di timeout durante la visualizzazione del menu di avvio di GRUB2.

È possibile modificare il kernel predefinito da RHCK a UEK, da UEK a RHCK o passare a una versione specifica del kernel.

È possibile seguire una delle due opzioni per impostare il kernel predefinito in GRUB 2, utilizzando il comando grubby, effettuare una delle seguenti operazioni:

  1. Utilizzare il comando grubby --set-default per impostare il kernel predefinito.

    Per passare a un kernel predefinito diverso, eseguire il comando seguente assicurandosi di specificare il percorso completo del kernel predefinito selezionato:

    sudo grubby --set-default /boot/vmlinuz-kernel-version.kernel-suffix.arch

    Sostituire kernel-version e kernel_suffix con i valori corrispondenti al kernel di destinazione. Ad esempio, eseguire:

    sudo grubby --set-default /boot/vmlinuz-6.12.0-100.28.2.el10uek.x86_64

    La modifica viene applicata immediatamente e persiste durante il reboot del sistema.

  2. Utilizzare il comando grubby --set-default-index per impostare il kernel predefinito in modo che corrisponda al kernel in un determinato punto di indice nell'elenco di boot del kernel. I valori di indice vengono visualizzati quando si esegue il comando grubby --info

    Ad esempio, è possibile utilizzare l'opzione --set-default-index=0 per impostare il kernel predefinito sul primo kernel elencato nell'indice di boot del kernel eseguendo:

    sudo grubby --set-default-index=0

Passa al kernel RHCK o UEK più recente disponibile

Utilizzando la convenzione di denominazione per identificare i kernel UEK e i kernel RHCK disponibili nella directory /boot, è possibile cambiare facilmente il kernel predefinito per utilizzare la versione più recente di entrambi i tipi di kernel.

  • Per passare alla versione più recente di UEK sul sistema, eseguire:
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep 'uek' | sort -V | tail -1)
  • Per passare alla versione più recente di RHCK sul sistema, eseguire:
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep -v 'uek' | sort -V | tail -1)

Effettuare il reboot del sistema dopo aver impostato il kernel predefinito per passare a quel tipo di kernel.

Modifica dei parametri di boot della riga di comando del kernel

A volte può essere necessario modificare la configurazione di GRUB 2 per specificare determinati parametri di boot del kernel nella riga di comando del kernel. L'impostazione dei parametri nella configurazione di GRUB 2 significa che i parametri vengono utilizzati per i kernel interessati ad ogni boot.

È possibile aggiornare la configurazione di boot di GRUB 2 per un kernel specifico o per tutti i kernel installati nel sistema effettuando le operazioni riportate di seguito.

  1. Utilizzare il comando grubby --update-kernel per aggiornare una voce kernel con --args per aggiungere nuovi argomenti o per modificare i valori degli argomenti esistenti oppure --remove-args per rimuovere gli argomenti esistenti.

    È possibile specificare diversi argomenti per ogni opzione in un elenco separato da spazi tra virgolette. È possibile aggiungere e rimuovere argomenti nella stessa operazione. Quando si utilizza l'opzione --args, se un argomento esiste già, il nuovo valore sostituisce i vecchi valori.

    Per aggiornare un kernel specifico, eseguire il comando grubby --update-kernel con il percorso completo del kernel che si desidera aggiornare. Per aggiornare tutte le voci del kernel per utilizzare uno specifico argomento di boot del kernel, è possibile utilizzare grubby --update-kernel=ALL.

    Ad esempio, è possibile aggiornare tutte le voci del kernel per modificare gli argomenti loglevel e LANG:

    sudo grubby --update-kernel=ALL --args "loglevel=3,LANG=en_GB.UTF-8"

    Per ulteriori informazioni sui parametri del kernel, vedere Informazioni di riferimento sui parametri del boot kernel.

  2. Verificare che le modifiche siano state applicate e che gli argomenti della riga di comando siano corretti per il kernel aggiornato.

    Ad esempio, se è stata apportata una modifica a tutti i kernel, utilizzare il comando grubby --info ALL per verificare che la modifica sia implementata in tutti i kernel:

    sudo grubby --info ALL

Controllo dell'ultima riga di comando del kernel utilizzata per eseguire il boot del sistema

I parametri di boot del kernel utilizzati per l'ultima volta per il boot di un sistema vengono registrati in /proc/cmdline.

Per ulteriori informazioni, vedere la pagina del manuale kernel-command-line(7).

Controllare il contenuto di /proc/cmdline per visualizzare la riga di comando del kernel utilizzata per avviare il sistema in esecuzione.
cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.15.0-208.159.3.2.el9uek.x86_64 
root=UUID=72dfa724-5feb-49e2-8869-40625bfebb01 ro 
resume=UUID=13078314-ebff-4c44-b18c-3445f6802198 
rd.luks.uuid=luks-a80f8f10-75b6-45de-b63e-64b8b6a3a94b 
rhgb quiet crashkernel=1G-64G:448M,64G-:512M