为什么几乎每个命令都试图读取 urandom?
Why almost every command is trying to read urandom?
在嵌入式系统的最新内核 (5.x) / rootfs 中(mips/MT7628/busybox,如果重要的话)我看到了 TONS of:
random: mount: uninitialized urandom read (4 bytes read)
random: fsck.vfat: uninitialized urandom read (4 bytes read)
random: tar: uninitialized urandom read (4 bytes read)
...
过了一会儿(~10 分钟!!)我终于看到了:
[ 562.001438] random: crng init done
两个问题:
- 为什么初始化需要这么长时间/dev/urandom?
- 出于什么原因
mount
或 tar
应该首先尝试使用它?
注意:旧内核 (3.x) 没有这个问题。
答案来自另一个来源(感谢 Alessandro Rubini);我在这里关联它以供将来参考。
- 如果在编译内核时选择了"cryptographically strong"个随机数,这是预料之中的(没有专用硬件的随机化,仅使用中断时序需要很多时间);如果不需要(如我的情况),请取消选择 "cryptographic RNG"。
- 这与一般的实际命令或特定的 Barebox 无关;加载程序似乎随机化了 Virtual Space 中的堆栈位置,以加强对缓冲区溢出的利用。
在嵌入式系统的最新内核 (5.x) / rootfs 中(mips/MT7628/busybox,如果重要的话)我看到了 TONS of:
random: mount: uninitialized urandom read (4 bytes read)
random: fsck.vfat: uninitialized urandom read (4 bytes read)
random: tar: uninitialized urandom read (4 bytes read)
...
过了一会儿(~10 分钟!!)我终于看到了:
[ 562.001438] random: crng init done
两个问题:
- 为什么初始化需要这么长时间/dev/urandom?
- 出于什么原因
mount
或tar
应该首先尝试使用它?
注意:旧内核 (3.x) 没有这个问题。
答案来自另一个来源(感谢 Alessandro Rubini);我在这里关联它以供将来参考。
- 如果在编译内核时选择了"cryptographically strong"个随机数,这是预料之中的(没有专用硬件的随机化,仅使用中断时序需要很多时间);如果不需要(如我的情况),请取消选择 "cryptographic RNG"。
- 这与一般的实际命令或特定的 Barebox 无关;加载程序似乎随机化了 Virtual Space 中的堆栈位置,以加强对缓冲区溢出的利用。