SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-09-14

Ubuntu: разница между ядрами GA и HWE

Узнайте, в чем заключаются различия между ветками ядер GA и HWE в Ubuntu Server. Разбираем, как проверить текущую версию ядра и стоит ли переходить на HWE для вашего VPS.

Устанавливает ли точечный релиз новое ядро на мой сервер Ubuntu?

Нет. На сервере Ubuntu выбор между ядром HWE и ядром GA определяется установленным пакетом, и точечный релиз не устанавливает его автоматически. Путаница возникает из-за того, что в примечаниях к выпуску термин "enablement" используется в двух разных значениях. Hardware enablement (HWE) — это ветка более новых ядер. Upgrade enablement — это отдельный момент, когда открывается путь обновления с одного LTS-релиза на следующий. Сервер, который уже работает и использует GA, остаётся на GA при выходе любого точечного релиза своего LTS.

Что такое ветки ядер GA и HWE

GA (general availability) — это ядро, с которым выпускается дистрибутив Ubuntu LTS. Оно сохраняет версию upstream-ядра в течение всего стандартного периода поддержки релиза. Исправления безопасности и ошибки переносятся в него методом backport, поэтому последняя цифра в uname -r меняется каждые несколько недель. Версия upstream в начале строки не меняется.

HWE (hardware enablement) — это альтернативная ветка. Canonical переносит ядро из каждого последующего промежуточного релиза в LTS, поэтому версия enablement-ядра обновляется до более новой версии upstream примерно каждые шесть месяцев. Canonical называет это моделью rolling-обновлений. Образы для настольных систем устанавливают enablement-ядро по умолчанию. Образы для серверов и облачных сред по умолчанию используют GA, а стек enablement устанавливается по выбору пользователя.

Суть выбора проста. GA предоставляет версию ядра, которая не меняется годами. HWE предоставляет более новые драйверы и функции ядра, но требует обновления версии и перезагрузки примерно каждые шесть месяцев.

На какой ветке ядра я сейчас нахожусь?

uname -r никогда не содержит слово hwe. Обе ветки выводят версию, заканчивающуюся на -generic, поэтому имя запущенного ядра само по себе не дает ответа на этот вопрос. Ответ дает установленный мета-пакет.

uname -r
grep VERSION_ID /etc/os-release
apt-cache policy linux-generic linux-generic-hwe-24.04

Замените 24.04 на число, которое VERSION_ID выводит на вашей машине. apt-cache policy выводит строку Installed: для каждого указанного пакета. Installed: (none) для пакета -hwe- плюс версия для linux-generic означают, что вы используете ветку GA. Обратное означает, что вы находитесь на ветке enablement. Если обе версии присутствуют, значит, на диске установлены оба ядра, а GRUB загружает самое новое, то есть enablement-ядро.

Некоторые образы от провайдеров устанавливают linux-image-virtual вместо linux-generic. Это урезанный набор модулей, собранный для виртуальных машин, и у него есть собственный enablement-вариант. Не пытайтесь угадать имя. Спросите у машины, какие пакеты ядра были выбраны, а затем проверьте в репозитории, какие enablement-пакеты существуют для вашего релиза.

apt-mark showmanual | grep '^linux-'
apt-cache search linux-image | grep hwe
apt-cache depends linux-image-generic-hwe-24.04
dpkg -l 'linux-image-*' | grep '^ii'
ls /boot/vmlinuz-*

apt-cache depends показывает, на какой образ ядра указывает enablement-мета-пакет в данный момент. ls /boot/vmlinuz-* показывает, что фактически установлено и доступно для загрузки, что зачастую больше, чем вы ожидаете.

Что делает каждый точечный релиз для каждой ветки

В ветке GA точечный релиз никак не влияет на работающий сервер. Точечный релиз — это обновленный установочный образ плюс те обновления, которые apt уже предоставлял вам ранее. Он определяет состав ПО для вновь установленной системы, а не для уже работающей. В статье Что на самом деле меняет точечный релиз Ubuntu описаны остальные детали.

В ветке enablement точечный релиз означает изменение метапакета. linux-image-generic-hwe-24.04 меняет свою зависимость на более новый образ ядра, и при следующем обычном обновлении система устанавливает этот образ. В руководстве по apt четко сказано, почему достаточно обычного обновления: «Новые пакеты будут установлены, если это необходимо для удовлетворения зависимостей, но существующие пакеты никогда не будут удалены». Таким образом, apt upgrade подтягивает новое ядро. Оно станет активным только после следующей перезагрузки.

Выполняет ли это фоновое задание автоматически, зависит от вашей конфигурации. Прочитайте /etc/apt/apt.conf.d/50unattended-upgrades и изучите блок Allowed-Origins. По умолчанию в поставке включен только репозиторий security, поэтому обновление enablement из репозитория updates не применяется автоматически, если кто-то не расширил этот список. Проверьте файл, вместо того чтобы делать предположения.

