Aggiornamento del kernel CentOS all'ultima versione
Questa guida spiega come installare un kernel più recente su CentOS 7 utilizzando il repository ELRepo.
ELRepo ha interrotto il supporto per el7 a luglio 2024. La procedura descritta in questa guida non funziona più. Questa guida viene conservata come materiale d’archivio.
Se stai ancora utilizzando CentOS 7, valuta la possibilità di migrare ad AlmaLinux 8 utilizzando lo strumento Elevate.
Scegliere una variante del kernel
ELRepo fornisce due varianti del kernel:
kernel-ml installa il kernel mainline, che segue le versioni Linux upstream più recenti. Riceve rapidamente nuove funzionalità e miglioramenti, ma può introdurre problemi di compatibilità con i driver o con i carichi di lavoro di produzione.
kernel-lt installa un kernel con supporto a lungo termine, che privilegia la stabilità rispetto alle nuove funzionalità. Questa è l’opzione consigliata per i server di produzione.
Aggiornare il sistema e installare ELRepo
Aggiorna i pacchetti installati:
yum -y update
Importa la chiave GPG di ELRepo e installa il repository:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
Verifica che il repository sia stato aggiunto correttamente:
yum repolist | grep elrepo
Pulisci la cache di yum:
yum clean all
Installare il nuovo kernel
Per installare il kernel con supporto a lungo termine (consigliato per gli ambienti di produzione):
yum --enablerepo=elrepo-kernel install kernel-lt kernel-lt-headers kernel-lt-tools kernel-lt-tools-libs
Per installare invece il kernel mainline:
yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-headers kernel-ml-tools kernel-ml-tools-libs
Verifica che i pacchetti del kernel siano stati installati:
rpm -qa | grep '^kernel-'
Impostare il nuovo kernel come predefinito
Elenca tutti i kernel installati insieme al relativo ordine di avvio:
grubby --info=ALL | grep -E 'title|kernel'
Al kernel più recente viene normalmente assegnato l'indice 0, ma verifica l'ordine prima di impostarlo come predefinito. Imposta il kernel predefinito tramite l'indice:
grubby --set-default=0
Oppure, per maggiore affidabilità, tramite il percorso completo del kernel:
grubby --set-default /boot/vmlinuz-<version>
Sostituisci <version> con la stringa della versione effettiva mostrata nell'output di grubby --info=ALL.
Verifica il kernel predefinito:
grubby --default-kernel grub2-editenv list
Se Secure Boot è abilitato nel BIOS/UEFI, i kernel di terze parti provenienti da ELRepo potrebbero non avviarsi. Disabilita Secure Boot prima di riavviare.
Riavviare e verificare
Riavvia il server:
reboot
Dopo il riavvio del sistema, verifica la versione del kernel in esecuzione:
uname -r
Rimuovere i kernel obsoleti
Una volta verificato che il nuovo kernel funziona correttamente, rimuovi le versioni precedenti per liberare spazio su disco. L'opzione --count=2 mantiene i due kernel più recenti come alternativa di emergenza:
yum install -y yum-utils package-cleanup --oldkernels --count=2
Ripristino di emergenza
Se il nuovo kernel non si avvia, seleziona il kernel precedente dal menu GRUB durante l'avvio. Dopo aver avviato il sistema con il vecchio kernel, impostalo nuovamente come predefinito:
grubby --set-default=1 reboot
Sostituisci 1 con l'indice del kernel funzionante indicato nell'output di grubby --info=ALL.