Crng init done linux

What is random : crng init done

Can someone explain to me what the above message means? I am developing a Linux block driver and I am attempting to format with ext4. After a few minutes I get this message. I have tried searching other threads but cant find an explanation of what it is. Thanks

See random: fix crng_ready() (and friends). It means the kernel’s generator is fully seeded. The latest kernels use ChaCha20 as the RNG, and the seed size is 2*CHACHA20_KEY_SIZE .

1 Answer 1

tl;dr: The kernel’s random-number generator is ready to generate random numbers that are unpredictable enough for serious cryptographic use.

In some systems, something at boot time (e.g. starting sshd) waits for this, this happens frequently when switching an embedded system to OpenSSL 1.1. You can fix that with tools like egd or rng-tools, or hardware randomness support, or tweaking things so the rest of bootup doesn’t wait on that something to complete.

Pseudo-random number generators are deterministic algorithms, so with enough output (and/or some knowledge of the internal state, or good guesses about it) an attacker can predict the future output. This is Really Bad if some of that output is going to be e.g. a secret cryptographic key.

For a long time, the Linux kernel has had code to extract some true randomness («entropy») from unpredictable events (arrival time of network packets, user input, etc.), using math we’re not expected to understand, and the resultant randomness is made available with /dev/random. If you read from /dev/random it will give you unpredictable random numbers up until this randomness is exhausted, then you have to wait for the kernel to extract more. /dev/urandom will give you the same random numbers, but if the true randomness runs out, it will start using a (potentially predictable) algorithm from there. So it will always give you something. (Some systems also have hardware support for true randomness e.g. thermal noise).

But it turns out, for cryptographic purposes, you don’t need an unending supply of true randomness. If you start with enough true randomness to get a strong cryptographic key, you can then encrypt (say) an unending string of zeroes. An attacker cannot predict that output without knowing the key (if they can, the encryption you’re using is broken, and you’ve already lost, regardless of how good your randomness is).

So the kernel will collect some randomness from the rest of the system at bootup, until it has enough to generate a good crypto key, then it can generate unpredictable random numbers forever.

Now there’s a system call getrandom(), OpenSSL 1.1 uses this to seed its random number generators by default, and that system call will not return until the system has collected enough randomness.

Источник

kernel random crng init done

Поставил Gentoo с systemd, поставил плазму, добавил в загрузку unit sddm. И при загрузке всё зависало на строчке «kernel random crng init done» и могло висеть довольно долго, пока я не переключался на другой терминал, тогда спустя несколько секунд загрузка продолжалась. Гугл вывел на несколько похожих тем для дебиана и манджаро. И там, и там советовали поставить haveged и это мне помогло, но стало любопытно, в чём конкретно была проблема. Кто знает?

Читайте также:  Linux command line complete introduction

emerge sys-apps/haveged && rc-update add haveged default

Да, как я писал, я это и сделал с поправкой на systemd, вопрос был не как пофиксить, а почему это произошло. Я не первый раз пробую осилить генту и раньше с таким не сталкивался.

хз. Буквально вчера решал туже самую проблему таким образом.

xaTa ★★★ ( 17.05.19 07:56:56 MSK )
Последнее исправление: xaTa 17.05.19 07:57:11 MSK (всего исправлений: 1)

В первой теме проблема была связана с ожиданием таймаута поднятия сети.

У меня (без systemd) темы долго стартовали пока я не прописал имя своего хоста в hosts и не указал его там как локальный.

Настраивал ли ты этот файл? Покажи его вывод, на всякий случай.

В одном из первых комментариев даже есть ссылка на коммит в ядре. Это то, что я искал, спасибо.

Настраивал ли ты этот файл? Покажи его вывод, на всякий случай.

Да, я был невнимателен при установке, но гугл всё же вывел меня на это решение, хоть и окольными путями.

Это не проблема генту сама по себе, а баг самого sddm https://github.com/sddm/sddm/issues/1036

