wb9*_*688 28 debian systemd lightdm
当我在运行 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作品,但我不想使用旧内核。
int*_*lfx 16
由于可用的熵(随机性)不足,您的系统的某些组件在尝试从内核获取随机数据(即读取/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 测试),但这可能会导致安全问题(CVE-2018-1108 在 43838a23a05f 中提到)。我正在测试一个更本地化的修复程序,它应该更适合上游。
( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572#82 )
...不过,您可以尝试使用haveged或rng-tools更快地收集熵。
kernel: random: crng init done删除交换分区后也可能发生挂起。
如果删除了交换分区,则配置文件/etc/initramfs-tools/conf.d/resume 应该完全为空或 read RESUME=。删除任何 UUID 号。RESUME=NONE无效。
$ sudo vim /etc/initramfs-tools/conf.d/resume
Run Code Online (Sandbox Code Playgroud)
初始 RAM 文件系统需要更新才能使这些更改生效:
$ sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)