Оновлення ядра — не страшилка, якщо робити все по-розумному. У цьому гайді покажу, як у Ubuntu безпечно виконати встановлення ядра Linux, протестувати нову версію без ризику, швидко відкотитися у разі проблем і ввімкнути автооновлення. Працюємо лише з надійних джерел, максимально акуратно та з чітким планом дій.

Перевіряємо поточне ядро й готуємося до змін

Перед змінами перевірте версію ядра, вільне місце в /boot і створіть резервну копію (Timeshift або бекап важливих даних). Також переконайтеся, що меню GRUB доступне для вибору попереднього ядра.

uname -r
lsb_release -a
df -h /boot
sudo apt update

Якщо місця в /boot мало — приберіть старі пакунки, але не видаляйте те ядро, з якого ви завантажені.

dpkg -l | grep -E '^ii.*linux-image'
sudo apt autoremove --purge

Основний How-to: безпечне оновлення ядра з офіційних репозиторіїв

Найбезпечніший шлях для встановлення ядра Linux в Ubuntu — офіційні метапакети. Вони отримують перевірені оновлення та коректно інтегруються з системою.

1) Оберіть гілку: GA або HWE

У LTS-релізів Ubuntu є дві гілки ядра:

  • GA (linux-generic) — стабільна базова гілка.
  • HWE (linux-generic-hwe-X.YY) — новіше ядро з апстріму, корисне для сучасного обладнання.

Визначте свою версію Ubuntu та встановіть відповідний метапакет:

VERSION=$(lsb_release -rs)
# Перехід на HWE (рекомендовано для LTS з новим залізом)
sudo apt install "linux-generic-hwe-${VERSION}"

# Або лишаємося на GA-гілці
aut"
sudo apt install linux-generic

Після встановлення перезавантажтеся та перевірте версію:

sudo reboot
# далі
uname -r

2) Тестування нової версії без ризику

Після оновлення перед активним використанням виконайте тестовий запуск через GRUB:

  1. Під час старту натисніть Shift (BIOS) або Esc (UEFI), увійдіть в меню GRUB.
  2. Обирайте Advanced options for Ubuntu і завантажтеся з нового або попереднього ядра.

Перевірте dmesg, мережу, драйвери (зокрема NVIDIA/ZFS/DKMS) і базові сервіси.

dmesg -l err,warning | less

3) Фіксація пакунка, якщо все працює

Якщо ядро стабільне, можна залишити автооновлення ввімкненим. Якщо хочете тимчасово зафіксувати поточний метапакет від оновлень:

# Заборонити оновлення метапакета (hold)
sudo apt-mark hold linux-generic-hwe-$(lsb_release -rs)
# Зняти заборону (unhold)
sudo apt-mark unhold linux-generic-hwe-$(lsb_release -rs)

Відкат і прибирання

Якщо після оновлення виникли проблеми — завантажтеся з попереднього ядра через GRUB і видаліть проблемний випуск. Не видаляйте ядро, з якого зараз завантажені.

# Подивитися всі встановлені ядра
dpkg -l | grep -E '^ii.*linux-(image|headers)'

# Видалити проблемну версію (приклад з номером - змініть під себе)
sudo apt remove --purge linux-image-6.8.0-31-generic linux-headers-6.8.0-31-generic
sudo update-grub

# Прибрати зайве та звільнити місце
sudo apt autoremove --purge

За потреби тимчасово забороніть подальші оновлення метапакета через apt команди з прикладу вище (hold).

Автооновлення ядра

Ubuntu вміє автоматично ставити оновлення без вашої участі. Це зручно для серверів і робочих станцій.

Unattended-upgrades

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

# Увімкнути періодичні оновлення
printf 'APT::Periodic::Update-Package-Lists "1";\nAPT::Periodic::Unattended-Upgrade "1";\n' | sudo tee /etc/apt/apt.conf.d/20auto-upgrades

# Перевірити таймери
systemctl list-timers 'apt*'
systemctl status unattended-upgrades

Для автоматичних перезавантажень після оновлень ядра відредагуйте налаштування (за потреби) у 50unattended-upgrades, параметр Unattended-Upgrade::Automatic-Reboot.