Ну это уже как дополнительная инфа и о таких вещах редко лезешь в вики 🙂 Но если что не так, то можно попытаться там поискать.

странно, почему ещё никто не начал бомбить, мол как можно, вам дали гентоо а вы «нет, хотим жрать systemd»

Не, я не подозревал в чём-то генту, изначально слова kernel наводили на мысли о каких-то проблемах с ядром. По ссылке, кстати, пишут, что это не баг sddm. Скорее всего, это вообще не баг, а особенность ядра, точнее малой энтропии для случайных чисел, а sddm просто попал под раздачу из-за вызова getrandom. Там же, кстати написано, что если поставить LightDM, то с загрузкой плазмы с иксами проблема решается, а если запустить плазму с вяленым, то такая же история, предполагаю, что из-за того же getrandom.

Честно говоря, не хотел сначала об этом писать. Но потом решил-таки упомянуть, вдруг это важно. А вообще, да, хотим. Хотим пшшаудио, чтобы не переключать руками аудио выходы с последующей перезагрузкой. Чтобы просто можно было подключить по hdmi ноут и смотреть кинцо. А вообще мне без разницы что там за инит под капотом.

Почему у меня SDDM собранный с поддержкой elogind в Gentoo стартует почти мгновенно? А вот в арче богомерзком да, ждать чуть ли не две минуты приходилось. Это специфичный для systemd баг какой-то. P.S. Для ТСа — поищи в menuconfig меню gcc plugins. Там есть пункт на счёт генерации энтропии.

Да, одно из решений (в сочетании с системд) — выставить опцию в ядре, как пишут в Вики

У меня не работал этот пункт. А вот пункт CONFIG_RANDOM_TRUST_CPU — работает.

Если есть время и желание — исправляйте. Партия будет благодарна..

Это специфичный для systemd баг какой-то.

Нет, у меня воспроизводится с openrc.

Читайте также:  Нет звука линукс убунту

НО — небольшое уточнение. Когда в ноутбуке был HDD, этого бага не было. Грузилась система дольше, но равномернее. А вот когда заменил на SSD — вдруг бац — и энтропии не хватает. Возможно, потому что шумы и вибрации от HDD добавляли энтропию? Удивительно.

Ну и с SSD гораздо быстрее загрузка идёт, соответственно, может, там хитрая комбинация энтропии и гонки.

В общем, исправить в любом случае можно, так как эту генерацию печеньки (не уверен, зачем она там нужна, но раз есть — то нужна?) можно сделать ленивой, а не строгой — чтобы в момент ввода имени пользователя и пароля это требовалось.

Вообще могу попробовать исправить — давно бесила эта дичь (ещё в прошлом году осенью, как SSD себе прикупил). Если плюсы не забыл, вроде несложно должно быть. Только время свободное надо найти.

Ну и по опыту этих free software проектов можно потом годами ждать, когда они это исправление вольют в главную ветку, и потом ещё ждать, пока выпустят сборку с этим исправлением. Но всегда можно сделать fork или даже написать заплатку для gentoo ebuild.

BattleCoder ★★★★★ ( 17.05.19 12:28:02 MSK )
Последнее исправление: BattleCoder 17.05.19 12:29:21 MSK (всего исправлений: 1)

Когда в ноутбуке был HDD, этого бага не было. Грузилась система дольше, но равномернее. А вот когда заменил на SSD — вдруг бац — и энтропии не хватает.

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

я только за, у меня всё так же. +Wayland ещё. я про тех, кто обычно бомбит по этому поводу

А что не так? Мне OpenRC не нравится, так как некоторый софт требует с ним сношений.

Источник

Установка Ubuntu застряла при произвольной инициализации crng

Я установил Ubuntu 16.04 только на Lenovo 3g hhd, 4 г оперативной памяти. Все прошло гладко, пока он не застрял в процессе загрузки с «случайным выполнением инициализации crng». Помощь в этом вопросе очень ценится.

6 ответов

Это ошибка ядра, которая может случиться с другим ядром.

