Ubuntu 20.04: загрузка зависает после “random: fast/crng init done”

Вопрос или проблема

Первый раз столкнулся с этой проблемой после обновления с Ubuntu 18.04 до 20.04 на старом ноутбуке HP Pavillion (dv7-2185dx): система зависала на пустом экране иногда после загрузки/перезагрузки. После редактирования grub для включения режима отладки (linux /boot/vmlinuz-5.4.0.58-generic root=... ro debug), я замечаю, что всякий раз, когда последовательность загрузки зависает, это всегда происходит после “random: fast init done” или random: crng init done (или обоих). Пример вывода ниже:

снимок: загрузка останавливается после crng init done

Я проверил предыдущие вопросы по подобным вопросам, например:
Установка Ubuntu застряла на random crng init done
Загрузка – очень медленный старт “random: fast init done”

Тем не менее, решения там не сработали в моем случае: у меня нет SD-карт для удаления, я загружаюсь с внутреннего SSD, и мои UUID в blkid и fstab совпадают, моя система не использует swap-раздел, а скорее swap-файл в том же разделе, что и система, я пытался установить rng-tools и haveged, но ситуация не была разрешена. Я также провел свежую установку 20.04, и эта проблема возникла и там.

Любопытно, но у меня есть Ubuntu 18.04 в другом разделе того же диска, который всегда загружается нормально. Обе системы, похоже, используют одну и ту же версию initrd образа (initrd.img-5.4.0-58-generic).

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

Готов предоставить больше информации по мере необходимости…

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

random: fast init done

Через некоторое время он зависал на:

random: crng init done

Согласно сообщению №8 на этом форуме:

При загрузке ядро ждет движения мыши для инициализации генератора случайных чисел.

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

После некоторых поисков я узнал, что ядро linux полагается на несколько входов (включая пользовательские входы) для генерации случайных чисел.

Так что, в данном случае, по какой-то причине, оно просто зависает, ожидая какого-то “входа”.

Решение заключается в установке havaged (Сбор и расширение аппаратной летучей энтропии):

sudo apt install haveged
sudo systemctl enable haveged

Ответ или решение

Проблема, которую вы описываете, с зависанием загрузки Ubuntu 20.04 после сообщений "random: fast init done" и "random: crng init done", является распространенной и может быть вызвана различными факторами, связанными с инициализацией генератора случайных чисел в Linux. Давайте рассмотрим возможные причины этой проблемы и способы ее устранения.

Описание проблемы

Вы столкнулись с тем, что после обновления с Ubuntu 18.04 на 20.04 ваша система иногда зависает на этапе загрузки. Наличие одного и того же initrd образа на обеих версиях не исключает возможности того, что различные версии ядра и пользовательских пространств могут вести себя по-разному, особенно когда дело доходит до управления аппаратными ресурсами.

Причины зависания

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

  2. Отсутствие аппаратной поддержки: Старые ноутбуки, такие как HP Pavilion dv7-2185dx, могут иметь ограничения в аппаратной поддержке, что влияет на доступность необходимых драйверов и ресурсов для инициализации.

  3. Конфликт программного обеспечения: Установленные вами пакеты, такие как rng-tools и haveged, могут взаимодействовать неожиданным образом, когда система пытается инициализировать энтропийный пул.

Решения и рекомендации

  1. Проверка оборудования: Убедитесь, что все необходимые устройства ввода (клавиатура, мышь) подключены. Даже если система не предназначена для работы с графическими интерфейсами, подключение клавиатуры может помочь в инициализации генератора случайных чисел.

  2. Установка и настройка haveged: Этот пакет существенно увеличивает энтропию системы, предоставляя больше источников случайных данных.

    sudo apt install haveged
    sudo systemctl enable haveged
    sudo systemctl start haveged

    Это решение может значительно уменьшить вероятность зависания системы на этапе инициализации.

  3. Настройка GRUB: Попробуйте изменить параметры загрузки GRUB, чтобы улучшить ситуацию. Вы можете добавить crng.init=0 в конфигурацию GRUB. Это позволит отключить зависание на инициализации случайных чисел, но имейте в виду, что это может снизить уровень безопасности с точки зрения генерации случайных чисел.

    • Откройте файл конфигурации:
      sudo nano /etc/default/grub
    • Найдите строку GRUB_CMDLINE_LINUX_DEFAULT и добавьте crng.init=0:
      GRUB_CMDLINE_LINUX_DEFAULT="quiet splash crng.init=0"
    • Обновите конфигурацию GRUB:
      sudo update-grub
  4. Проверка логов и системного состояния: Если проблема сохраняется, проверьте журналы системы, такие как /var/log/syslog и dmesg, на наличие сообщений об ошибках, которые могут помочь выявить более конкретные причины зависания.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...