Centos 8. Обновленние ядра до последней версии
Всем привет.
В этой статье мы обновим ядро до самой новой версии. На момент написания статьи самая новая версия ядра Тем не менее по этой статье вы всегда сможете обновиться на более новое ядро, если оно появится.

Темы, которые коснемся в этой статье:
В настоящее время многие ядра Linux имеют версию 5.x, поэтому необходимо его обновить.
Импортируйте открытый ключ из репозитория ELRepo:
Установите ELRepo:
Посмотрите доступные ядра:
Выполните:
В будущем вам не понадобится выполнять шаг №5. Вы можете использовать этот шаг, чтобы указать разные номера и соответственно установить разные версии ядра для загрузки.
Выполните:
Выполните:
Убедитесь, что старая версия ядра удалена.
Выполните:
Также можно установить инструмент yum utils. Если в системе установлено более трех ядер, старая версия ядра будет автоматически удалена.
В этой статье мы обновим ядро до самой новой версии. На момент написания статьи самая новая версия ядра Тем не менее по этой статье вы всегда сможете обновиться на более новое ядро, если оно появится.

Темы, которые коснемся в этой статье:
- Что такое kernel-ml;
- Узнать текущую версию ядра;
- Использование ELRepo;
- Установка последнего ядра;
- Настройка загрузки с новым ядром;
- Создание файла конфигурации grub и перезапуск системы;
- Проверка нового ядра;
- Проверка установленного ядро в системе;
- Удаление старого ядра.
1. Что такое kernel-ml?
Пакеты kernel-ml собираются из исходных текстов, доступных в ветке "mainline stable" архивов ядра Linux. Конфигурация ядра основана на конфигурации RHEL по умолчанию с включенной при необходимости дополнительной функциональностью. Пакеты намеренно названы kernel-ml, чтобы не конфликтовать с ядрами RHEL, и поэтому их можно устанавливать и обновлять вместе с обычным ядром. Нет необходимости устанавливать пакет kernel-ml-headers. Это необходимо только в том случае, если вы собираетесь пересобрать glibc и, следовательно, всю операционную систему. Если есть необходимость установить kernel-ml-headers, вы должны использовать текущий распределенный пакет kernel-headers, так как он связан с текущей версией glibc.2. Узнать текущую версию ядра
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)Чтобы просмотреть текущую версию ядра системы:$ uname -r
4.18.0-193.6.3.el8_2.x86_64В настоящее время многие ядра Linux имеют версию 5.x, поэтому необходимо его обновить.
3. Использование ELRepo
Здесь мы используем репозиторий ELRepo, который является репозиторием сообщества для Enterprise Linux, обеспечивающим поддержку RedHat Enterprise (RHEL) и других дистрибутивов Linux на основе RHEL (CentOS, Scientific, Fedora и т.д.). ELRepo специализируется на программных пакетах, связанных с оборудованием, включая драйверы файловой системы, драйверы видеокарт, сетевые драйверы, драйверы звуковой карты и драйверы камеры. Сайт: http://elrepo.org/tiki/tiki-index.phpИмпортируйте открытый ключ из репозитория ELRepo:
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgУстановите ELRepo:
$ yum install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpmПосмотрите доступные ядра:
$ yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Last metadata expiration check: 23:59:03 ago on Fri 12 Mar 2021 10:45:41 AM MSK.
Available Packages
bpftool.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
kernel-lt.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-core.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-modules.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-modules-extra.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.105-1.el8.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.11.6-1.el8.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
kernel-ml-modules-extra.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
perf.x86_64 5.11.6-1.el8.elrepo elrepo-kernel
python3-perf.x86_64 5.11.6-1.el8.elrepo elrepo-kernel4. Установка последнего ядра
$ yum --enablerepo=elrepo-kernel install kernel-ml5. Настройка загрузки с новым ядром
Цифра 0 - это последнее установленное ядро, а установка его на 0 означает загрузку с новой версией ядра.Выполните:
$ grub2-set-default 0В будущем вам не понадобится выполнять шаг №5. Вы можете использовать этот шаг, чтобы указать разные номера и соответственно установить разные версии ядра для загрузки.
6. Создание файла конфигурации grub и перезапуск системы
$ grub2-mkconfig -o /boot/grub2/grub.cfg
$ reboot7. Проверка нового ядра
$ uname -r
5.11.6-1.el8.elrepo.x86_648. Проверка установленного ядра в системе
Как видите, здесь установлены две версии ядра: v4.18.0-240.10.1 и 5.11.6-1.Выполните:
$ rpm -qa | grep kernel
kernel-modules-4.18.0-240.10.1.el8_3.x86_64
kernel-tools-libs-4.18.0-240.10.1.el8_3.x86_64
kernel-tools-4.18.0-240.10.1.el8_3.x86_64
kernel-core-4.18.0-240.10.1.el8_3.x86_64
kernel-headers-4.18.0-240.10.1.el8_3.x86_64
kernel-devel-4.18.0-240.10.1.el8_3.x86_64
kernel-ml-core-5.11.6-1.el8.elrepo.x86_64
kernel-ml-5.11.6-1.el8.elrepo.x86_64
kernel-4.18.0-240.10.1.el8_3.x86_64
kernel-ml-modules-5.11.6-1.el8.elrepo.x86_649. Удаление старого ядра
Этот шаг не является обязательным для удаления старого ядра.Выполните:
$ yum remove kernel-core-4.18.0 kernel-devel-4.18.0 kernel-tools-libs-4.18.0 kernel-headers-4.18.0
Dependencies resolved.
=============================================================================================================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================================================================================================
Removing:
kernel-core x86_64 4.18.0-240.10.1.el8_3 @anaconda 62 M
kernel-devel x86_64 4.18.0-240.10.1.el8_3 @baseos 47 M
kernel-headers x86_64 4.18.0-240.10.1.el8_3 @baseos 4.8 M
kernel-tools-libs x86_64 4.18.0-240.10.1.el8_3 @anaconda 23 k
Removing dependent packages:
gcc-c++ x86_64 8.3.1-5.1.el8 @appstream 31 M
gcc-gdb-plugin x86_64 8.3.1-5.1.el8 @appstream 334 k
kernel x86_64 4.18.0-240.10.1.el8_3 @anaconda 0
kernel-tools x86_64 4.18.0-240.10.1.el8_3 @anaconda 642 k
Removing unused dependencies:
cpp x86_64 8.3.1-5.1.el8 @appstream 28 M
gcc x86_64 8.3.1-5.1.el8 @appstream 59 M
glibc-devel x86_64 2.28-127.el8 @baseos 1.2 M
glibc-headers x86_64 2.28-127.el8 @baseos 1.9 M
isl x86_64 0.16.1-6.el8 @appstream 3.1 M
kernel-modules x86_64 4.18.0-240.10.1.el8_3 @anaconda 21 M
libmpc x86_64 1.0.2-9.el8 @appstream 150 k
libstdc++-devel x86_64 8.3.1-5.1.el8 @appstream 11 M
libxcrypt-devel x86_64 4.1.1-4.el8 @baseos 24 k
Transaction Summary
=============================================================================================================================================================================================================================================
Remove 17 Packages
Freed space: 272 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: gcc-c++-8.3.1-5.1.el8.x86_64 1/1
Erasing : gcc-c++-8.3.1-5.1.el8.x86_64 1/17
Erasing : kernel-4.18.0-240.10.1.el8_3.x86_64 2/17
Running scriptlet: kernel-4.18.0-240.10.1.el8_3.x86_64 2/17
Erasing : kernel-tools-4.18.0-240.10.1.el8_3.x86_64 3/17
Running scriptlet: kernel-tools-4.18.0-240.10.1.el8_3.x86_64 3/17
Erasing : kernel-modules-4.18.0-240.10.1.el8_3.x86_64 4/17
Running scriptlet: kernel-modules-4.18.0-240.10.1.el8_3.x86_64 4/17
Erasing : gcc-gdb-plugin-8.3.1-5.1.el8.x86_64 5/17
Running scriptlet: gcc-gdb-plugin-8.3.1-5.1.el8.x86_64 5/17
Erasing : libstdc++-devel-8.3.1-5.1.el8.x86_64 6/17
Erasing : kernel-devel-4.18.0-240.10.1.el8_3.x86_64 7/17
Running scriptlet: gcc-8.3.1-5.1.el8.x86_64 8/17
Erasing : gcc-8.3.1-5.1.el8.x86_64 8/17
Running scriptlet: glibc-devel-2.28-127.el8.x86_64 9/17
Erasing : glibc-devel-2.28-127.el8.x86_64 9/17
Erasing : libxcrypt-devel-4.1.1-4.el8.x86_64 10/17
Erasing : glibc-headers-2.28-127.el8.x86_64 11/17
Running scriptlet: cpp-8.3.1-5.1.el8.x86_64 12/17
Erasing : cpp-8.3.1-5.1.el8.x86_64 12/17
Erasing : kernel-headers-4.18.0-240.10.1.el8_3.x86_64 13/17
Erasing : libmpc-1.0.2-9.el8.x86_64 14/17
Running scriptlet: libmpc-1.0.2-9.el8.x86_64 14/17
Erasing : isl-0.16.1-6.el8.x86_64 15/17
Running scriptlet: isl-0.16.1-6.el8.x86_64 15/17
Running scriptlet: kernel-core-4.18.0-240.10.1.el8_3.x86_64 16/17
Erasing : kernel-core-4.18.0-240.10.1.el8_3.x86_64 16/17
Running scriptlet: kernel-core-4.18.0-240.10.1.el8_3.x86_64 16/17
Erasing : kernel-tools-libs-4.18.0-240.10.1.el8_3.x86_64 17/17
Running scriptlet: kernel-tools-libs-4.18.0-240.10.1.el8_3.x86_64 17/17
Verifying : cpp-8.3.1-5.1.el8.x86_64 1/17
Verifying : gcc-8.3.1-5.1.el8.x86_64 2/17
Verifying : gcc-c++-8.3.1-5.1.el8.x86_64 3/17
Verifying : gcc-gdb-plugin-8.3.1-5.1.el8.x86_64 4/17
Verifying : glibc-devel-2.28-127.el8.x86_64 5/17
Verifying : glibc-headers-2.28-127.el8.x86_64 6/17
Verifying : isl-0.16.1-6.el8.x86_64 7/17
Verifying : kernel-4.18.0-240.10.1.el8_3.x86_64 8/17
Verifying : kernel-core-4.18.0-240.10.1.el8_3.x86_64 9/17
Verifying : kernel-devel-4.18.0-240.10.1.el8_3.x86_64 10/17
Verifying : kernel-headers-4.18.0-240.10.1.el8_3.x86_64 11/17
Verifying : kernel-modules-4.18.0-240.10.1.el8_3.x86_64 12/17
Verifying : kernel-tools-4.18.0-240.10.1.el8_3.x86_64 13/17
Verifying : kernel-tools-libs-4.18.0-240.10.1.el8_3.x86_64 14/17
Verifying : libmpc-1.0.2-9.el8.x86_64 15/17
Verifying : libstdc++-devel-8.3.1-5.1.el8.x86_64 16/17
Verifying : libxcrypt-devel-4.1.1-4.el8.x86_64 17/17
Removed:
cpp-8.3.1-5.1.el8.x86_64 gcc-8.3.1-5.1.el8.x86_64 gcc-c++-8.3.1-5.1.el8.x86_64 gcc-gdb-plugin-8.3.1-5.1.el8.x86_64 glibc-devel-2.28-127.el8.x86_64
glibc-headers-2.28-127.el8.x86_64 isl-0.16.1-6.el8.x86_64 kernel-4.18.0-240.10.1.el8_3.x86_64 kernel-core-4.18.0-240.10.1.el8_3.x86_64 kernel-devel-4.18.0-240.10.1.el8_3.x86_64
kernel-headers-4.18.0-240.10.1.el8_3.x86_64 kernel-modules-4.18.0-240.10.1.el8_3.x86_64 kernel-tools-4.18.0-240.10.1.el8_3.x86_64 kernel-tools-libs-4.18.0-240.10.1.el8_3.x86_64 libmpc-1.0.2-9.el8.x86_64
libstdc++-devel-8.3.1-5.1.el8.x86_64 libxcrypt-devel-4.1.1-4.el8.x86_64
Complete!Убедитесь, что старая версия ядра удалена.
Выполните:
$ rpm -qa | grep kernel
kernel-ml-core-5.11.6-1.el8.elrepo.x86_64
kernel-ml-5.11.6-1.el8.elrepo.x86_64
kernel-ml-modules-5.11.6-1.el8.elrepo.x86_64Также можно установить инструмент yum utils. Если в системе установлено более трех ядер, старая версия ядра будет автоматически удалена.