Окна поддержки следуют из того же механизма. Ядро GA поддерживается в течение стандартного периода для релиза LTS без каких-либо действий с вашей стороны. Каждое ядро enablement поддерживается до тех пор, пока его не заменит следующее ядро enablement, поэтому HWE является поддерживаемой веткой только при условии установки всех обновлений. Отставание на два шага в этой ветке приведет к тому, что вы будете использовать ядро, которое больше не получает исправлений, а apt не выдаст никаких уведомлений об этом.

Не полагайтесь на точные даты из любых публикаций в блогах, включая эту. Canonical публикует дату окончания поддержки для каждой версии ядра на странице жизненного цикла ядра Ubuntu, а даты релиза и поддержки — на странице цикла релизов Ubuntu. Сравните данные на этих страницах с тем, что выводят uname -r и grep VERSION_ID /etc/os-release на вашем сервере. Только эта пара фактов достоверно описывает состояние вашей системы.

Почему ядро HWE редко помогает VPS

HWE существует для поддержки оборудования. Ноутбук или физический сервер с сетевой картой (NIC), контроллером накопителей или графическим процессором, выпущенными позже, чем текущее LTS-ядро, не будут работать корректно, пока не появится более свежее ядро. Ядро enablement (HWE) — это решение данной проблемы, и на реальном оборудовании оно часто определяет, будет ли машина работать или нет.

Арендованный VPS не сталкивается с этой проблемой, так как он не «видит» физическое оборудование. Гостевая система видит лишь небольшой и намеренно устаревший набор виртуальных устройств. Проверьте свои.

sudo apt install -y pciutils
lspci -nnk

lspci -nnk выводит список всех устройств с привязанным к ним драйвером ядра. На большинстве VPS этот список короток: virtio_net для сети и virtio_blk или virtio_scsi для дисков. Эти драйверы присутствуют в основном ядре уже много лет. Виртуальное устройство специально сделано стабильным интерфейсом, чтобы гостевая система продолжала работать, когда провайдер переносит её на другое физическое оборудование. Поэтому причина, по которой люди устанавливают HWE-ядро, на арендованном сервере практически отсутствует.

Однако издержки остаются. Каждый шаг обновления ядра — это новый бинарный файл, требующий перезагрузки, в дополнение к тем, что вы уже выполняете для обновлений безопасности. На отдельном VPS, где нет возможности переключения на резерв, перезагрузка — это простой, который нужно планировать и контролировать. Live kernel patching может исключить часть перезагрузок для обновлений безопасности, но не может отменить перезагрузку при смене версии, так как это установка другого ядра, а не применение патча к текущему.

Когда следует переходить на enablement kernel

Четыре случая, когда ответ однозначно «да».

  • Гипервизор предоставляет устройство, для которого в вашем ядре нет драйвера. Симптом конкретен: интерфейс отсутствует в ip -brief link или диск отсутствует в lsblk, при этом устройство отображается в lspci -nnk, но под ним нет строки Kernel driver in use:.
  • Используемое вами программное обеспечение требует версию ядра выше, чем установленная у вас. Это характерно для сред выполнения контейнеров, баз данных и инструментов eBPF. Сравните минимальные требования поставщика с выводом uname -r и доверяйте документации поставщика.
  • Вы столкнулись с ошибкой, исправленной в основной ветке разработки после выпуска GA-версии, но не перенесенной в текущую версию (backported). Перед переключением убедитесь, что исправление действительно присутствует в enablement-версии, иначе вы потратите время на перезагрузки, но ошибка останется.
  • Вам требуется функция файловой системы или сетевого стека, появившаяся после выпуска GA-версии, и эта функция является основной целью использования сервера.

Если ни один из этих пунктов не описывает ваш сервер, GA-версия является оптимальным выбором, а сохранение текущей конфигурации — это осознанное решение, а не небрежность.

Как выполнить переключение и что проверить после перезагрузки

Сначала проверьте наличие свободного места. Если /boot является небольшим отдельным разделом, добавление второй строки ядра может заполнить его, из-за чего apt остановится в состоянии незавершенной настройки с ошибкой No space left on device.

df -h /boot
sudo apt update
sudo apt install --install-recommends linux-generic-hwe-24.04
ls /boot/vmlinuz-*
sudo reboot

Когда сервер вернется в сеть, подтвердите, что изменилось, а что нет.

uname -r
ip -brief link
lsblk
journalctl -k -b 0 -p err --no-pager

Команда uname -r должна вывести версию ядра выше предыдущей. Списки сетевых интерфейсов и дисков должны выглядеть точно так же, как раньше, поскольку виртуальные устройства остались прежними. Отсутствие интерфейса — это критический сбой, так как обычно это означает, что сервер доступен только через консоль провайдера. Команда journalctl -k -b 0 -p err выводит сообщения ядра текущей загрузки с уровнем ошибки; на исправном VPS этот список пуст или содержит минимум записей. В статье Чтение лога ядра на VPS объясняется значение информативных строк. Не удаляйте старое ядро в тот же день. Оно является вашим способом отката.

