Ядро Linux (kernel) — ключовий компонент ОС. Регулярне оновлення ядра закриває критичні вразливості (Spectre, Meltdown, Dirty Cow), додає підтримку нового заліза і покращує продуктивність.
Перевірка поточної версії ядра
# Версія ядра
uname -r
# Повна інформація
uname -a
# Усі встановлені ядра
dpkg --list | grep linux-image
# Приклад виводу:
# 6.5.0-26-generic — поточне
# 6.5.0-21-generic — старе (буде видалено)
Оновлення ядра через apt (Ubuntu/Debian)
# Стандартне оновлення включає ядро
sudo apt update
sudo apt full-upgrade -y
# Перевірити доступні версії ядра
apt-cache search linux-image | grep generic
# Встановити конкретну версію
sudo apt install linux-image-6.8.0-31-generic -y
# ОБОВ'ЯЗКОВО перезавантажити для застосування
sudo reboot
Перевірка після перезавантаження
# Переконатися, що завантажилося нове ядро
uname -r
# Перевірити, чи немає проблем з модулями
dmesg | grep -i error | head -20
Відкат до попереднього ядра через GRUB
Якщо нове ядро спричинило проблеми:
- Під час перезавантаження затисніть
Shift(Legacy BIOS) абоEsc(UEFI) для входу в GRUB - Виберіть Advanced options for Ubuntu
- Виберіть попередню версію ядра
- Після успішного завантаження — видаліть проблемне ядро:
sudo apt remove linux-image-6.8.0-31-generic
sudo update-grub
Встановлення mainline-ядра (для досвідчених)
# Ubuntu Mainline Kernel PPA (Canonical)
# Дозволяє встановлювати найновіші ядра
sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline
# Через GUI-утиліту вибрати та встановити потрібну версію
Розбір типових помилок оновлення ядра
Після оновлення ядра сервер не завантажується, зупиняється в GRUB rescue — найчастіше це ознака того, що нове ядро не змогло зібрати initramfs з потрібними модулями (наприклад, драйвером віртуального диска virtio на VPS).
error: no such device: /dev/sda1
Entering rescue mode...
grub rescue>
Через консоль хостингу (VNC/KVM) завантажтеся зі старим ядром через меню GRUB, потім перезберіть initramfs для нового: sudo update-initramfs -u -k 6.8.0-31-generic, і лише після успішного перезбирання пробуйте завантажитися з новим ядром знову.
"Warning: Kernel is too old" або модуль не завантажується після оновлення — сторонні модулі ядра (VirtualBox, NVIDIA, ZFS через DKMS) збираються під конкретну версію заголовків і не перезбираються автоматично під час оновлення через apt, якщо пакет заголовків не збігається.
modprobe: ERROR: could not insert 'zfs': Invalid argument
dmesg | tail
ZFS: module license 'CDDL' taints kernel
Встановіть заголовки для нової версії (sudo apt install linux-headers-$(uname -r)) і перезберіть модуль: sudo dkms autoinstall. Без цього кроку DKMS-модулі лишаються прив'язаними до старого ядра.
Способи оновлення ядра: порівняння
| Спосіб | Джерело ядра | Стабільність | Простій |
|---|---|---|---|
| apt full-upgrade | Офіційний репозиторій дистрибутива | Висока, протестовано вендором | Потрібне перезавантаження |
| Ubuntu Livepatch | Патчі безпеки без заміни ядра | Висока для критичних CVE | Без перезавантаження |
| Mainline PPA | Збірки з kernel.org, не тестовані Canonical | Нижча, можливі регресії | Потрібне перезавантаження |
| Збірка з вихідного коду | Вихідний код з довільними патчами | Залежить від кваліфікації | Потрібне перезавантаження |
Коли оновлення ядра варто відкласти
- Сервер використовує специфічні модулі ядра (пропрієтарні драйвери, ZFS, кастомні мережеві модулі) без готової збірки під нову версію — спочатку перевірте сумісність модулів на тестовому середовищі.
- Найближчим часом — пікове навантаження (розпродаж, реліз) — перезавантаження для застосування нового ядра створює ризик простою саме в критичний момент.
- Немає доступу до консолі хостингу (VNC/KVM) на випадок, якщо сервер не підніметься після перезавантаження — без такого доступу відновлення після невдалого оновлення ядра може потребувати звернення до підтримки хостингу і довгого очікування.
Перевірка результату
- Перевірте активну версію:
uname -rмає збігатися з версією, яку ви встановлювали. - Переконайтеся, що старе ядро лишилося в GRUB як запасний варіант:
awk -F"'" '/menuentry / {print $2}' /boot/grub/grub.cfgмає містити обидві версії. - Перевірте відсутність помилок модулів:
dmesg | grep -iE "error|fail" | head -20— критичних повідомлень про драйвери бути не повинно. - Перевірте ключові сервіси після перезавантаження:
systemctl --failedмає повернути порожній список.
Оновлення ядра часто йде разом з оновленням усієї системи — див. статтю про перехід між версіями Debian і загальний посібник з оновлення ОС на VDS.