0

0

内核升级后出现 random: crng init 卡很久的 entropy 不足加速

舞姬之光

舞姬之光

发布时间:2026-01-22 20:19:02

|

780人浏览过

|

来源于php中文网

原创

内核升级后启动卡在“waiting for entropy”是因CRNG初始化要求更高熵值,可通过检查/proc/sys/kernel/random/entropy_avail确认是否低于100,优先启用硬件RNG驱动(如intel_rndr、tpm_rng)或软件服务haveged补充熵源,必要时微调random.trust_cpu=on等参数。

内核升级后出现 random: crng init 卡很久的 entropy 不足加速

内核升级后出现 random: crng init done 延迟高、系统启动卡在“waiting for entropy”阶段,本质是 CRNG(Cryptographically Secure Random Number Generator)初始化依赖足够熵值,而新内核(尤其是 4.17+)对熵池质量要求更严,不再容忍低熵启动,导致阻塞。

确认是否真为熵不足导致卡顿

开机时若卡在类似 random: crng init done 或日志中反复出现 random: crng init not ready,且 /proc/sys/kernel/random/entropy_avail 长期低于 100(理想应 >200),基本可判定为熵源不足。可通过串口/SSH登录后实时查看:

cat /proc/sys/kernel/random/entropy_avail

若数值长期徘徊在 50–100 甚至更低,尤其在无键盘/鼠标/硬盘活动的虚拟机或嵌入式设备上,问题明确。

优先启用硬件随机数生成器(RNG)

现代 CPU(Intel Ivy Bridge+、AMD Zen+)和主板大多支持 RDRAND/RDSEED 指令或 TPM 芯片,这是最直接有效的熵源:

魔珐星云
魔珐星云

无需昂贵GPU,一键解锁超写实/二次元等多风格3D数字人,跨端适配千万级并发的具身智能平台。

下载
  • 检查是否已加载 rng_core 和对应驱动:lsmod | grep -i rng;常见模块有 intel_rndrtpm_rngvirtio_rng(KVM)
  • 若未加载,临时启用:modprobe intel_rndr(Intel)或 modprobe tpm_tis && modprobe tpm_rng(TPM)
  • 永久生效:将模块名写入 /etc/modules 或创建 /etc/modules-load.d/rng.conf
  • 验证是否被 CRNG 识别:cat /sys/class/misc/hwrng/rng_available 应显示当前 RNG 设备;再看 cat /sys/class/misc/hwrng/rng_current

补充用户态熵服务(适用于无硬件 RNG 场景)

当硬件 RNG 不可用(如老旧云主机、某些容器环境),需靠软件补充熵源:

  • 安装并启用 haveged(推荐):apt install haveged(Debian/Ubuntu)或 yum install haveged(CentOS/RHEL),启动服务:systemctl enable --now haveged
  • 替代方案:rng-tools(需配合硬件 RNG)或 egd(Entropy Gathering Daemon),但 haveged 更轻量、适配性广
  • 注意:避免同时运行多个熵服务,可能引发冲突;启用后观察 entropy_avail 是否快速升至 200+

内核参数微调(谨慎使用)

仅作兜底,不解决根本问题,但可缓解启动卡顿:

  • 添加启动参数 random.trust_cpu=on:告诉内核信任 RDRAND 指令输出,跳过部分熵校验(适用于 Intel/AMD 新 CPU)
  • 禁用熵池 blocking 行为(不推荐生产环境):random.read_wakeup_threshold=512(提高唤醒阈值,减少等待)
  • 修改方式:编辑 /etc/default/grubGRUB_CMDLINE_LINUX,追加参数后运行 update-grub && reboot

熵问题不是“修好了就行”,而是要匹配硬件能力做合理配置。有 RNG 就启用,没 RNG 就补 haveged,参数调整只是临时绕过。多数情况下,加载正确 RNG 驱动 + 启动 haveged,启动卡顿会立即消失。

相关专题

更多
class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

466

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

13

2025.12.06

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

220

2023.12.07

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

810

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

412

2023.12.28

ubuntu启动黑屏解决方法
ubuntu启动黑屏解决方法

ubuntu启动黑屏解决方法:检查是否是电源问题、检查内存是否接触不良、检查显卡问题等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

658

2023.12.28

为什么ubuntu有网络连接但不能上网
为什么ubuntu有网络连接但不能上网

ubuntu有网络连接但不能上网的原因:1、dns配置问题;2、代理服务器设置问题;3、网络防火墙设置问题;4、路由器或调制解调器设置问题;5、网络驱动程序问题;6、网络配置文件问题;7、其他问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

456

2024.09.05

ubuntu安装golang
ubuntu安装golang

本专题整合了ubuntu安装golang所有方法汇总,阅读下面的文章了解更多详细操作。

106

2025.12.13

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.6万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号