Устанавливаем актуальную версию ядра в CentOS 7.

Добавляем репозиторий elrepo-kernel из elrepo-release:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Включаем репозиторий elrepo-kernel:

yum install -y yum-utils
yum-config-manager --enable elrepo-kernel

Установка (какая сейчас актуальная версия смотреть тут https://www.kernel.org/)

Перед установкой важно понимать следующее:

Нет необходимости устанавливать пакет kernel-lt-firmware или kernel-ml-firmware. В дистрибутивном пакете linux-firmware содержится больше файлов прошивки, чем в пакете kernel-lt-firmware или kernel-ml-firmware.

Нет необходимости устанавливать пакет kernel-lt-headers или kernel-ml-headers. Это необходимо, только если вы собираетесь пересобрать glibc и следовательно, всю операционную систему. Если необходимо, чтобы заголовки ядра были установлены, вы должны использовать текущий пакет kernel-headers из вашего дистрибутива, поскольку это связано с текущей версией glibc.

Текущая стабильная (latest stable mainline kernel) версия ядра:

yum install -y kernel-ml

LTS (Long Term Support) версия ядра (предпочтительнее):

yum install -y kernel-lt

Автозагрузка нового ядра

Необходимо убедиться в том, что новая версия ядра установлена и добавлена в загрузчик:

awk -F"'|\"" '/^menuentry/&&/elrepo/{print $2}' /boot/grub2/grub.cfg

Должно получиться примерно следующее:

CentOS Linux (4.4.70-1.el7.elrepo.x86_64) 7 (Core)

На всякий случай проверим какое ядро загружется по умолчанию, для этого проверим каким образом grub выбирает ядро для загруки:

grep GRUB_DEFAULT /etc/default/grub

Должно быть: GRUB_DEFAULT=saved, если отличается, приводим к этому виду. Это означает, что будет загружена последняя сохраненная версия.

Узнать какая версия ядра была загружена последней можно при помощи следующей команды:

grub2-editenv list

В ответ получим примерно следующее:

saved_entry=CentOS Linux (3.10.0-514.21.1.el7.x86_64) 7 (Core)

В моем случае грузится старое 3.10.

Изменим загружаемое по умолчанию ядро на свеже-установленное (которое получали при помощи awk):

grub2-set-default 'CentOS Linux (4.4.70-1.el7.elrepo.x86_64) 7 (Core)'

Убедимся, что grub выберет правильную версию ядра загружаемого по умолчанию:

grub2-editenv list

В моем случае я получил то, что написал в grub2-set-default:

saved_entry=CentOS Linux (4.4.70-1.el7.elrepo.x86_64) 7 (Core)

Сохраняем новую конфигурацию загрузчика:

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

Если ошибок небыло, то перезагружаем систему:

reboot

После того, как система перезагрузилась можно проверить текущую версию ядра:

uname -r

Если в ответ получим 4.4.70-1.el7.elrepo.x86_64, значит все сделано верно.


Ссылки по теме:

  1. 8.4.5. Adding, Enabling, and Disabling a Yum Repository
  2. The Community Enterprise Linux Repository
  3. The Linux Kernel Archives