CentOS / RHEL 7: modifica del kernel predefinito (avvio con vecchio kernel)

GRUB2 è il bootloader più comune per i sistemi RHEL 7. Un link simbolico al file di configurazione di GRUB2 dovrebbe essere presente in /etc/grub2.cfg . Il post descrive come cambiare il kernel predefinito in un vecchio kernel.

Conoscere il Kernel utilizzato

Con il seguente comando si può visualizzare la versione di Kernel in uso e altre informazioni:

# uname -ar
Linux testing.cyberspazio.org 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

In questo caso la versione di kernel utilizzata è il 3.10.0-514.26.2.el7.x86_64

In che modo GRUB2 seleziona il kernel da cui avviare

Per impostazione predefinita, il valore per la direttiva GRUB_DEFAULT nel  /etc/default/grub file è “saved”.

# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

Questo ordina a GRUB 2 di caricare il kernel specificato dalla direttiva saved_entry nel file di ambiente GRUB 2, che si trova in /boot/grub2/grubenv .

# cat /boot/grub2/grubenv 
# GRUB Environment Block
saved_entry=CentOS Linux (3.10.0-693.2.2.el7.x86_64) 7 (Core)

Si può impostare un altro record GRUB come predefinito, usando il comando grub2-set-default , che aggiornerà il file di ambiente GRUB 2. Per impostazione predefinita, il valore salvato_entry è impostato sul nome dell’ultimo kernel installato del kernel del tipo di pacchetto. Questo è definito in /etc/sysconfig/kernel dalle direttive UPDATEDEFAULT e DEFAULTKERNEL

# cat /etc/sysconfig/kernel
# UPDATEDEFAULT specifies if new-kernel-pkg should make
# new kernels the default
UPDATEDEFAULT=yes

# DEFAULTKERNEL specifies the default kernel package type
DEFAULTKERNEL=kernel

# MAKEDEBUG specifies if new-kernel-pkg should create non-default
# "debug" entries for new kernels.
MAKEDEBUG=yes

Cambia il kernel predefinito

Per forzare un sistema a utilizzare sempre una particolare voce di menu, utilizzare il nome della voce del menu come chiave della direttiva GRUB_DEFAULT nel file /etc/default/grub . Il seguente comando stamperà un elenco delle voci di menu presenti nella configurazione di GRUB2.

# awk -F\' /^menuentry/{print\$2} /etc/grub2.cfg
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core) with debugging
CentOS Linux (3.10.0-514.21.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.21.1.el7.x86_64) 7 (Core) with debugging
CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core) with debugging
CentOS Linux (3.10.0-327.18.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.18.2.el7.x86_64) 7 (Core) with debugging
CentOS Linux (0-rescue-31e871a0d760404d91649aecb7986bb3) 7 (Core)
CentOS Linux (0-rescue-31e871a0d760404d91649aecb7986bb3) 7 (Core) with debugging

GRUB 2 supporta l’utilizzo di un valore numerico come chiave per la direttiva saved_entry per modificare l’ordine predefinito in cui vengono caricati il ​​kernel o i sistemi operativi. Per specificare quale kernel deve essere caricato per primo, passare il suo numero al comando grub2-set-default. Gli ID vengono assegnati in modo che le voci di menu vengano visualizzate nel file /etc/grub2.cfg che inizia con 0. Quindi il kernel 3.10.0-514.21.1.el7.x86_64 ottiene un ID di (la numerazione parte dal numero 0 [zero])

# grub2-set-default 2

Questo renderà 3.10.0-514.21.1.el7.x86_64 come kernel default (era il precedente kernel del sistema)

Verifica il nuovo kernel predefinito

Controlla il file qui sotto per vedere il kernel che verrà caricato all’avvio successivo, incrocia il valore numerico con il menu entry nel file / etc / default / grub.

# cat /boot/grub2/grubenv |grep saved
saved_entry=2

Ricostruisci GRUB2

Le modifiche a / etc / default / grub richiedono la ricostruzione del file grub.cfg come segue:

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

Reboot

Una volta verificato tutto e ricostruito il file di configurazione di GRUB2, è possibile procedere con un riavvio del server affinché le modifiche abbiano effetto.

# shutdown -r now

 

Lascia un commento