LINUX.ORG.RU

Зачем в /dev/urandom ограничение буфера?

 ,


0

1

Выполнил dd if=/dev/urandom of=27.12.17-new bs=64M count=921 status=progress, мне нужен был файл чуть менее 60Гиг. По моим подсчётам, 64*921=58944М.
Получилось

30903630951 bytes (31 GB, 29 GiB) copied, 435,543 s, 71,0 MB/s
Он выдал предупреждение:
dd: warning: partial read (33554431 bytes); suggest iflag=fullblock
Ну, я уже переписываю с предложенным флагом, пока тут пишу. Но стало интересно, почему /dev/urandom не может отдать больше 32М разом? Ему не добрать что ли самому? С флагом fullblock, скорость записи dd не изменилась ни на йоту, при этом 70Мб/с упирается в источник, а не в диск.

★★★★★

Последнее исправление: fehhner (всего исправлений: 2)
Ответ на: комментарий от mky

P.S. Откуда у вас вобще взялась такая странная задача — чуть менее 60Гиг по 64М блокам, неужеле вам там удобнее считать?

Просто, мне нравятся блоки, кратные 16 (32/64). Это оправдывало себя многократно при записи через USB увеличением скорости. В моём случае, я посчитал, что 60Гиг мне будет даже много и взял случайное число меньшего объёма.

fehhner ★★★★★
() автор топика
Последнее исправление: fehhner (всего исправлений: 1)
Ответ на: комментарий от mky

Понятно в общем...

The nbytes restriction is to prevent an accounting failure since we are now tracking entropy in fractional bits, so when we convert bytes requested into fractional bits, we overflow if someone tries to request more than 32MB.

fehhner ★★★★★
() автор топика
Последнее исправление: fehhner (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.