wb9688 Asked: 2018-05-09 23:26:01 +0800 CST2018-05-09 23:26:01 +0800 CST 2018-05-09 23:26:01 +0800 CST 当我登录时,它会挂起,直到 crng init 完成 772 当我在运行 Debian Unstable 的笔记本电脑上使用 LightDM 登录时,它最近开始挂起大约 2 分钟,直到journalctl显示消息kernel: random: crng init done。当我在键盘挂起时按随机键时,它会更快地登录(大约 10 秒)。在我没有这个问题之前,有什么办法可以解决它吗? 编辑:使用linux-image-4.15.0-3-amd64而不是linux-image-4.16.0-1-amd64工作,但我不想使用较旧的内核。 debian systemd 6 个回答 Voted Best Answer intelfx 2018-05-10T03:42:57+08:002018-05-10T03:42:57+08:00 由于可用的熵(随机性)不足,在尝试从内核获取随机数据(即读取/dev/urandom或调用)时,看起来像系统的某些组件。getrandom() 对于为什么问题取决于特定内核版本或系统上的哪个组件实际阻塞,我没有现成的解释,但无论根本原因如何, 事实上,正如 Bigon 在他的回答中指出的那样,这似乎是 4.16 中引入的内核错误: 此错误是由此提交中的“crng_init > 0”到“crng_init > 1”更改引入的: https ://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ ?id=43838a23a05fbd13e47d750d3dfd77001536dd33 此更改无意中影响 urandom_read,导致 crng_init==1 状态被视为未初始化并导致 urandom 阻塞,尽管此状态存在专门用于支持启动时的非加密需求: https ://git.kernel.org/pub /scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n1863 恢复 43838a23a05f(“随机:修复 crng_ready() 测试”)修复了错误(用 4.16.5-1 测试),但这可能会引起安全问题(43838a23a05f 中提到了 CVE-2018-1108)。我正在测试一个更本地化的修复,它应该更适合上游。 ( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572#82 ) ...不过,您可以尝试使用haveged或rng-tools更快地收集熵。 Bigon 2018-05-11T01:14:40+08:002018-05-11T01:14:40+08:00 这是内核中的一个更改(错误?),请参阅:https ://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572 减轻这种安装rng-tools5似乎有帮助。请注意,我不知道安装此软件包是否对强加密密钥生成有影响 编辑:显然更新 util-linux 2.32 应该可以解决问题 Giulio G 2018-05-13T05:39:38+08:002018-05-13T05:39:38+08:00 这是一个内核错误,可能发生在不同的内核上。 在终端中运行应该apt-get install rng-tools可以。su Serge Stroobandt 2019-04-04T08:57:07+08:002019-04-04T08:57:07+08:00 删除交换分区后也可能发生 kernel: random: crng init done删除交换分区后也可能发生挂起。 如果交换分区被删除,则配置文件/etc/initramfs-tools/conf.d/resume 应该是完全空的或 read RESUME=。删除任何 UUID 编号。RESUME=NONE无效。 $ sudo vim /etc/initramfs-tools/conf.d/resume 初始 RAM 文件系统需要更新这些更改才能生效: $ sudo update-initramfs -u J. Schwender 2018-07-26T04:19:13+08:002018-07-26T04:19:13+08:00 rng-tools仅当您的系统具有对随机数的硬件支持时才有帮助,例如英特尔的“安全密钥”。这种方式是由Ivy Bridge发明的。我的带有 1037u 处理器(基于 ivy 桥)的系统没有这种硬件支持。因此rng-tools不帮忙。 在另一个带有沙桥 i3 处理器的系统上rng-tools确实有帮助。该rngd服务必须在启动过程的早期启动,以填充熵队列。在 Ubuntu 的启动顺序中就是这种情况,我不知道这是否适用于其他发行版,但你可以找出来,因为开始rngd记录在 syslog 中。 Jonathon Reinhart 2019-04-01T17:04:05+08:002019-04-01T17:04:05+08:00 就我而言,我4.19.0-4-amd64在 Proxmox VE 上运行 Debian Buster (kernel) VM。 解决方案是将VirtIO RNG设备添加到 VM。在 Proxmox 上,这是通过编辑VM 配置文件来完成的。 就我而言,我编辑/etc/pve/qemu-server/110.conf并添加了以下行: args: -device virtio-rng-pci 不需要用户空间工具(例如rng-tools或haveged)。
由于可用的熵(随机性)不足,在尝试从内核获取随机数据(即读取/dev/urandom
或调用)时,看起来像系统的某些组件。getrandom()
对于为什么问题取决于特定内核版本或系统上的哪个组件实际阻塞,我没有现成的解释,但无论根本原因如何,事实上,正如 Bigon 在他的回答中指出的那样,这似乎是 4.16 中引入的内核错误:
( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572#82 )
...不过,您可以尝试使用
haveged
或rng-tools
更快地收集熵。这是内核中的一个更改(错误?),请参阅:https ://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572
减轻这种安装
rng-tools5
似乎有帮助。请注意,我不知道安装此软件包是否对强加密密钥生成有影响编辑:显然更新 util-linux 2.32 应该可以解决问题
这是一个内核错误,可能发生在不同的内核上。
在终端中运行应该
apt-get install rng-tools
可以。su
删除交换分区后也可能发生
kernel: random: crng init done
删除交换分区后也可能发生挂起。如果交换分区被删除,则配置文件
/etc/initramfs-tools/conf.d/resume
应该是完全空的或 readRESUME=
。删除任何 UUID 编号。RESUME=NONE
无效。初始 RAM 文件系统需要更新这些更改才能生效:
rng-tools
仅当您的系统具有对随机数的硬件支持时才有帮助,例如英特尔的“安全密钥”。这种方式是由Ivy Bridge发明的。我的带有 1037u 处理器(基于 ivy 桥)的系统没有这种硬件支持。因此rng-tools
不帮忙。在另一个带有沙桥 i3 处理器的系统上
rng-tools
确实有帮助。该rngd
服务必须在启动过程的早期启动,以填充熵队列。在 Ubuntu 的启动顺序中就是这种情况,我不知道这是否适用于其他发行版,但你可以找出来,因为开始rngd
记录在 syslog 中。就我而言,我
4.19.0-4-amd64
在 Proxmox VE 上运行 Debian Buster (kernel) VM。解决方案是将VirtIO RNG设备添加到 VM。在 Proxmox 上,这是通过编辑VM 配置文件来完成的。
就我而言,我编辑
/etc/pve/qemu-server/110.conf
并添加了以下行:不需要用户空间工具(例如
rng-tools
或haveged
)。