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, останавливаясь на ядре следующего LTS. Таким образом, ядро enablement обновляется до более новой версии upstream примерно каждые шесть месяцев, пока не достигнет финальной версии. Canonical называет это моделью rolling-обновлений. Финальное ядро enablement является ядром GA следующего LTS и остается на этой версии upstream до конца жизненного цикла LTS, получая исправления так же, как и GA. Образы для рабочего стола устанавливают ядро enablement по умолчанию. Серверные и облачные образы по умолчанию устанавливают GA, а стек enablement является опциональным пакетом.
Суть выбора проста. GA предоставляет версию ядра, которая не меняется годами. HWE предоставляет более новые драйверы и функции ядра, но требует обновления версии и перезагрузки примерно каждые шесть месяцев, пока ветка продолжает обновляться.
Какую ветку ядра я использую в данный момент?
uname -r никогда не содержит слово hwe. Обе ветки выводят версию, заканчивающуюся на -generic, поэтому по одному лишь имени запущенного ядра ответить на этот вопрос нельзя. Установленный мета-пакет указывает, какой ветке следуют ваши обновления, а сравнение его с uname -r показывает, что именно запущено в системе.
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, при условии, что не установлен другой мета-пакет поддержки оборудования, например linux-virtual-hwe-24.04. Команды ниже проверяют это. Обратное означает, что вы используете ветку enablement. Если обе версии присутствуют, оба ядра находятся на диске. При стандартных настройках GRUB_DEFAULT=0 в Ubuntu, GRUB загружает самое новое ядро, то есть enablement, но если кто-то установил GRUB_DEFAULT на конкретную запись или на saved, загружаться может и GA-ядро. Только uname -r показывает, что именно запущено.
Некоторые образы от провайдеров устанавливают 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 на текущий момент. Если версия этого образа совпадает с uname -r, вы используете ядро enablement. ls /boot/vmlinuz-* показывает, что фактически установлено и доступно для загрузки, что часто оказывается больше, чем вы ожидаете.
Что делает каждый точечный релиз с каждой веткой
В ветке GA точечный релиз ничего не меняет на работающем сервере. Точечный релиз — это обновленный установочный образ плюс те обновления, которые apt и так уже предлагал. Он определяет, что получит новая установленная машина, а не то, что работает на уже существующей. Что на самом деле меняет точечный релиз Ubuntu охватывает остальное.
В ветке enablement мета-пакет перемещается в рамках обычного цикла обновления ядра, который происходит до точечного релиза, а не в день его выхода. Пока ветка обновляется, Canonical переводит enablement-ядро вперед перед каждым точечным релизом LTS, начиная со второго, вплоть до того, который приносит GA-ядро следующего LTS. В 24.04 это был 24.04.5 с версией 7.0. Точечный релиз после этого шага не приносит нового enablement-ядра: Ubuntu 20.04.6 вышла в марте 2023 года, однако на странице жизненного цикла ядра Ubuntu в качестве последнего enablement-ядра для 20.04 указано 5.15 из версии 20.04.5. Для 24.04.3, вышедшего 2025-08-07, переход с 6.11 на 6.14 был запланирован на цикл SRU ядра 2025.06.16. linux-image-generic-hwe-24.04 меняет свою зависимость на более новый образ ядра, и ваш следующий обычный цикл обновления устанавливает этот образ. Страница руководства apt четко объясняет, почему достаточно простого запуска обновления: «Новые пакеты будут установлены, если это необходимо для удовлетворения зависимостей, но существующие пакеты никогда не будут удалены». Поэтому apt upgrade подтягивает новое ядро. Оно становится активным ядром только после следующей перезагрузки.
В 24.04 процесс обновлений уже завершен. По состоянию на 2026-10-21 linux-generic-hwe-24.04 на amd64 зависит от образа ядра 7.0, которое является GA-ядром для 26.04. С этого момента ветка получает только исправления, а не дальнейшие скачки версий upstream.
Выполняет ли автоматическое задание эту работу за вас, зависит от вашей конфигурации. Прочитайте /etc/apt/apt.conf.d/50unattended-upgrades и посмотрите на блок Allowed-Origins. Поставляемые настройки по умолчанию разрешают репозитории release и security, оставляя репозиторий updates закомментированным. Это не предотвращает шаги enablement, так как Ubuntu также публикует обновления мета-пакетов ядра, включая переходы enablement, в репозиторий security. По состоянию на 2026-10-21 linux-generic-hwe-24.04 версии 7.0.0-38.38~24.04.4 опубликована в noble-security. Таким образом, при конфигурации по умолчанию с установленным мета-пакетом enablement, unattended-upgrades устанавливает каждое новое enablement-ядро самостоятельно. Оно все равно запускается только после перезагрузки. Проверьте файл, вместо того чтобы делать предположения.
Окна поддержки следуют из того же механизма. GA-ядро поддерживается в течение стандартного окна релиза LTS без каких-либо действий с вашей стороны. Каждое enablement-ядро поддерживается до тех пор, пока его не заменит следующее enablement-ядро. Последнее является исключением: оно поддерживается в течение оставшегося срока LTS. До этого последнего шага HWE является поддерживаемой веткой только при условии, что вы выполняете каждый шаг. Отставание на два шага в этой ветке приведет к тому, что вы будете использовать ядро, которое больше не получает исправлений, и apt ничего об этом не сообщит.
Не принимайте точные даты из каких-либо публикаций в блогах, включая эту. Canonical публикует даты окончания поддержки ядер на странице жизненного цикла ядра Ubuntu, а даты выпуска и поддержки — на странице цикла выпуска Ubuntu. Однако таблица ядер содержит не все ядра. По состоянию на 2026-10-21 в ней нет строк для enablement-ядер 6.11 и 6.14 для 24.04, или для 5.19, 6.2 и 6.5 для 22.04, поэтому для них нет даты окончания поддержки. Строки, которые там есть, показывают закономерность из предыдущего абзаца: 6.17, enablement-ядро для 24.04.4, достигло конца стандартной поддержки в июле 2026 года, в том же месяце, когда 7.0 заменило его в этой ветке. Сравните эти страницы с тем, что выводят uname -r и grep VERSION_ID /etc/os-release на вашем сервере. Эта пара фактов — единственное, что описывает вашу машину.
Почему ядро HWE редко помогает VPS
HWE существует для поддержки оборудования. Ноутбук или физический сервер с сетевой картой (NIC), контроллером накопителей или графическим процессором, выпущенными позже, чем текущее LTS-ядро, не будут работать корректно, пока не появится более свежее ядро. Ядро enablement (HWE) — это решение данной проблемы, и на реальном оборудовании оно часто определяет, будет ли машина работать или нет.
Арендованный VPS не сталкивается с этой проблемой, так как он не «видит» физическое оборудование. Гостевая система видит лишь небольшой и намеренно устаревший набор виртуальных устройств. Проверьте свои.
sudo apt install -y pciutils
lspci -nnklspci -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-pageruname -r теперь должно соответствовать образу, который называет apt-cache depends linux-image-generic-hwe-24.04. В 24.04 сегодня это означает более высокую версию upstream, чем раньше: 7.0 вместо 6.8. В релизе, чья ветка enablement еще не сдвинулась, версия upstream может остаться прежней: по состоянию на 2026-10-21, и linux-generic, и linux-generic-hwe-26.04 на 26.04 зависят от 7.0.0-38.38. Списки сети и дисков должны выглядеть точно так же, как и раньше, поскольку те же виртуальные устройства все еще на месте. Отсутствующий интерфейс здесь — это единственный критичный сбой, так как обычно это означает, что сервер доступен только через консоль провайдера. journalctl -k -b 0 -p err выводит сообщения ядра текущей загрузки с приоритетом ошибки и выше (err, crit, alert и emerg), что на исправном 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 удаляет некоторые старые образы, но не обязательно тот, от которого вы только что отказались. APT всегда сохраняет текущее работающее ядро и самое новое из установленных, а пакет enablement обычно является самым новым. Как только uname -r подтвердит, что вы используете не его, удалите пакеты linux-image-, linux-modules- и linux-modules-extra- для этой версии по имени, используя версию, которую показывает dpkg -l 'linux-image-*'. В статье очистка старых ядер из /boot описан более сложный случай, когда раздел /boot переполнился до того, как вы приступили к очистке.
Последний важный момент: вопрос о выборе ветки ядра решается сам собой при переходе на следующий LTS-релиз. Обновление до следующего LTS предоставит вам его GA-ядро, которое новее текущего GA-ядра, и перезапустит цикл поддержки. Если вы задумываетесь о промежуточных выпусках в рамках подготовки к такому обновлению, ознакомьтесь с процедурой обновления с 24.04 до 26.04. Использование GA-ядра до этого момента — нормальный и обоснованный выбор для арендованного сервера.
FAQ
Изменяет ли точечный релиз ядро на уже установленном сервере?
Нет, если вы используете ветку GA. Точечный релиз — это преимущественно обновленный установочный образ, который определяет конфигурацию только для новых машин. Существующий сервер продолжает следовать той ветке, которая указана в установленном метапакете. Если установлен пакет linux-...-hwe-..., то этап активации дойдет до вас в виде обычного обновления ядра, которое публикуется раньше точечного релиза, к которому оно относится, и ваш следующий apt upgrade установит его. Новое ядро начнет работу после следующей перезагрузки, а не в момент завершения работы apt.
Как узнать, использую ли я ядро HWE или GA?
Выполните apt-cache policy linux-generic linux-generic-hwe-24.04, подставив свой номер релиза вместо 24.04. Пакет, имеющий реальную версию в строке Installed:, указывает на ветку, по которой приходят ваши обновления. Это не доказывает, какое ядро запущено в данный момент, поэтому сравните uname -r с именами образов apt-cache depends linux-image-generic-hwe-24.04. Не пытайтесь определить ветку только по uname -r, так как имя запущенного ядра заканчивается на -generic в обеих ветках и никогда не содержит hwe. Если ни один из пакетов не установлен, выполните apt-mark showmanual | grep '^linux-', так как некоторые образы от провайдеров используют семейство linux-image-virtual.
Является ли ядро HWE менее стабильным, чем ядро GA?
Каждое ядро активации (enablement kernel) является поддерживаемым ядром Ubuntu, поэтому вопрос не в качестве. Вопрос в изменениях. Ядро GA сохраняет одну версию от апстрима в течение многих лет, поэтому поведение, которое вы протестировали, остается неизменным. Ядро активации переходит на более новую версию от апстрима примерно каждые шесть месяцев, пока не достигнет версии ядра следующего LTS-релиза. Каждый такой шаг — это вероятность изменения настроек драйверов по умолчанию или параметров sysctl для вашей рабочей нагрузки. На сервере, к которому вы редко обращаетесь, меньшее количество изменений ценнее, чем наличие новых драйверов.
Стоит ли использовать ядро HWE на VPS?
Обычно нет. Виртуальная машина видит фиксированный набор виртуальных устройств, в основном virtio, драйверы для которых присутствуют в ядре уже много лет. Поэтому поддержка оборудования, ради которой существует ветка активации, не дает VPS никаких преимуществ. При этом дополнительные перезагрузки остаются реальным фактором. Переходите на HWE только по конкретной причине: если устройство не поддерживается текущим ядром или если для вашего ПО требуется документально подтвержденная минимальная версия ядра.
Что произойдет, если я установлю ядро активации и никогда не перезагружу сервер?
Новый образ ядра будет записан в /boot и добавлен в меню GRUB, а ваш сервер продолжит работать на старом ядре. uname -r отражает реальное состояние системы, а не список установленных пакетов. Ubuntu создает /var/run/reboot-required, когда установленный пакет требует перезагрузки для применения изменений, поэтому ls -l /var/run/reboot-required сообщает о том, что перезагрузка ожидается. Пока эта перезагрузка не выполнена, вы расходуете место на диске под новое ядро, не получая при этом никаких исправлений из него.