Вопрос или проблема
Первый раз столкнулся с этой проблемой после обновления с 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
образа на обеих версиях не исключает возможности того, что различные версии ядра и пользовательских пространств могут вести себя по-разному, особенно когда дело доходит до управления аппаратными ресурсами.
Причины зависания
-
Инициализация генератора случайных чисел: По умолчанию система использует различные источники для генерации энтропии, в том числе ввод с клавиатуры и мыши. Эти источники важны для обеспечения безопасности системы, но если они недоступны, система может зависнуть, ожидая их.
-
Отсутствие аппаратной поддержки: Старые ноутбуки, такие как HP Pavilion dv7-2185dx, могут иметь ограничения в аппаратной поддержке, что влияет на доступность необходимых драйверов и ресурсов для инициализации.
-
Конфликт программного обеспечения: Установленные вами пакеты, такие как
rng-tools
иhaveged
, могут взаимодействовать неожиданным образом, когда система пытается инициализировать энтропийный пул.
Решения и рекомендации
-
Проверка оборудования: Убедитесь, что все необходимые устройства ввода (клавиатура, мышь) подключены. Даже если система не предназначена для работы с графическими интерфейсами, подключение клавиатуры может помочь в инициализации генератора случайных чисел.
-
Установка и настройка
haveged
: Этот пакет существенно увеличивает энтропию системы, предоставляя больше источников случайных данных.sudo apt install haveged sudo systemctl enable haveged sudo systemctl start haveged
Это решение может значительно уменьшить вероятность зависания системы на этапе инициализации.
-
Настройка 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
- Откройте файл конфигурации:
-
Проверка логов и системного состояния: Если проблема сохраняется, проверьте журналы системы, такие как
/var/log/syslog
иdmesg
, на наличие сообщений об ошибках, которые могут помочь выявить более конкретные причины зависания.
Заключение
Зависания, связанные с инициализацией генератора случайных чисел, могут быть вызваны множеством факторов, от оборудования до конфигураций программного обеспечения. Проанализируйте предложенные рекомендации, протестируйте их и наблюдайте за изменениями в работе вашей системы. Если проблема останется нерешенной, могут потребоваться более детализированные исследования в зависимости от вашего конкретного аппаратного обеспечения и конфигурации.