SystemdDoctor
мешает работе загрузка виртуализация

Загрузка задерживается на ожидании случайных чисел

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

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

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

  1. Генератор не инициализирован при старте

    До инициализации запросы качественных случайных чисел блокируются. Служба ждёт молча.

  2. Нет источника энтропии в виртуальной машине

    Без проброшенного источника энтропия набирается медленно, из прерываний.

  3. Служба сама запрашивает больше, чем нужно

    Часть программ запрашивает качественные случайные числа там, где достаточно обычных. Это их дефект, а не проблема системы.

Диагностика

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

Сообщения ядра о готовности генератора.

journalctl -k -b --no-pager | grep -i "random:" | head

Доступная энтропия прямо сейчас.

cat /proc/sys/kernel/random/entropy_avail

Какие службы дольше всего стартуют.

systemd-analyze blame --no-pager | head -10

Решение

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

1. Генератор не инициализирован при старте
Почему происходит
До инициализации запросы качественных случайных чисел блокируются. Служба ждёт молча.
Как проверить
Посмотрите сообщения ядра о генераторе и время загрузки служб.
journalctl -k -b --no-pager | grep -iE "random: crng init|random: .*initialized" | head
systemd-analyze blame --no-pager | head -5
Как исправить
Добавьте виртуальный источник энтропии от гипервизора. Это штатное решение для виртуальных машин, а не обход.
2. Нет источника энтропии в виртуальной машине
Почему происходит
Без проброшенного источника энтропия набирается медленно, из прерываний.
Как проверить
Определите окружение и наличие источника.
systemd-detect-virt; ls /dev/hwrng 2>/dev/null || echo источника нет
Как исправить
Пробросьте источник энтропии в описании виртуальной машины на стороне гипервизора. Для современных ядер этого достаточно.
3. Служба сама запрашивает больше, чем нужно
Почему происходит
Часть программ запрашивает качественные случайные числа там, где достаточно обычных. Это их дефект, а не проблема системы.
Как проверить
Посмотрите, на чём висит процесс.
ps -o pid,stat,wchan:24,cmd -C myapp 2>/dev/null
cat /proc/sys/kernel/random/entropy_avail
Как исправить
Обновите программу или сообщите разработчикам. Внешние обходы вроде подмены источника ослабляют качество случайных чисел и небезопасны.

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

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

kernel: random: crng init done (trusting CPU's manufacturer)
systemd[1]: Still waiting for job myapp.service (running for 1min 12s)
myapp[10200]: generating server key (this may take a while)...

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

Где встречается чаще всего

Источники

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