Здравствуйте. Коллеги, в связи с очередной невменяемостью апстрима systemd (по совместительству udevd), в v240 выразившейся в повышении требований к качеству псевдослучайных чисел на ранней стадии загрузки[1,2], и возникающих вследствие этого залипаний этой самой ранней стадии загрузки в ожидании каких-либо событий -- бывает достаточно нажать Shift или вставить USB-флэшку -- предлагаю реализовать фичу, которая бы обеспечивала начальную инициализацию ядерного RNG с опорой на то, что при старте может "дребезжать" (особенно при наличии хоть какого-то RTC). У нас тут образовался хак на скору руку, но он прямо по rc.sysinit и заведомо неоптимален, вследствие чего далее был предложен такой вид кусочка на шелле: --- { # Initialize bash random seed using current time nanoseconds # to avoid possible kernel pool usage RANDOM=$((10#$(date "+%N") % 32768)) seed=$( { dmesg; ls -l /var/log /proc; } | md5_bin | od -h ) for ((i=0; i<64; i++)); do echo $seed $RANDOM $(date "+%s%N") | md5_bin done > /dev/random unset i seed } & --- или даже такой (но это ещё 128 форков): --- { export \ RANDOM=$((10#$(date "+%N") % 32768)) \ seed=$( { dmesg; ls -l /var/log /proc; } | md5_bin | od -h ) for ((i=0; i<64; i++)); do ( echo $seed $RANDOM $(date "+%s%N"); ls -l /proc ) | md5_bin done > /dev/random unset i seed } & --- Прилагаю хак и md5_bin.c, прошу совета: * стоит ли так делать; * как лучше собирать md5_bin имени ilyakurdyukov@; * куда лучше поместить скрипт. [1] http://systemd.io/RANDOM_SEEDS [2] http://github.com/systemd/systemd/blob/v240/NEWS#L200 --  ---- WBR, Michael Shigorin / http://altlinux.org   ------ http://opennet.ru / http://anna-news.info