Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
failed to register patch / unresolved symbol Linux / DevOps

Kernel livepatch: failed to register patch / unresolved symbol — Исправление

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Ошибка «Kernel livepatch: failed to register patch / unresolved symbol» возникает при попытке динамического применения бинарного патча безопасности к работающему ядру Linux без перезагрузки (технологии kpatch, kGraft, Canonical Livepatch, Red Hat Kpatch). Ошибка означает, что загружаемый модуль патча не может разрешить адреса функций или смещения структур в таблице /proc/kallsyms запущенного ядра.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
livepatchKernel Core SubsystemИнфраструктура горячей подмены функций через ftrace (function tracer).
unresolved symbolLinker Symbol ErrorИмя функции или глобальной переменной ядра не найдено или имеет другое смещение.
EEXIST / ENOENTError CodeКонфликт с ранее примененным патчем или отсутствие целевого модуля ядра.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Проверка статуса и синхронизация версии ядра

Livepatch-модули строго привязаны к конкретному билду ядра (включая SHA-хеш компилятора):

# Проверка текущего статуса Canonical Livepatch (Ubuntu):
canonical-livepatch status --verbose

# Проверка активных kpatch-модулей (RHEL / AlmaLinux):
kpatch list

# Сверка точной версии ядра:
uname -r
cat /proc/version

Сценарий 2: Перерегистрация агента Livepatch

Если ядро было обновлено через пакетный менеджер, но сервер не перезагружался:

# Сброс и повторная инициализация агента (Ubuntu):
sudo canonical-livepatch disable
sudo canonical-livepatch enable <YOUR_API_KEY>

# Проверка журнала ошибок службы:
journalctl -u canonical-livepatch -n 50 --no-pager

Сценарий 3: Проверка доступности ftrace

Горячий патчинг не работает, если в ядре отключен функционал трассировки ftrace:

# Проверка параметра ядра:
cat /sys/kernel/debug/tracing/tracing_on

# Включение трассировки:
echo 1 | sudo tee /sys/kernel/debug/tracing/tracing_on
Требуется Zero-Downtime обновление серверов?
ITSTM внедряет решения безопасного патчинга ядер (Kpatch / Livepatch / TuxCare) на критических B2B-кластерах с гарантией 99.99% uptime.
Практический опыт инженера: Если Livepatch не может примениться из-за кастомных модулей, запланируйте плановую перезагрузку в окно обслуживания через kexec — это сократит простой сервера до 15-30 секунд.

Частые вопросы (FAQ)

Почему livepatch выдает unresolved symbol после установки DKMS-драйвера?

DKMS-драйверы могут изменять структуры данных ядра или перехватывать системные вызовы, нарушая валидацию контрольных сумм интерфейсов ядра (Module CRC), что делает применение официальных патчей невозможным.

Безопасен ли Livepatch для серверов баз данных?

Да, механизм Livepatch использует безопасную модель перехода (Consistency Model): функции подменяются только тогда, когда ни один процесс не исполняет их код в текущем стеке вызовов.