SystemdDoctor

Обновление микрокода процессора не загружено

Обновления микрокода закрывают аппаратные уязвимости и исправляют ошибки процессора, влияющие на устойчивость. Загружаются они очень рано, до монтирования корня, поэтому попадают в образ начальной загрузки — и обновление пакета без пересборки образа ничего не даёт.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Пакет микрокода не установлен

    Без пакета ядро использует микрокод из прошивки, который может быть старым.

  2. Образ начальной загрузки не обновлён

    Микрокод загружается из образа. Установка пакета без пересборки образа не меняет ничего.

  3. Уязвимости остаются незакрытыми

    Часть мер защиты работает только при обновлённом микрокоде. Без него они отключены, и об этом сообщается отдельно.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Что ядро сообщает о микрокоде при загрузке.

journalctl -k -b --no-pager | grep -i microcode

Состояние мер защиты от аппаратных уязвимостей.

grep -r . /sys/devices/system/cpu/vulnerabilities/ 2>/dev/null | head

Когда собирался образ начальной загрузки.

ls -l --time-style=full-iso /boot/initrd* | tail -2

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Пакет микрокода не установлен
Почему происходит
Без пакета ядро использует микрокод из прошивки, который может быть старым.
Как проверить
Посмотрите сообщения ядра и наличие пакета.
journalctl -k -b --no-pager | grep -i microcode | head
ls /lib/firmware/intel-ucode /lib/firmware/amd-ucode 2>/dev/null | head -3
Как исправить
Установите пакет микрокода для вашего процессора и пересоберите образ начальной загрузки. Без пересборки обновление не подхватится.
2. Образ начальной загрузки не обновлён
Почему происходит
Микрокод загружается из образа. Установка пакета без пересборки образа не меняет ничего.
Как проверить
Посмотрите время сборки образа и установки пакета.
ls -l --time-style=full-iso /boot/initrd* 2>/dev/null | tail -2
journalctl -k -b --no-pager | grep -i "microcode updated early"
Как исправить
Пересоберите образ начальной загрузки штатным средством дистрибутива и перезагрузитесь. Запись о ранней загрузке микрокода — подтверждение успеха.
3. Уязвимости остаются незакрытыми
Почему происходит
Часть мер защиты работает только при обновлённом микрокоде. Без него они отключены, и об этом сообщается отдельно.
Как проверить
Посмотрите состояние мер защиты.
grep -r . /sys/devices/system/cpu/vulnerabilities/ 2>/dev/null | head -10
Как исправить
Обновите микрокод и проверьте состояние мер защиты заново. Пометка о нехватке микрокода исчезнет.

Пример вывода

Микрокод не обновлён, часть мер защиты отключена. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

kernel: microcode: Current revision: 0x000000f0
kernel: microcode: Updated early from: 0x000000f0
kernel: RETBleed: WARNING: Spectre v2 mitigation leaves CPU vulnerable to RETBleed attacks, data leaks possible!

$ cat /sys/devices/system/cpu/vulnerabilities/mds
Vulnerable: Clear CPU buffers attempted, no microcode

Связанные ошибки

Источники

  • Документация ядра: загрузка микрокода документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено на машине с пакетом микрокода и без него.
    собственная проверка, systemd 255
    сверено 15 сентября 2026