Как вернуться к работе, если новое ядро функционирует некорректно

Старое ядро по-прежнему установлено и доступно в меню GRUB. Откройте консоль вашего провайдера, перезагрузите сервер и выберите предыдущую версию ядра в разделе "Advanced options for Ubuntu". Однократная загрузка подтвердит, что старое ядро работоспособно. Чтобы сделать этот выбор постоянным для последующих перезагрузок, выполните действия, описанные в закрепление версии ядра для загрузки VPS. Если сервер не загружается, а консоль отображает приглашение GRUB или kernel panic, воспользуйтесь инструкцией восстановление VPS, который не загружается после обновления ядра.

После загрузки системы с рабочим ядром выполните откат пакетов.

sudo apt install linux-generic
sudo apt remove linux-generic-hwe-24.04 linux-image-generic-hwe-24.04 linux-headers-generic-hwe-24.04
sudo reboot

Удаление мета-пакетов предотвратит автоматическую установку обновлений ядра в будущем. Это действие не удаляет уже установленный образ ядра, поэтому работа системы не прервется. После перезагрузки убедитесь, что uname -r снова показывает версию GA, затем выполните sudo apt autoremove --purge, чтобы удалить образы, которые больше не используются для загрузки. Хук ядра в Ubuntu автоматически исключает текущее активное ядро из этого списка. В статье очистка старых ядер из /boot описан более сложный случай, когда раздел /boot был переполнен до выполнения этих действий.

Важно помнить: вопрос выбора ветки ядра решается при переходе на следующий LTS-релиз. Обновление до следующего LTS предоставит вам актуальное для него ядро GA, которое будет новее текущего, и обновит цикл поддержки. Если вы рассматриваете промежуточные релизы в рамках подготовки к такому переходу, ознакомьтесь с процедурой обновление 24.04 до 26.04. Использование версии GA до момента перехода на следующий LTS — это стандартный и обоснованный выбор для арендованного сервера.

FAQ

Изменяет ли точечный релиз ядро на уже установленном сервере?

В ветке GA — нет. Точечный релиз представляет собой преимущественно обновленный установочный образ, который определяет конфигурацию только для новых машин. Существующий сервер сохраняет ту ветку, на которую указывают установленные метапакеты. Если установлен пакет linux-...-hwe-..., то да: точечный релиз обновляет ссылку этого пакета на более новый образ ядра, и следующая команда apt upgrade его установит. Новое ядро начнет работу после следующей перезагрузки, а не в момент завершения работы apt.

Как узнать, использую ли я ядро HWE или GA?

Выполните apt-cache policy linux-generic linux-generic-hwe-24.04, подставив свой номер релиза вместо 24.04. Пакет, у которого в строке Installed: указана реальная версия, соответствует используемой вами ветке. Не пытайтесь определить это через uname -r, так как имя запущенного ядра заканчивается на -generic в обеих ветках и никогда не содержит hwe. Если ни один из пакетов не установлен, выполните apt-mark showmanual | grep '^linux-', так как некоторые образы от провайдеров используют семейство linux-image-virtual.

Является ли ядро HWE менее стабильным, чем ядро GA?

Каждое ядро enablement является поддерживаемым ядром Ubuntu, поэтому вопрос не в качестве, а в изменениях. Ядро GA сохраняет одну версию от апстрима в течение многих лет, поэтому поведение системы, которое вы протестировали, остается неизменным. Ядро enablement переходит на новую версию от апстрима примерно каждые шесть месяцев, и каждый такой шаг — это риск изменения настроек драйверов по умолчанию или параметров sysctl для вашей рабочей нагрузки. На сервере, к которому вы редко обращаетесь, отсутствие лишних изменений важнее, чем наличие новых драйверов.

Стоит ли использовать ядро HWE на VPS?

Обычно нет. Виртуальная машина видит фиксированный набор виртуальных устройств, в основном virtio, драйверы для которых присутствуют в ядре уже много лет. Поэтому поддержка оборудования, ради которой существует ветка enablement, для VPS бесполезна. При этом дополнительные перезагрузки остаются обязательными. Переходите на HWE только по конкретной причине: если текущее ядро не поддерживает какое-либо устройство или если для вашего ПО требуется минимальная версия ядра, указанная в документации.

Что произойдет, если установить ядро enablement и не перезагрузить сервер?

Образ нового ядра будет записан в /boot и добавлен в меню GRUB, а ваш сервер продолжит работу на старом ядре. uname -r показывает реальное состояние системы, а не список пакетов. Ubuntu создает файл /var/run/reboot-required, когда установленный пакет требует перезагрузки для применения изменений, поэтому ls -l /var/run/reboot-required проинформирует вас о необходимости перезагрузки. Пока она не выполнена, вы расходуете место на диске под новое ядро, не получая при этом никаких исправлений.

#ubuntu#kernel#lts#server-maintenance#upgrades