«apt-get install rng-tools», работающий от имени пользователя root в терминале, должен работать.

Это может произойти после удаления раздела подкачки

Висит перед kernel: random: crng init done может произойти после удаления раздела подкачки.

Если раздел подкачки удален, файл /etc/initramfs-tools/conf.d/resume должен быть либо полностью пустым, либо прочитанным RESUME= , Удалить любой номер UUID. RESUME=NONE не является действительным.

$ sudo nano /etc/initramfs-tools/conf.d/resume 

Исходная файловая система RAM требует обновления, чтобы эти изменения вступили в силу:

Я столкнулся с той же проблемой, и предложенные здесь исправления не сработали. Это была неработающая ссылка на раздел подкачки на моем USB. Это можно исправить используя update-initramfs -uk all Более подробную информацию можно найти по адресу /questions/298541/ubuntu-1704-medlennaya-zagruzka-na-ssd-s-dvojnoj-zagruzkoj/298544#298544

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

Сообщения ядра при загрузке:

kernel: random: crng init done 
sudo apt install haveged sudo systemctl enable haveged 

Для тех, кто будет искать это в будущем, я столкнулся с этой проблемой при попытке установить Ubuntu 20.04 на старый ноутбук HP TouchSmart TM2-1070us с процессором Intel Core 2 Duo U7300.

Читайте также:  Find text in folder linux

Просто попытка загрузить live CD приведет к зависанию системы после «случайной инициализации crng». Никакое ожидание не могло пройти мимо него.

Какое-то время я действительно был в тупике, но случайно обнаружил, что проблема в моем случае была вызвана включением «Технологии виртуализации» в BIOS. По умолчанию он отключен. Я понятия не имею, почему это вызывает это, но пока я оставляю его отключенным, Ubuntu загружается и устанавливается нормально.

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

У меня была система с диском для моих данных и еще одна для моей ОС. Оба использовали btrfs, и хотя система работала нормально, я не мог загрузиться с USB-флешки. После (физического) отсоединения диска с данными он нормально загрузился с USB.

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

  • Не загружаться с любого другого носителя (игнорируя проблему)
  • Сделайте резервную копию ваших данных дополнительного раздела btrfs, перезаписайте раздел другой файловой системой (например, ext4) и поместите ваши данные обратно в эту новую файловую систему.
  • Объедините 2 раздела btrfs в 1 файловую систему. Это может занять много работы, и здесь легко ошибиться. Дважды проверьте последнюю версию документации btrfs, прежде чем сделать это.

Источник

Ubuntu 20.04: boot hungs after «random: fast/crng init done»

First ran into this problem after upgrading from Ubuntu 18.04 to 20.04 in an old HP Pavillion laptop (dv7-2185dx): the system was stuck at a blank screen sometimes after a boot/reboot. After editing grub to enable debug mode ( linux /boot/vmlinuz-5.4.0.58-generic root=. ro debug ), I see that whenever the boot sequence hangs, it is always after «random: fast init done» or random: crng init done (or both). Sample output below: snapshot: boot halts after crng init done I have checked previous questions on similar issues, e.g.: Ubuntu installation stuck at random crng init done Boot — very slow start «random: fast init done» However, the solutions there don’t work in my case: I have no SD cards to remove, I boot from an internal SSD and my UUIDs in blkid and fstab agree, my system does not use a swap partition but rather a swap file in the same partition as the system, I tried installing rng-tools and haveged but the situation was not resolved. I also did a fresh 20.04 installation and this problem occurred there too. Curiously, I have Ubuntu 18.04 in another partition of the same disk which always boots fine. Both systems seem to use the same initrd image version ( initrd.img-5.4.0-58-generic ). I am baffled at this point, hence the request for help. The problem is not even well-reproducible, it happens randomly but quite frequently. Any ideas what might be going on, or at least any pointers on how to troubleshoot? Happy to provide more info as necessary.

Источник

Оцените статью
Adblock
detector