Обновление ядра RPM Linux

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: Linux, Rocky.

Ядро операционной системы является основным ее элементом — оно выполняет функции распределения ресурсов и предоставления интерфейса для взаимодействия с оборудованием. Из соображений безопасности или обеспечения корректной работы современного оборудования может возникнуть необходимость обновления ядра.

1. Проверка текущей версии ядра

Перед обновлением необходимо убедиться, что текущая версия ядра уже не обновлена. Это выполняется командой:

uname -r

Пример ответа:

5.14.0-570.18.1.el9_6.x86_64

* в данном примере установлено ядро версии 5.14.0.

2. Установка ядра

Перед обновлением ядра, необходимо обновить пакеты:

dnf update

После стоит перезагрузить систему:

shutdown -r now

Далее у нас на выбор два способа обновления ядра — с использованием репозитория или вручную, скачав исходник с kernel.org.

С помощью yum

Самый быстрый и безопасный способ обновить ядро RPM систем — воспользоваться автоматической установкой из репозитория ELRepo. Единственное, версия пакета может быть не самой свежей.

Сначала устанавливаем репозиторий ELRepo.

dnf install elrepo-release

* список установленных репозиториев можно посмотреть командой dnf repolist.

Теперь можно установить ядро:

dnf --enablerepo=elrepo-kernel install kernel-ml

Ручное обновление

Чаще всего, администратор пользуется встроенными в сборку Linux инструментами (как описано выше) — это безопаснее и проще. Однако, если нужной версии ядра нет в репозитории или мы хотим установить тестовую версию, необходима ручная установка.

Ручная установка неадаптированного для определенной сборки Linux ядра — потенциальный риск для системы. Обновление стоит проводить сначала в тестовой среде, а также выполнить резервное копирование всех важных данных.

Для начала переходим на сайт kernel.org и копируем ссылку на нужную версию ядра Linux:

Ссылка на скачивание ядра Linux

* в данном примере мы скопировали ссылку на нестабильную версию ядра 5.0.

Воспользовавшись ссылкой, скачиваем ядро на компьютер с Linux:

wget https://git.kernel.org/torvalds/t/linux-5.0-rc8.tar.gz

* если система вернет ошибку, нужно установить wget — yum install wget.

Распаковываем скачанный архив:

tar -xvf linux-5.0-rc8.tar.gz -C /usr/src

* в данном примере мы распаковываем архив linux-5.0-rc8.tar.gz в каталог /usr/src.

Переходим в каталог, куда распаковали исходник ядра:

cd /usr/src/linux-5.0-rc8/

Устанавливаем инструменты для компиляции пакетов:

yum groupinstall "Development Tools"

yum install ncurses-devel openssl-devel bc

Создаем свою конфигурацию для ядра:

make menuconfig

Или используем текущую конфигурацию для ядра:

make oldconfig

На все вопросы, которые задает система можно отвечать нажатием Enter, чтобы принимать значения по умолчанию.

Компилируем ядро:

make

* процедура может занять много времени.

После устанавливаем ядро и модули:

make modules_install install

3. Применение нового ядра

Для того, чтобы система начала свою работу на новом ядре, необходима перезагрузка:

shutdown -r now

В некоторых редких случаях при перезагрузке системы в окне со списком вариантов загрузки, нужно выбрать новоя ядро.

Если операционная система грузится с использованием предыдущей версии ядра, понадобится  внести изменения в GRUB:

vi /etc/default/grub

...
GRUB_DEFAULT=0
...

* данной настройкой мы говорим загрузчику использовать первое ядро для загрузки (первым идет последнее по версии ядро).

Применяем настройки для grub:

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

Можно перезагружать компьютер:

shutdown -r now

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

uname -r

Если система не загружается после обновления ядра

При установке новой версии ядра, старые версии тоже сохраняются и их можно выбрать при загрузке CentOS.

Если управление осуществляется удаленно по SSH, мы должны подключить монитор к компьютеру и включить его. В процессе загрузки выскочит окно со списком систем:

Ссылка на скачивание ядра Linux

Выбираем вариант загрузки с предыдущей версией ядра.

Удаление ядра

Рассмотрим несколько сценариев удаления ядра.

1. Удалить конкретную версию.

Выводим список ядер, установленных в системе:

rpm -qa | grep kernel-

Удаляем ядро командой, на подобие:

yum remove kernel-ml-5.17.6-1.el7.elrepo.x86_64

* где kernel-ml-5.17.6-1.el7.elrepo.x86_64 — ядро в системе, которое будет удалено.

Важно загрузить систему под другой версией ядра, чтобы при удалении не возникло проблем.

2. Чистка системы от устаревших версий ядер.

Мы можем удалить ядра, которые устарели в нашей системе. Для жтого нам нужна утилита yum-utils:

dnf install yum-utils

После вводим:

dnf remove --oldinstallonly --setopt installonly_limit=2 kernel

* в данном примере мы удалим все ядра, оставив по версии последних два.

В старых версиях RPM-систем используем:

package-cleanup --oldkernels --count=2

Возможные ошибки

1. Фатальная ошибка: <путь до файла>: Нет такого файла или каталога.

Например: 

Причина: в системе не установлен один из пакетов, содержащий необходимые библиотеки.

Решение: необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.

2. [<путь до файла>] Ошибка 127

Например: [include/generated/timeconst.h] Ошибка 127

Причина: как и с предыдущей ошибкой, в системе не установлен один из пакетов, содержащий необходимые библиотеки.

Решение: аналогично предыдущему примеру решения проблемы, необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.

# CentOS # Rocky Linux # Операционные системы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет

Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Нужна бесплатная консультация?

Мини-инструкции

Отключение IPv6 в операционных системах на базе ядра Linux

Как пользоваться сервисом GitHub на компьютере с Linux

Использование утилиты mdadm для работы с RAID в Linux

Как установить ядро Rocky Linux с kernel.org или репозитория

Как настроить сетевой адаптер в Linux для работы с несколькими IP-адресами

Установка и настройка Nextcloud + NGINX на Ubuntu

Настройка проксирования почты с NGINX для IMAP, POP3 и SMTP

Другие инструкции

Все статьи

Нужна помощь? Пишите:






Реклама