Livepatch (мінімум перезавантажень)

Щоб зменшити кількість перезавантажень ядра, скористайтеся Canonical Livepatch (потрібен Ubuntu Pro токен):

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <YOUR_TOKEN>
canonical-livepatch status

Альтернативні способи

Інколи потрібно ядро з гілки mainline. Це корисно для дуже нового обладнання, але має ризики (менше тестування, можливі конфлікти з драйверами, Secure Boot).

Скрипт ubuntu-mainline-kernel.sh

# Встановити скрипт
curl -fsSL https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh | \
  sudo tee /usr/local/bin/ubuntu-mainline-kernel.sh > /dev/null
sudo chmod +x /usr/local/bin/ubuntu-mainline-kernel.sh

# Подивитися доступні версії та встановити конкретну
ubuntu-mainline-kernel.sh -r
sudo ubuntu-mainline-kernel.sh -i v6.10

Після встановлення протестуйте через GRUB та майте під рукою робоче попереднє ядро для відкату.

GUI-спосіб

Для офіційних оновлень зайдіть у «Software Updater» — ядро прийде разом зі стандартним оновленням Linux.

Для mainline існує GUI «Mainline Kernels» (PPA cappelikan). Використовуйте обережно:

sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline

Запустіть «Mainline», оберіть версію, встановіть, перезавантажтеся і перевірте. На системах із Secure Boot можуть знадобитися додаткові кроки (MOK або вимкнення Secure Boot).

FAQ

Чому краще метапакети, а не ручні .deb?

Метапакети з офіційних репозиторіїв інтегровані з APT, отримують патчі безпеки й автоматично прибирають застарілі ядра. Ручні .deb з вебу — ризик безпеки і конфліктів.

Скільки старих ядер зберігається?

Зазвичай система тримає кілька попередніх версій. Увімкнене unattended-upgrades може автоматично чистити непотрібні ядра.

Не бачу меню GRUB. Що робити?

Тримайте Shift/Esс під час старту. Або увімкніть показ меню завжди:

sudo sed -i 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=menu/' /etc/default/grub
sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=5/' /etc/default/grub
sudo update-grub

Secure Boot і модулі (NVIDIA, ZFS, VirtualBox) ламаються після оновлення. Чому?

DKMS-модулі мають бути підписані, або потрібно вимкнути Secure Boot/зареєструвати MOK. Для mainline ядра підписів може не бути — тестуйте обережно.

Після оновлення система не завантажується

Спробуйте попереднє ядро через GRUB. Якщо зовсім не стартує — завантажтеся з Live USB, зайдіть у chroot та видаліть проблемний пакет ядра.

Чи варто переходити на HWE?

Якщо у вас нове залізо або проблеми з драйверами — так, HWE часто допомагає. Для максимальної стабільності серверів можна лишатися на GA.

Чи є це офіційним «FAQ Linux»?

Це практичний розділ у стилі Kernelka. Для детальнішого «FAQ Linux» щодо ядер дивіться документацію Ubuntu і ядра.

Порада від Kernelka

Перед великими оновленнями робіть знімок системи (Timeshift/Borg) і тримайте під рукою Live USB. Це одна дрібниця, яка рятує години нервів 🧰

Підсумок

  • Оновлюйте ядро через офіційні метапакети (GA/HWE) — це найбезпечніше.
  • Тестуйте нову версію через GRUB; майте шлях до швидкого відкату.
  • Для відкату — завантаження зі старого ядра, видалення проблемної версії, чистка.
  • Увімкніть unattended-upgrades і, за потреби, Livepatch для мінімум перезавантажень.
  • Mainline використовуйте лише за необхідності й з обережністю.
  • Пам’ятайте про резервні копії та моніторинг після оновлень 🙂

Ось так ми безпечно зробили встановлення ядра Linux в Ubuntu, налаштували оновлення Linux і підготувалися до будь-якого сценарію. Якщо лишилися питання — пишіть у коментарях, а цей розділ «FAQ Linux» поступово доповню.