Оновлення ядра CentOS до останньої версії
У цьому посібнику пояснюється, як встановити новіше ядро в CentOS 7 за допомогою репозиторію ELRepo.
ELRepo припинив підтримку el7 у липні 2024 року. Процедура, описана в цьому посібнику, більше не працює. Цей посібник зберігається як архівний матеріал.
Якщо ви все ще використовуєте CentOS 7, розгляньте можливість переходу на AlmaLinux 8 за допомогою інструмента Elevate.
Вибір варіанта ядра
ELRepo надає два варіанти ядра:
kernel-ml встановлює основне ядро (mainline), яке відповідає найновішим версіям Linux upstream. Воно швидко отримує нові функції та покращення, але може спричинити проблеми сумісності з драйверами або робочими навантаженнями у виробничому середовищі.
kernel-lt встановлює ядро з довгостроковою підтримкою, у якому стабільність має пріоритет над новими функціями. Це рекомендований варіант для виробничих серверів.
Оновлення системи та встановлення ELRepo
Оновіть встановлені пакети:
yum -y update
Імпортуйте GPG-ключ ELRepo та встановіть репозиторій:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
Перевірте, чи репозиторій було успішно додано:
yum repolist | grep elrepo
Очистіть кеш yum:
yum clean all
Встановлення нового ядра
Щоб встановити ядро з довгостроковою підтримкою (рекомендовано для виробничих середовищ):
yum --enablerepo=elrepo-kernel install kernel-lt kernel-lt-headers kernel-lt-tools kernel-lt-tools-libs
Щоб натомість встановити основне ядро (mainline):
yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-headers kernel-ml-tools kernel-ml-tools-libs
Перевірте, чи пакети ядра були встановлені:
rpm -qa | grep '^kernel-'
Встановлення нового ядра як типового
Перегляньте всі встановлені ядра разом із порядком їхнього завантаження:
grubby --info=ALL | grep -E 'title|kernel'
Найновішому ядру зазвичай призначається індекс 0, але перед встановленням його як типового перевірте порядок. Встановіть типове ядро за індексом:
grubby --set-default=0
Або для більшої надійності вкажіть повний шлях до ядра:
grubby --set-default /boot/vmlinuz-<version>
Замініть <version> фактичним рядком версії з результату виконання команди grubby --info=ALL.
Перевірте типове ядро:
grubby --default-kernel grub2-editenv list
Якщо Secure Boot увімкнено в BIOS/UEFI, сторонні ядра з ELRepo можуть не завантажитися. Вимкніть Secure Boot перед перезавантаженням.
Перезавантаження та перевірка
Перезавантажте сервер:
reboot
Після повторного запуску системи перевірте версію ядра, яке працює:
uname -r
Видалення старих ядер
Після підтвердження того, що нове ядро працює належним чином, видаліть старіші версії, щоб звільнити місце на диску. Параметр --count=2 залишає два найновіші ядра як резервний варіант:
yum install -y yum-utils package-cleanup --oldkernels --count=2
Аварійне повернення до попередньої версії
Якщо нове ядро не завантажується, виберіть попереднє ядро в меню GRUB під час запуску системи. Після завантаження зі старим ядром знову встановіть його як типове:
grubby --set-default=1 reboot
Замініть 1 на індекс робочого ядра з результату виконання команди grubby --info=ALL.